diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_fountain_hall.dmm b/_maps/RandomRuins/AnywhereRuins/fountain_hall.dmm similarity index 100% rename from _maps/RandomRuins/LavaRuins/lavaland_surface_fountain_hall.dmm rename to _maps/RandomRuins/AnywhereRuins/fountain_hall.dmm diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm b/_maps/RandomRuins/AnywhereRuins/golem_ship.dmm similarity index 100% rename from _maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm rename to _maps/RandomRuins/AnywhereRuins/golem_ship.dmm diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_asteroid.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_asteroid.dmm new file mode 100644 index 0000000000..acb68d3c80 --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_asteroid.dmm @@ -0,0 +1,1691 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/mineral/random/more_caves, +/area/icemoon/surface/outdoors/unexplored) +"b" = ( +/turf/closed/mineral/random/snow/no_caves, +/area/icemoon/surface/outdoors) +"U" = ( +/turf/closed/mineral/random/no_caves, +/area/icemoon/surface/outdoors/unexplored) + +(1,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(2,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(3,1,1) = {" +b +b +b +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +b +b +b +"} +(4,1,1) = {" +b +b +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +b +b +"} +(5,1,1) = {" +b +b +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +b +b +"} +(6,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(7,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(8,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(9,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(10,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(11,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(12,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(13,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(14,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(15,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(16,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(17,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(18,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(19,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(20,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(21,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(22,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(23,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(24,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(25,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(26,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(27,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(28,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(29,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(30,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(31,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(32,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(33,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(34,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(35,1,1) = {" +b +b +U +U +U +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +b +b +"} +(36,1,1) = {" +b +b +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +b +b +"} +(37,1,1) = {" +b +b +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +b +b +"} +(38,1,1) = {" +b +b +b +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +U +b +b +b +"} +(39,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(40,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm new file mode 100644 index 0000000000..d028ac106f --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm @@ -0,0 +1,2094 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"ab" = ( +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ad" = ( +/obj/machinery/power/floodlight, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ae" = ( +/turf/closed/wall/r_wall, +/area/icemoon/surface/outdoors) +"af" = ( +/obj/structure/lattice, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"ag" = ( +/obj/structure/cable, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"ah" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"ai" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"aj" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ak" = ( +/turf/closed/wall/ice, +/area/icemoon/surface/outdoors) +"al" = ( +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"am" = ( +/obj/machinery/power/emitter, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"an" = ( +/turf/closed/wall/mineral/snow, +/area/icemoon/surface/outdoors) +"ao" = ( +/obj/item/clothing/under/rank/engineering/chief_engineer, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ap" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"aq" = ( +/obj/machinery/field/generator, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"ar" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"as" = ( +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"at" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"au" = ( +/obj/effect/decal/cleanable/blood/splatter, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"av" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ax" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber, +/turf/open/floor/engine/o2, +/area/icemoon/surface/outdoors) +"ay" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume, +/turf/open/floor/engine/o2, +/area/icemoon/surface/outdoors) +"az" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber, +/turf/open/floor/engine/n2, +/area/icemoon/surface/outdoors) +"aA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume, +/turf/open/floor/engine/n2, +/area/icemoon/surface/outdoors) +"aB" = ( +/turf/closed/wall, +/area/icemoon/surface/outdoors) +"aC" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/machinery/light/small/broken{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aD" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/engine/o2, +/area/icemoon/surface/outdoors) +"aE" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/engine/o2, +/area/icemoon/surface/outdoors) +"aF" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/engine/n2, +/area/icemoon/surface/outdoors) +"aG" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/engine/n2, +/area/icemoon/surface/outdoors) +"aH" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aI" = ( +/obj/effect/turf_decal/stripes/line, +/obj/item/clothing/suit/space/hardsuit/engine, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aJ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"aK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aL" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aM" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/engine/airless, +/area/icemoon/surface/outdoors) +"aN" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/engine/airless, +/area/icemoon/surface/outdoors) +"aO" = ( +/turf/closed/wall/r_wall/rust, +/area/icemoon/surface/outdoors) +"aP" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aQ" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aU" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aV" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aW" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aX" = ( +/obj/machinery/atmospherics/components/trinary/mixer/flipped{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aY" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aZ" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ba" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bb" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"bd" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bf" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/gibs/core, +/obj/item/clothing/suit/space/hardsuit/engine, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"bh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"bi" = ( +/obj/machinery/door/airlock/engineering{ + name = "The Singularity Engine" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"bj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bk" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Entry"; + req_access_txt = "204" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bo" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bp" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"br" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bt" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bu" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bw" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bx" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 1 + }, +/obj/machinery/power/apc/unlocked{ + dir = 4; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"by" = ( +/obj/item/stack/rods{ + amount = 2 + }, +/obj/item/shard/plasma, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bA" = ( +/obj/item/flashlight/flare, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"bD" = ( +/obj/effect/decal/cleanable/robot_debris, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/book/manual/wiki/engineering_singulo_tesla, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bE" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bI" = ( +/obj/item/pda/clear{ + note = "Chief's asked me to check on the machinery inside PDA. He's also worried about Build, but i'm sure Harry'll handle the construction. I just need to work on Internals. Fuck i'm hungry" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bK" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bM" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bN" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bO" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bP" = ( +/obj/machinery/atmospherics/components/binary/pump, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bQ" = ( +/obj/effect/spawner/structure/window/plasma, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bS" = ( +/obj/structure/sign/poster/official/build{ + pixel_x = -32 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bT" = ( +/obj/item/pipe_dispenser, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bU" = ( +/obj/effect/mob_spawn/human/corpse/assistant, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bY" = ( +/obj/structure/sign/poster/official/safety_internals{ + pixel_x = 32 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bZ" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ca" = ( +/obj/item/flashlight, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cb" = ( +/obj/item/book/manual/wiki/atmospherics, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cc" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cd" = ( +/obj/machinery/atmospherics/pipe/manifold/dark/visible{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ce" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 1 + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cf" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cg" = ( +/obj/item/wallframe/apc, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"ch" = ( +/obj/machinery/light/broken, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ci" = ( +/obj/structure/sign/poster/official/pda_ad{ + pixel_y = -32 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ck" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 5 + }, +/obj/structure/sign/poster/contraband/atmosia_independence{ + pixel_x = -32 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cl" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cm" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cn" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"co" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cp" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cq" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cr" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Production Room"; + req_access_txt = "204" + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cs" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ct" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cu" = ( +/obj/structure/girder, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"cv" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cw" = ( +/obj/machinery/atmospherics/pipe/manifold4w/green/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cx" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cy" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cz" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cA" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cB" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cC" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"cD" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"cE" = ( +/obj/machinery/computer/rdconsole/production, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"cG" = ( +/obj/machinery/field/generator, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"cH" = ( +/obj/item/construction/rcd, +/obj/structure/rack, +/obj/item/rcd_ammo, +/obj/item/rcd_ammo, +/obj/item/rcd_upgrade/frames, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cI" = ( +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cJ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cL" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/space_heater, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cM" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cN" = ( +/obj/machinery/atmospherics/components/binary/pump, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cO" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cP" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cQ" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cR" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/space_heater, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cS" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cT" = ( +/obj/machinery/power/emitter{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/end, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"cV" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cW" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cY" = ( +/obj/machinery/light/small/broken, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cZ" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/engine/airless, +/area/icemoon/surface/outdoors) +"da" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/brown/visible, +/turf/open/floor/engine/airless, +/area/icemoon/surface/outdoors) +"db" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/turf/open/floor/engine/airless, +/area/icemoon/surface/outdoors) +"dc" = ( +/obj/machinery/power/rad_collector, +/obj/structure/cable, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"dd" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"de" = ( +/obj/machinery/autolathe, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"df" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"dg" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"dh" = ( +/obj/structure/sign/poster/contraband/grey_tide, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/icemoon/surface/outdoors) +"di" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"dj" = ( +/turf/closed/wall/rust, +/area/icemoon/surface/outdoors) +"dk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/engine/air, +/area/icemoon/surface/outdoors) +"dl" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/engine/air, +/area/icemoon/surface/outdoors) +"dm" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible, +/turf/open/floor/engine/vacuum, +/area/icemoon/surface/outdoors) +"dn" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/turf/open/floor/engine/vacuum, +/area/icemoon/surface/outdoors) +"do" = ( +/obj/machinery/power/port_gen/pacman, +/obj/effect/decal/cleanable/oil/streak, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"dp" = ( +/obj/machinery/light/built, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"dq" = ( +/obj/item/tank/internals/plasma, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"dr" = ( +/obj/machinery/power/floodlight, +/obj/structure/cable, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"ds" = ( +/obj/structure/tank_dispenser, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"dt" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"du" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"dv" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"dw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1 + }, +/turf/open/floor/engine/air, +/area/icemoon/surface/outdoors) +"dx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ + dir = 1 + }, +/turf/open/floor/engine/air, +/area/icemoon/surface/outdoors) +"dy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/icemoon/surface/outdoors) +"dz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/icemoon/surface/outdoors) +"dA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"dB" = ( +/obj/structure/girder, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"dC" = ( +/obj/structure/door_assembly/door_assembly_eng, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"gA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"gD" = ( +/obj/machinery/power/emitter{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/end, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"mO" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"oi" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"tY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"CR" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"DM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"Ee" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) +"Wr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +ak +an +ak +ae +an +ab +aa +by +bQ +bQ +ae +ae +ae +ae +ae +aO +aa +"} +(3,1,1) = {" +aa +aa +aa +aj +ab +al +al +ab +ab +ab +ab +ab +ab +al +al +al +do +ae +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aj +al +al +al +al +al +al +al +al +al +al +gA +ak +aa +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +aa +aw +aK +bc +bc +bR +bc +bc +cC +cT +ai +Ee +aO +aa +"} +(6,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +al +cD +gA +al +al +aO +aa +"} +(7,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +bd +aa +aa +aa +af +cA +DM +dc +al +ae +aa +"} +(8,1,1) = {" +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +DM +ag +al +ak +aa +"} +(9,1,1) = {" +ab +ab +al +ap +aa +aa +aa +aa +bf +aa +aa +aa +af +af +DM +dc +dp +ae +aa +"} +(10,1,1) = {" +ab +ab +dd +ap +al +aa +aa +aa +aa +aa +bT +aa +af +ab +DM +dc +dq +ak +aa +"} +(11,1,1) = {" +ad +ai +mO +aq +ab +aa +aa +aa +aa +bA +aa +aa +af +aI +DM +dc +al +ak +aa +"} +(12,1,1) = {" +ab +ab +gA +ap +al +ab +aJ +aa +aa +aa +aa +ab +ab +cF +gA +al +al +aO +aa +"} +(13,1,1) = {" +ab +ab +am +ar +at +at +at +at +Wr +bB +bB +bB +tY +cG +gD +ai +dr +ae +aa +"} +(14,1,1) = {" +ab +ah +al +as +au +as +as +as +bg +al +al +cg +gA +al +al +al +al +ae +aa +"} +(15,1,1) = {" +ab +al +al +al +al +al +al +al +bh +bC +al +al +CR +al +al +al +ds +ae +aa +"} +(16,1,1) = {" +ae +ae +ae +ae +ae +ae +ae +aO +bi +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +ae +aL +bb +bD +ae +aa +aa +aa +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +ae +oi +bj +ab +ae +aa +aa +aa +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +af +aa +aa +aa +an +aB +ae +aP +bk +aP +ae +aB +aB +aB +aB +aB +aB +aa +aa +"} +(20,1,1) = {" +af +af +ab +aa +aa +af +aC +aQ +bl +bE +bS +cf +cr +cB +cI +ab +aB +aa +aa +"} +(21,1,1) = {" +af +ab +ab +af +af +ab +ab +ab +bj +ab +bU +ch +aB +cE +ab +cY +aB +aa +aa +"} +(22,1,1) = {" +aa +aa +af +ab +ab +ab +ab +ab +bj +ab +bV +ab +aP +cH +ab +de +aB +aa +aa +"} +(23,1,1) = {" +ab +aa +af +ab +ao +ab +ab +aR +bm +ab +bH +ci +aB +aB +aP +aB +aB +ab +aa +"} +(24,1,1) = {" +aa +af +ab +al +ab +ab +ab +aS +bn +ab +bH +ab +ab +cI +cR +aB +dj +ak +ak +"} +(25,1,1) = {" +aa +af +ab +ab +ab +ab +ab +aT +bo +ab +bW +cj +cj +cj +cS +dh +dg +du +ak +"} +(26,1,1) = {" +aa +af +af +an +an +ab +ab +ab +bp +bF +bX +bF +bF +cJ +cV +df +di +dv +dB +"} +(27,1,1) = {" +aa +aa +aa +aa +an +av +aH +av +bj +bG +bY +av +av +cK +cW +aB +dt +dA +dC +"} +(28,1,1) = {" +aa +aa +aa +aa +an +an +aB +ae +bj +bH +ae +aB +cu +cu +aB +dj +ak +ak +dj +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ae +bj +bI +ae +aa +aa +aa +aa +aa +aa +aa +ak +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ae +bq +bH +ae +aa +aa +aa +aa +aa +aa +aa +ak +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ae +bq +bJ +ae +ae +ae +ae +ae +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +ae +ae +ae +ae +ae +br +bK +bZ +ck +cs +cL +ae +ae +ae +ae +aa +"} +(33,1,1) = {" +aa +aa +aa +ae +ax +aD +aM +aU +bs +bL +bZ +cl +ct +cM +cZ +dk +dw +ae +aa +"} +(34,1,1) = {" +aa +aa +aa +ae +ay +aE +aN +aV +bt +bM +ab +cm +co +cN +aN +dl +dx +ae +aa +"} +(35,1,1) = {" +aa +aa +aa +ae +ae +ae +ae +aW +bu +bN +ca +cn +cv +cO +ae +ae +ae +ae +aa +"} +(36,1,1) = {" +aa +aa +aa +ae +az +aF +aM +aX +bv +bN +cb +co +cw +cM +da +dm +dy +ae +aa +"} +(37,1,1) = {" +aa +aa +aa +ae +aA +aG +aN +aY +bw +bM +cc +cp +cx +cP +db +dn +dz +ae +aa +"} +(38,1,1) = {" +aa +aa +aa +ae +ae +ae +ae +aZ +bu +bO +cd +cd +cy +cQ +ae +ae +ae +ae +aa +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +ae +ba +bx +bP +ce +cq +cz +ab +ae +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +"} diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_hotsprings.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_hotsprings.dmm new file mode 100644 index 0000000000..93b221c446 --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_hotsprings.dmm @@ -0,0 +1,170 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/indestructible/riveted/uranium, +/area/icemoon/surface/outdoors) +"b" = ( +/turf/closed/mineral/random/snow/no_caves, +/area/icemoon/surface/outdoors) +"c" = ( +/turf/open/water/cursed_spring, +/area/icemoon/surface/outdoors) +"d" = ( +/obj/item/paper/crumpled{ + info = "When one falls into this hot spring, they shall forever be turned into..." + }, +/turf/open/floor/plating/beach/sand, +/area/icemoon/surface/outdoors) +"I" = ( +/turf/closed/indestructible/fakeglass, +/area/icemoon/surface/outdoors) +"L" = ( +/obj/structure/fluff/beach_umbrella, +/turf/open/floor/plating/beach/sand, +/area/icemoon/surface/outdoors) +"U" = ( +/turf/open/floor/plating/beach/sand, +/area/icemoon/surface/outdoors) + +(1,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +"} +(2,1,1) = {" +b +b +b +a +a +I +a +a +b +b +b +"} +(3,1,1) = {" +b +b +a +U +U +U +U +U +a +b +b +"} +(4,1,1) = {" +b +a +U +L +c +c +c +U +U +a +b +"} +(5,1,1) = {" +b +a +U +c +c +c +c +c +U +a +b +"} +(6,1,1) = {" +b +I +U +c +c +c +c +c +U +I +b +"} +(7,1,1) = {" +b +a +U +c +c +c +c +c +U +a +b +"} +(8,1,1) = {" +b +a +U +L +c +c +c +U +U +a +b +"} +(9,1,1) = {" +b +b +a +U +U +d +U +U +a +b +b +"} +(10,1,1) = {" +b +b +b +a +a +I +a +a +b +b +b +"} +(11,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +"} diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_lust.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_lust.dmm new file mode 100644 index 0000000000..704ac63a7d --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_lust.dmm @@ -0,0 +1,166 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/mineral/random/snow/no_caves, +/area/icemoon/surface/outdoors) +"b" = ( +/obj/structure/sign/poster/contraband/lusty_xenomorph, +/turf/closed/indestructible/abductor, +/area/icemoon/surface/outdoors) +"c" = ( +/turf/open/floor/mineral/diamond, +/area/icemoon/surface/outdoors) +"d" = ( +/obj/item/reagent_containers/food/drinks/trophy/gold_cup, +/turf/open/floor/mineral/diamond, +/area/icemoon/surface/outdoors) +"e" = ( +/obj/item/greentext{ + light_color = "#64C864"; + light_range = 1 + }, +/turf/open/floor/mineral/diamond, +/area/icemoon/surface/outdoors) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +b +b +b +a +a +a +a +"} +(4,1,1) = {" +a +a +a +b +c +c +c +b +a +a +a +"} +(5,1,1) = {" +a +a +b +c +c +d +c +c +b +a +a +"} +(6,1,1) = {" +a +a +b +c +d +e +d +c +b +a +a +"} +(7,1,1) = {" +a +a +b +c +c +d +c +c +b +a +a +"} +(8,1,1) = {" +a +a +a +b +c +c +c +b +a +a +a +"} +(9,1,1) = {" +a +a +a +a +b +b +b +a +a +a +a +"} +(10,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +"} +(11,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm new file mode 100644 index 0000000000..969acdd871 --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm @@ -0,0 +1,886 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/mineral/random/snow/no_caves, +/area/icemoon/surface/outdoors) +"b" = ( +/turf/closed/wall/mineral/wood/nonmetal, +/area/ruin/unpowered) +"c" = ( +/obj/structure/closet/toolcloset, +/obj/item/wrench, +/obj/item/screwdriver, +/obj/item/crowbar, +/obj/item/weldingtool/largetank, +/obj/item/wirecutters, +/obj/item/radio/off, +/turf/open/floor/wood, +/area/ruin/unpowered) +"d" = ( +/turf/open/openspace/icemoon, +/area/icemoon/surface/outdoors) +"e" = ( +/obj/item/clothing/suit/hooded/explorer, +/obj/item/clothing/mask/gas/explorer, +/obj/item/clothing/gloves/color/black, +/obj/item/storage/backpack/explorer, +/obj/item/flashlight/lantern, +/obj/item/storage/bag/ore, +/obj/structure/closet, +/obj/item/clothing/shoes/winterboots/ice_boots, +/turf/open/floor/wood, +/area/ruin/unpowered) +"f" = ( +/turf/open/floor/wood, +/area/ruin/unpowered) +"g" = ( +/obj/structure/fireplace, +/turf/open/floor/wood, +/area/ruin/unpowered) +"h" = ( +/obj/structure/flora/rock/icy, +/turf/closed/mineral/random/snow/no_caves, +/area/icemoon/surface/outdoors) +"i" = ( +/turf/template_noop, +/area/template_noop) +"j" = ( +/obj/structure/sink/kitchen, +/turf/open/floor/wood, +/area/ruin/unpowered) +"k" = ( +/obj/structure/closet/crate/freezer, +/turf/open/floor/wood, +/area/ruin/unpowered) +"l" = ( +/obj/machinery/vending/dinnerware, +/turf/open/floor/wood, +/area/ruin/unpowered) +"m" = ( +/obj/structure/barricade/wooden/crude/snow, +/obj/structure/mineral_door/wood, +/turf/open/floor/wood, +/area/ruin/unpowered) +"n" = ( +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered) +"o" = ( +/obj/item/reagent_containers/food/drinks/beer, +/turf/open/floor/wood, +/area/ruin/unpowered) +"p" = ( +/obj/machinery/light/broken{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"q" = ( +/obj/structure/table/wood, +/obj/item/pen, +/obj/machinery/light/broken{ + dir = 8 + }, +/obj/item/paper/crumpled/bloody{ + info = "help..."; + text = "" + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"r" = ( +/obj/item/chair/wood, +/obj/effect/decal/cleanable/blood/splatter, +/obj/effect/mob_spawn/human/miner/explorer, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/wood, +/area/ruin/unpowered) +"s" = ( +/obj/effect/decal/cleanable/trail_holder, +/turf/open/floor/wood, +/area/ruin/unpowered) +"u" = ( +/obj/structure/ladder, +/turf/open/floor/wood, +/area/ruin/unpowered) + +(1,1,1) = {" +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +"} +(2,1,1) = {" +i +i +i +i +i +i +i +i +d +d +d +d +d +d +d +d +i +i +i +i +i +i +i +i +i +"} +(3,1,1) = {" +i +i +i +i +i +d +d +d +d +d +d +d +d +d +d +d +d +d +d +i +i +i +i +i +i +"} +(4,1,1) = {" +i +i +i +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +i +i +i +i +i +"} +(5,1,1) = {" +i +i +i +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +i +i +i +i +"} +(6,1,1) = {" +i +i +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +i +i +i +"} +(7,1,1) = {" +i +i +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +i +i +i +"} +(8,1,1) = {" +i +i +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +i +i +i +"} +(9,1,1) = {" +i +d +d +d +d +d +d +d +d +b +b +b +b +b +b +b +d +d +d +d +d +d +d +i +i +"} +(10,1,1) = {" +i +d +d +d +d +d +d +d +b +b +b +b +b +b +b +b +b +d +d +d +d +d +d +i +i +"} +(11,1,1) = {" +i +d +d +d +d +d +d +d +b +b +c +f +f +o +q +b +b +d +d +d +d +d +d +d +i +"} +(12,1,1) = {" +i +d +d +d +d +d +d +d +b +b +e +f +f +f +r +b +b +d +d +d +d +d +d +d +i +"} +(13,1,1) = {" +i +d +d +d +d +d +d +d +b +b +f +f +f +f +s +b +b +d +d +d +d +d +d +d +i +"} +(14,1,1) = {" +i +d +d +d +d +d +d +d +b +b +g +f +f +f +s +b +b +d +d +d +d +d +d +d +i +"} +(15,1,1) = {" +i +d +d +d +d +d +d +d +b +b +f +f +f +f +s +b +b +d +d +d +d +d +d +d +i +"} +(16,1,1) = {" +i +d +d +d +d +d +d +d +b +b +j +f +f +f +s +b +b +d +d +d +d +d +d +d +i +"} +(17,1,1) = {" +i +d +d +d +d +d +d +d +b +b +k +f +f +f +s +b +b +d +d +d +d +d +d +d +i +"} +(18,1,1) = {" +i +d +d +d +d +d +d +d +b +b +l +f +f +f +u +b +b +d +d +d +d +d +d +d +i +"} +(19,1,1) = {" +i +d +d +d +d +d +d +d +b +b +b +f +f +p +b +b +b +d +d +d +d +d +d +d +i +"} +(20,1,1) = {" +i +i +d +d +d +d +d +d +d +b +b +b +f +b +b +b +d +d +d +d +d +d +d +d +i +"} +(21,1,1) = {" +i +i +d +d +d +d +d +d +d +d +d +b +f +b +d +d +d +d +d +d +d +d +d +d +i +"} +(22,1,1) = {" +i +i +d +d +d +d +d +d +d +d +d +b +f +b +d +d +d +d +d +d +d +d +d +d +i +"} +(23,1,1) = {" +i +i +d +d +d +d +d +d +d +d +d +b +f +b +d +d +d +d +d +d +d +d +d +i +i +"} +(24,1,1) = {" +i +i +d +d +d +d +d +d +d +d +d +b +m +b +d +d +d +d +d +d +d +d +d +i +i +"} +(25,1,1) = {" +i +i +i +d +d +d +d +d +d +d +a +h +n +h +a +d +d +d +d +d +d +d +i +i +i +"} +(26,1,1) = {" +i +i +i +d +d +d +d +d +d +a +a +a +h +a +a +a +d +d +d +d +d +d +i +i +i +"} +(27,1,1) = {" +i +i +i +i +d +d +d +d +a +a +a +a +a +a +a +a +a +d +d +d +d +i +i +i +i +"} +(28,1,1) = {" +i +i +i +i +i +d +d +a +a +a +a +a +a +a +a +a +a +a +d +d +i +i +i +i +i +"} +(29,1,1) = {" +i +i +i +i +i +i +i +a +a +a +a +a +a +a +a +a +a +a +i +i +i +i +i +i +i +"} diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm new file mode 100644 index 0000000000..908363dd86 --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm @@ -0,0 +1,1403 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) +"ab" = ( +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) +"ac" = ( +/obj/structure/fence/door/opened{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) +"ay" = ( +/turf/open/floor/carpet, +/area/ruin/powered) +"aM" = ( +/turf/open/floor/wood, +/area/ruin/powered) +"aP" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/ruin/powered) +"aZ" = ( +/obj/structure/sign/poster/ripped, +/turf/closed/wall/rust, +/area/icemoon/underground/explored) +"bR" = ( +/obj/machinery/light/small/broken{ + dir = 4 + }, +/obj/structure/fluff/fokoff_sign, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"bY" = ( +/obj/structure/flora/stump, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"cj" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/fishandchips, +/turf/open/floor/plasteel/checker, +/area/ruin/powered) +"cB" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/wood, +/area/ruin/powered) +"dh" = ( +/obj/machinery/door/airlock/wood, +/obj/structure/barricade/wooden/crude/snow, +/turf/open/floor/wood, +/area/ruin/powered) +"fD" = ( +/obj/structure/bed, +/obj/item/bedsheet/random, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/wood, +/area/ruin/powered) +"gG" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/sashimi{ + pixel_y = 10 + }, +/obj/item/reagent_containers/food/drinks/mug/coco{ + pixel_x = -10 + }, +/obj/item/reagent_containers/food/drinks/mug/coco{ + pixel_x = 10; + pixel_y = -4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/ruin/powered) +"hD" = ( +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/engine/cult, +/area/ruin/powered) +"hI" = ( +/obj/item/reagent_containers/food/drinks/beer, +/turf/open/floor/plating/ice/icemoon, +/area/icemoon/underground/explored) +"iB" = ( +/turf/closed/mineral/snowmountain/icemoon, +/area/icemoon/underground/explored) +"jk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/powered) +"jP" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"kl" = ( +/obj/structure/sign/poster/official/nanotrasen_logo, +/turf/closed/wall, +/area/icemoon/underground/explored) +"ks" = ( +/obj/structure/flora/rock/icy, +/obj/effect/mob_spawn/human/corpse/assistant, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"la" = ( +/obj/effect/decal/cleanable/blood/gibs/up, +/obj/effect/mob_spawn/human/corpse/assistant, +/mob/living/simple_animal/hostile/skeleton/eskimo{ + name = "Village Hunter" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"lg" = ( +/obj/structure/flora/grass/both, +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"li" = ( +/obj/structure/dresser, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/wood, +/area/ruin/powered) +"lo" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"mi" = ( +/obj/effect/decal/remains/human, +/mob/living/simple_animal/hostile/construct/armored/hostile{ + health = 450; + maxHealth = 450; + name = "Right Hand of the Elder" + }, +/turf/open/floor/engine/cult, +/area/ruin/powered) +"mI" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/grass/both, +/obj/structure/fence{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"oB" = ( +/obj/structure/table/wood, +/obj/item/clothing/under/misc/pj/blue, +/obj/item/clothing/shoes/sneakers/white, +/obj/structure/bedsheetbin, +/turf/open/floor/wood, +/area/ruin/powered) +"oF" = ( +/obj/structure/flora/rock/icy, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"pc" = ( +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/icemoon/underground/explored) +"pj" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"pH" = ( +/obj/structure/sign/poster/official/work_for_a_future, +/turf/closed/wall/mineral/wood, +/area/ruin/powered) +"pI" = ( +/obj/structure/flora/rock/pile/icy, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"pP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/sofa/right{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/powered) +"pV" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/turf/open/floor/plating, +/area/ruin/powered) +"rC" = ( +/obj/structure/closet/secure_closet/freezer, +/obj/item/reagent_containers/food/snacks/carpmeat, +/obj/item/reagent_containers/food/snacks/carpmeat, +/obj/item/reagent_containers/food/snacks/carpmeat, +/obj/item/reagent_containers/food/condiment/pack/ketchup, +/obj/item/reagent_containers/food/condiment/pack/ketchup, +/obj/item/reagent_containers/food/condiment/pack/ketchup, +/turf/open/floor/plasteel/checker, +/area/ruin/powered) +"sG" = ( +/obj/effect/decal/cleanable/vomit, +/obj/structure/toilet{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"sY" = ( +/obj/structure/sink/kitchen{ + dir = 4; + pixel_x = -12 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/checker, +/area/ruin/powered) +"tg" = ( +/obj/structure/fence{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"tt" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered) +"tF" = ( +/obj/structure/fence, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"tM" = ( +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"tN" = ( +/turf/closed/mineral/random/snow/no_caves, +/area/icemoon/underground/explored) +"tX" = ( +/obj/structure/table/wood, +/obj/structure/bedsheetbin, +/turf/open/floor/wood, +/area/ruin/powered) +"us" = ( +/obj/effect/decal/cleanable/blood/splatter, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"ut" = ( +/obj/item/flashlight/lantern{ + on = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/powered) +"vi" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/structure/fence/door, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"wQ" = ( +/turf/closed/wall, +/area/ruin/powered) +"xc" = ( +/turf/open/floor/plating/ice/icemoon, +/area/icemoon/underground/explored) +"xN" = ( +/obj/structure/bed/dogbed{ + pixel_y = 14 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/ruin/powered) +"yb" = ( +/obj/structure/chair/sofa/left{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/powered) +"yS" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"zR" = ( +/obj/machinery/door/airlock/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/powered) +"AG" = ( +/obj/structure/showcase/machinery/tv, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/broken{ + dir = 1 + }, +/turf/open/floor/holofloor/wood, +/area/ruin/powered) +"AM" = ( +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/item/pickaxe, +/turf/open/floor/engine/cult, +/area/ruin/powered) +"AN" = ( +/obj/structure/closet/cabinet, +/obj/item/restraints/legcuffs/beartrap, +/obj/item/restraints/legcuffs/beartrap, +/obj/item/reagent_containers/glass/bottle/venom, +/obj/item/reagent_containers/glass/bottle/curare, +/obj/item/kitchen/knife/combat/survival, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/food/snacks/meat/slab/human, +/obj/item/reagent_containers/food/snacks/meat/slab/human, +/obj/item/reagent_containers/food/snacks/meat/slab/human, +/turf/open/floor/wood, +/area/ruin/powered) +"Bq" = ( +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"Cd" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/ruin/powered) +"Cl" = ( +/obj/structure/sacrificealtar, +/obj/effect/decal/cleanable/blood/old, +/obj/item/kitchen/knife/bloodletter, +/turf/open/floor/engine/cult, +/area/ruin/powered) +"Dm" = ( +/obj/structure/flora/grass/brown, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"DI" = ( +/obj/structure/closet/emcloset, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath/medical, +/obj/item/clothing/mask/breath/medical, +/obj/item/flashlight/lantern, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered) +"DM" = ( +/obj/structure/flora/bush, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"Ed" = ( +/obj/machinery/door/airlock/wood, +/obj/effect/mapping_helpers/airlock/locked, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/wood, +/area/ruin/powered) +"Ei" = ( +/turf/closed/mineral/snowmountain/cavern/icemoon, +/area/icemoon/underground/explored) +"EF" = ( +/obj/effect/decal/cleanable/blood/gibs/torso, +/obj/effect/decal/remains/human, +/mob/living/simple_animal/hostile/construct/armored/hostile{ + health = 450; + maxHealth = 450; + name = "Left Hand of the Elder" + }, +/turf/open/floor/engine/cult, +/area/ruin/powered) +"Gr" = ( +/obj/structure/closet/crate/trashcart, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/chips, +/obj/item/trash/semki{ + pixel_x = 8; + pixel_y = -4 + }, +/obj/item/clothing/neck/petcollar, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered) +"Gy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/wood, +/turf/open/floor/plating, +/area/ruin/powered) +"GK" = ( +/obj/item/clothing/head/bearpelt, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/burger/fish, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = -4 + }, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = 10; + pixel_y = 6 + }, +/turf/open/floor/wood, +/area/ruin/powered) +"Ha" = ( +/obj/structure/mirror{ + broken = 1 + }, +/turf/closed/wall/mineral/wood, +/area/ruin/powered) +"Hf" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/wood, +/area/ruin/powered) +"Hx" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/under/rank/cargo/miner, +/obj/item/clothing/suit/hooded/wintercoat/miner, +/obj/item/clothing/shoes/winterboots, +/obj/item/card/id/mining, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/powered) +"IA" = ( +/obj/structure/fireplace{ + fuel_added = 1000; + lit = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/ruin/powered) +"Kd" = ( +/obj/structure/flora/grass/green, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"LZ" = ( +/obj/structure/bed, +/obj/item/bedsheet/random, +/turf/open/floor/wood, +/area/ruin/powered) +"Nq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/storage/bag/ore, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered) +"Og" = ( +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"Os" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/powered) +"Pp" = ( +/obj/machinery/vending/snack/random, +/turf/open/floor/holofloor/wood, +/area/ruin/powered) +"PQ" = ( +/obj/effect/decal/cleanable/blood/splatter, +/mob/living/simple_animal/hostile/illusion{ + deathmessage = "disperses into the air in a cloud of red mist, you feel slightly more at ease."; + desc = "You can't quite make out what you're seeing."; + faction = list("cult"); + health = 500; + maxHealth = 500; + melee_damage_lower = 10; + melee_damage_upper = 30; + name = "Village Elder" + }, +/turf/open/floor/engine/cult, +/area/ruin/powered) +"Qh" = ( +/obj/structure/closet/crate/trashcart, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood, +/obj/item/bodypart/head, +/obj/item/bodypart/l_arm{ + pixel_x = -9; + pixel_y = -9 + }, +/obj/item/bodypart/l_leg, +/obj/item/bodypart/r_arm, +/obj/item/bodypart/r_leg{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/item/bodypart/chest, +/obj/item/organ/heart, +/obj/item/multitool, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered) +"Qt" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 1 + }, +/obj/item/restraints/legcuffs/beartrap{ + armed = 1 + }, +/obj/structure/flora/grass/both, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"QR" = ( +/turf/closed/wall/rust, +/area/ruin/powered) +"Rv" = ( +/obj/structure/flora/grass/both, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"Si" = ( +/obj/structure/mirror, +/turf/closed/wall/mineral/wood, +/area/ruin/powered) +"Sk" = ( +/obj/effect/decal/cleanable/blood/tracks, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"SN" = ( +/turf/open/floor/plasteel/freezer, +/area/ruin/powered) +"SZ" = ( +/obj/machinery/door/airlock/wood, +/turf/open/floor/wood, +/area/ruin/powered) +"Tc" = ( +/obj/structure/flora/ausbushes/fullgrass, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"TW" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/grass/both, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"UI" = ( +/obj/machinery/washing_machine, +/obj/effect/decal/cleanable/blood, +/obj/item/reagent_containers/food/snacks/meat/slab/corgi, +/turf/open/floor/wood, +/area/ruin/powered) +"Vn" = ( +/turf/closed/wall/mineral/wood, +/area/ruin/powered) +"Ws" = ( +/obj/structure/fence/cut/medium{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"WH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed, +/obj/item/bedsheet/cult, +/turf/open/floor/wood, +/area/ruin/powered) +"Ze" = ( +/turf/closed/wall, +/area/icemoon/underground/explored) +"Zx" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/plating/ice/icemoon, +/area/icemoon/underground/explored) +"ZG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/cabinet, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/under/suit/tan, +/turf/open/floor/wood, +/area/ruin/powered) + +(1,1,1) = {" +tN +tN +tN +tN +tN +tN +Og +Og +Og +Og +Og +Og +oF +tN +tN +tN +tN +tN +tN +tN +tN +tN +tN +tN +tN +tN +tN +tN +"} +(2,1,1) = {" +tN +tN +tN +tN +pc +Og +Og +bR +Og +Og +Og +jP +Og +Og +Og +Rv +Og +Og +Og +Og +Og +Og +Og +tN +tN +tN +tN +tN +"} +(3,1,1) = {" +tN +tN +tN +xc +pc +Og +Og +aZ +pI +iB +Og +kl +Og +Og +Og +Og +Og +Og +pI +Og +Og +Og +Og +Og +bY +tN +tN +tN +"} +(4,1,1) = {" +tN +tN +tN +pc +Og +Og +Ei +Ze +iB +ks +Ei +Ze +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Tc +pc +pc +Og +Og +pc +tN +tN +"} +(5,1,1) = {" +tN +tN +Og +Og +Og +Rv +Ei +Ei +Ei +aa +pI +Ei +Ei +Vn +Vn +Vn +Ei +Ei +Ei +Ei +Ei +Ei +Ei +pc +Og +Og +Og +Og +"} +(6,1,1) = {" +tN +pI +Og +Og +bY +Ei +Ei +Ei +pI +ab +ab +ab +Ei +Vn +UI +Vn +Vn +wQ +wQ +QR +QR +wQ +Ei +Ei +Og +Rv +Og +Og +"} +(7,1,1) = {" +tN +Og +oF +Og +Ei +Ei +Vn +Vn +Vn +Vn +Og +ab +Bq +pH +jk +tX +Vn +QR +DI +SN +Qh +wQ +Ei +Ei +oF +Og +Og +tN +"} +(8,1,1) = {" +Og +Og +Og +Og +Ei +Ei +Vn +cj +sY +Vn +Og +ab +Vn +Vn +jk +oB +Vn +wQ +DI +tt +Gr +QR +lg +Ei +Ei +Og +Og +tN +"} +(9,1,1) = {" +Og +Og +Og +Ei +Ei +la +Vn +rC +ut +Vn +tF +ac +Vn +AG +aM +yb +Vn +wQ +Nq +SN +QR +QR +Og +Ei +Ei +Og +Og +tN +"} +(10,1,1) = {" +tN +Og +Kd +Ei +Ei +lo +Ha +li +Hf +SZ +ab +ab +Vn +Pp +aM +pP +Vn +wQ +QR +pV +wQ +Og +Tc +Ei +Ei +Og +Og +tN +"} +(11,1,1) = {" +tN +Og +pc +Ei +Ei +lo +Vn +Hx +fD +Vn +yS +ab +Vn +Vn +SZ +Vn +Vn +Og +Og +ab +tg +Bq +Og +Ei +Ei +Og +Og +Og +"} +(12,1,1) = {" +tN +Og +pc +Ei +Ei +lo +Vn +Vn +Vn +Vn +Og +ab +Og +Bq +ab +Tc +DM +ab +ab +ab +Ws +Og +Og +Ei +Ei +Ei +Og +Og +"} +(13,1,1) = {" +tN +Og +pc +Ei +Ei +us +Sk +Qt +vi +Og +yS +ab +ab +ab +ab +Og +Og +ab +Og +Vn +Vn +Vn +Vn +Ei +Ei +Ei +pI +Og +"} +(14,1,1) = {" +tN +Og +Ei +Ei +Ei +Ei +Bq +pj +mI +Og +Og +Og +Og +Og +ab +Og +Og +ab +Og +Vn +LZ +AN +Vn +Ei +Ei +Ei +Og +Og +"} +(15,1,1) = {" +tN +Og +Ei +Vn +Vn +Vn +Vn +Vn +Vn +Vn +Vn +Og +ab +ab +ab +ab +ab +ab +ab +zR +cB +GK +Vn +Ei +Ei +bY +Og +pc +"} +(16,1,1) = {" +tN +Og +Ei +Vn +EF +hD +Si +aP +WH +ZG +Vn +Og +ab +Tc +Og +Og +Og +Og +Og +Vn +Vn +Vn +Vn +Ei +Ei +Og +Og +tN +"} +(17,1,1) = {" +tN +Og +Ei +Vn +Cl +PQ +Ed +jk +aM +aM +Vn +Og +ab +Og +Og +Og +Bq +Og +Og +Og +Gy +sG +Vn +Ei +Ei +Og +Og +tN +"} +(18,1,1) = {" +tN +Og +Ei +Vn +mi +AM +Vn +ay +Os +jk +dh +ab +ab +Og +Og +Og +Og +TW +Og +Og +Vn +Vn +Vn +Ei +Ei +Og +Og +tN +"} +(19,1,1) = {" +tN +Og +Ei +Vn +Vn +Vn +Vn +IA +gG +aM +Vn +Og +Og +Og +pc +Dm +Og +Og +tM +Og +Og +Og +Bq +Ei +Ei +Og +Dm +tN +"} +(20,1,1) = {" +tN +Og +Ei +Ei +Ei +Ei +Vn +xN +Cd +jk +Vn +TW +Og +pc +xc +pc +pc +Og +Og +Og +Og +Og +Og +Ei +Ei +Og +Og +tN +"} +(21,1,1) = {" +tN +Og +Og +pj +Ei +Ei +Vn +Vn +Vn +Vn +Vn +Og +Dm +pc +xc +xc +xc +pc +pj +Og +Og +DM +Ei +Ei +Ei +Og +Og +tN +"} +(22,1,1) = {" +tN +bY +Og +Og +Ei +Ei +Ei +Ei +Bq +Og +Og +Og +pc +xc +hI +Zx +xc +xc +pc +pc +Og +Ei +Ei +Ei +bY +Og +Og +tN +"} +(23,1,1) = {" +tN +tN +pI +Og +Og +Ei +Ei +Ei +Ei +DM +Tc +pc +pc +xc +xc +xc +xc +xc +xc +Ei +Ei +Ei +Ei +Og +Og +Og +Og +tN +"} +(24,1,1) = {" +tN +tN +tN +pc +Og +Og +Og +Ei +Ei +Ei +Ei +Ei +Ei +xc +xc +xc +xc +xc +Ei +Ei +Ei +Ei +pI +oF +Og +Og +Og +tN +"} +(25,1,1) = {" +tN +tN +tN +xc +pc +pc +Og +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Og +Og +Og +Og +Og +Og +tN +"} +(26,1,1) = {" +tN +tN +tN +xc +pc +oF +Og +pI +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Ei +pc +Og +Og +Og +pc +tN +Og +Og +tN +"} +(27,1,1) = {" +tN +tN +tN +tN +tN +tN +Og +Og +Og +Og +Og +Og +Og +pI +oF +Og +Og +Og +Og +Og +bY +Tc +pc +tN +tN +pI +Og +tN +"} +(28,1,1) = {" +tN +tN +tN +tN +tN +tN +Og +Og +tN +tN +tN +tN +tN +tN +tN +tN +tN +tN +tN +Og +Og +tN +tN +tN +tN +Og +Og +tN +"} diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_bathhouse.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_bathhouse.dmm new file mode 100644 index 0000000000..3672599cff --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_bathhouse.dmm @@ -0,0 +1,178 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/closed/wall/ice, +/area/ruin/powered/bathhouse) +"c" = ( +/obj/machinery/shower{ + pixel_y = 16 + }, +/obj/structure/curtain, +/turf/open/floor/plasteel/white, +/area/ruin/powered/bathhouse) +"d" = ( +/turf/closed/mineral/random/snow/no_caves, +/area/icemoon/underground/explored) +"e" = ( +/obj/structure/mirror{ + pixel_y = 28 + }, +/obj/structure/sink{ + pixel_y = 20 + }, +/turf/open/floor/plasteel/white, +/area/ruin/powered/bathhouse) +"f" = ( +/obj/structure/table/greyscale, +/obj/item/bikehorn/rubberducky, +/turf/open/floor/plasteel/white, +/area/ruin/powered/bathhouse) +"g" = ( +/turf/open/floor/plasteel/white, +/area/ruin/powered/bathhouse) +"h" = ( +/obj/item/soap, +/turf/open/floor/plasteel/white, +/area/ruin/powered/bathhouse) +"i" = ( +/obj/machinery/door/airlock/freezer{ + name = "bath house airlock" + }, +/turf/open/floor/plasteel/white, +/area/ruin/powered/bathhouse) +"j" = ( +/turf/closed/wall/mineral/wood, +/area/ruin/powered/bathhouse) +"k" = ( +/turf/open/floor/wood, +/area/ruin/powered/bathhouse) +"l" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/meatballspaghetti, +/turf/open/floor/wood, +/area/ruin/powered/bathhouse) +"m" = ( +/obj/structure/bookcase/random, +/turf/open/floor/wood, +/area/ruin/powered/bathhouse) +"n" = ( +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/icemoon/underground/explored) +"o" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/turf/open/floor/wood, +/area/ruin/powered/bathhouse) + +(1,1,1) = {" +b +b +b +b +b +d +a +a +"} +(2,1,1) = {" +b +c +g +g +b +j +j +j +"} +(3,1,1) = {" +b +b +g +g +i +k +k +j +"} +(4,1,1) = {" +b +c +g +g +b +l +k +j +"} +(5,1,1) = {" +b +b +g +g +b +m +o +j +"} +(6,1,1) = {" +b +c +g +g +b +j +j +j +"} +(7,1,1) = {" +b +b +g +h +b +n +n +d +"} +(8,1,1) = {" +b +e +g +g +b +n +n +d +"} +(9,1,1) = {" +b +e +g +g +i +n +n +d +"} +(10,1,1) = {" +b +f +g +g +b +n +d +a +"} +(11,1,1) = {" +b +b +b +b +b +d +a +a +"} diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_lavaland.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_lavaland.dmm new file mode 100644 index 0000000000..a7a97dfec9 --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_lavaland.dmm @@ -0,0 +1,1707 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/mineral/random/volcanic/more_caves, +/area/icemoon/surface/outdoors/unexplored) +"b" = ( +/turf/closed/mineral/random/snow/no_caves, +/area/icemoon/underground/explored) +"y" = ( +/mob/living/simple_animal/hostile/megafauna/dragon{ + desc = "Hunted to extinction, the icey moon of lavaland is the final resting place for these creatures."; + name = "the last ash drake" + }, +/turf/open/floor/mineral/gold, +/area/icemoon/underground/explored) +"B" = ( +/turf/closed/mineral/random/no_caves, +/area/icemoon/surface/outdoors/unexplored) +"P" = ( +/turf/open/floor/mineral/silver, +/area/icemoon/underground/explored) +"R" = ( +/turf/open/floor/mineral/gold, +/area/icemoon/underground/explored) +"T" = ( +/turf/closed/mineral/random/no_caves, +/area/icemoon/underground/explored) + +(1,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(2,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(3,1,1) = {" +b +b +b +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +b +b +b +"} +(4,1,1) = {" +b +b +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +b +b +"} +(5,1,1) = {" +b +b +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +b +b +"} +(6,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(7,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(8,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(9,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(10,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(11,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(12,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(13,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(14,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(15,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(16,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(17,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(18,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +T +T +T +T +T +T +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(19,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +T +R +P +P +R +T +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(20,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +T +P +R +R +P +T +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(21,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +T +P +R +y +P +T +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(22,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +T +R +P +P +R +T +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(23,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +T +T +T +T +T +T +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(24,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(25,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(26,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(27,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(28,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(29,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(30,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(31,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(32,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(33,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(34,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(35,1,1) = {" +b +b +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +b +b +"} +(36,1,1) = {" +b +b +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +b +b +"} +(37,1,1) = {" +b +b +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +b +b +"} +(38,1,1) = {" +b +b +b +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +b +b +b +"} +(39,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(40,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_library.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_library.dmm new file mode 100644 index 0000000000..479610b0b7 --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_library.dmm @@ -0,0 +1,806 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/documents/syndicate/mining, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/cult, +/area/ruin/unpowered/buried_library) +"ac" = ( +/turf/closed/wall/mineral/wood, +/area/ruin/unpowered/buried_library) +"ad" = ( +/turf/closed/mineral/random/snow/no_caves, +/area/icemoon/underground/explored) +"ae" = ( +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"af" = ( +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"ag" = ( +/obj/item/feather, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"ah" = ( +/obj/structure/bookcase/random, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"ai" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/paper/crumpled/fluff/stations/lavaland/library/diary2, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/cult, +/area/ruin/unpowered/buried_library) +"ak" = ( +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"al" = ( +/turf/closed/wall/mineral/iron, +/area/ruin/unpowered/buried_library) +"am" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/book_of_babel, +/turf/open/floor/plasteel/cult, +/area/ruin/unpowered/buried_library) +"ao" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"ap" = ( +/obj/item/stack/sheet/mineral/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"aq" = ( +/obj/structure/fluff/paper{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"ar" = ( +/turf/open/floor/plasteel/cult, +/area/ruin/unpowered/buried_library) +"as" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/paper/fluff/ruins/oldstation/protosing, +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"at" = ( +/obj/structure/fluff/paper, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"av" = ( +/obj/structure/bookcase/random, +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"aw" = ( +/turf/open/floor/plating, +/area/ruin/unpowered/buried_library) +"ax" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"ay" = ( +/obj/machinery/door/keycard/library, +/turf/open/floor/plasteel/cult, +/area/ruin/unpowered/buried_library) +"az" = ( +/obj/item/paper/crumpled/fluff/stations/lavaland/library/diary, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"aA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/unpowered/buried_library) +"aC" = ( +/obj/item/feather, +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"aD" = ( +/turf/open/floor/carpet/black, +/area/ruin/unpowered/buried_library) +"aE" = ( +/obj/item/stack/sheet/mineral/wood, +/obj/item/book/manual/random, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"aF" = ( +/obj/item/book/manual/random, +/obj/effect/decal/cleanable/dirt, +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"aG" = ( +/obj/structure/table/bronze, +/obj/item/stack/ore/slag, +/turf/open/floor/carpet/black, +/area/ruin/unpowered/buried_library) +"aH" = ( +/obj/structure/table/bronze, +/obj/item/statuebust, +/turf/open/floor/carpet/black, +/area/ruin/unpowered/buried_library) +"aI" = ( +/obj/effect/mob_spawn/human/skeleton, +/obj/item/clothing/head/rice_hat, +/turf/open/floor/plasteel/cult, +/area/ruin/unpowered/buried_library) +"aJ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cult, +/area/ruin/unpowered/buried_library) +"aK" = ( +/obj/item/feather, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cult, +/area/ruin/unpowered/buried_library) +"aL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/paper/stack, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"aM" = ( +/obj/item/stack/sheet/mineral/wood, +/obj/item/book/manual/random, +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"aN" = ( +/obj/structure/statue/sandstone/venus, +/turf/open/floor/carpet/black, +/area/ruin/unpowered/buried_library) +"aO" = ( +/mob/living/simple_animal/pet/fox, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"aP" = ( +/obj/item/keycard/library, +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"aQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/paper/fluff/awaymissions/moonoutpost19/research/larva_autopsy, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"aR" = ( +/obj/structure/fluff/paper/stack, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"aS" = ( +/obj/structure/table/wood/fancy/black, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper/secretrecipe, +/obj/item/flashlight/lantern/jade{ + on = 1 + }, +/turf/open/floor/plasteel/cult, +/area/ruin/unpowered/buried_library) +"aT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/paper, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"aV" = ( +/obj/item/stack/sheet/mineral/wood, +/obj/structure/fluff/paper/stack, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"aW" = ( +/obj/structure/fluff/paper/stack, +/turf/open/floor/plasteel/cult, +/area/ruin/unpowered/buried_library) +"aX" = ( +/obj/structure/table/bronze, +/obj/item/statuebust, +/turf/open/floor/plating, +/area/ruin/unpowered/buried_library) +"aY" = ( +/obj/structure/table_frame/wood, +/turf/open/floor/plating, +/area/ruin/unpowered/buried_library) +"aZ" = ( +/obj/structure/fluff/paper/stack, +/obj/structure/fluff/paper, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"ba" = ( +/obj/structure/barricade/wooden/snowed, +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"bc" = ( +/obj/item/feather, +/obj/structure/fluff/paper, +/obj/structure/fluff/paper{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"bd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/paper{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"be" = ( +/obj/structure/fluff/paper{ + dir = 5 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"bf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/paper{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"bg" = ( +/obj/item/paper/fluff/ruins/oldstation/protogun, +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"bh" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/pet/fox, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"bi" = ( +/obj/structure/fluff/paper, +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"bj" = ( +/obj/item/book/manual/random, +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"bk" = ( +/obj/structure/fluff/paper{ + dir = 10 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"bl" = ( +/obj/item/storage/box/fountainpens, +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"bm" = ( +/obj/structure/fluff/paper/stack, +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"bn" = ( +/obj/item/book/manual/random, +/obj/item/stack/sheet/mineral/wood, +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"bo" = ( +/obj/item/stack/sheet/mineral/wood, +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"bp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/paper, +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"bq" = ( +/obj/structure/mineral_door/wood, +/obj/structure/barricade/wooden/crude/snow, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) +"br" = ( +/obj/structure/girder, +/turf/closed/mineral/random/snow/no_caves, +/area/ruin/unpowered/buried_library) +"bt" = ( +/obj/effect/decal/cleanable/dirt, +/turf/template_noop, +/area/template_noop) +"bu" = ( +/obj/item/stack/sheet/mineral/wood, +/turf/closed/mineral/random/snow/no_caves, +/area/icemoon/underground/explored) +"bw" = ( +/turf/open/floor/wood, +/area/icemoon/underground/explored) +"by" = ( +/obj/item/statuebust, +/turf/open/floor/carpet/black, +/area/ruin/unpowered/buried_library) +"bz" = ( +/obj/item/flashlight/lantern/jade{ + on = 1 + }, +/turf/open/floor/plating, +/area/ruin/unpowered/buried_library) +"bA" = ( +/obj/structure/fluff/paper/stack, +/turf/open/floor/plating, +/area/ruin/unpowered/buried_library) +"bB" = ( +/obj/structure/fluff/paper/stack, +/turf/open/floor/carpet/black, +/area/ruin/unpowered/buried_library) +"bC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/paper{ + dir = 1 + }, +/mob/living/simple_animal/pet/fox, +/turf/open/floor/wood, +/area/ruin/unpowered/buried_library) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +bt +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +ak +ac +ba +ac +ac +ac +ad +ad +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ak +ak +ak +ak +bo +ak +ak +ak +bm +ae +af +bk +ac +ad +ad +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +ak +ak +aR +ak +ak +ae +bj +av +ak +ah +aL +ah +aT +ac +ad +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +ak +ak +ak +aC +ae +aQ +ah +ak +av +bg +ah +aT +ah +ak +ac +ad +ad +aa +"} +(6,1,1) = {" +aa +aa +aa +aa +ad +ac +ak +ae +ak +aM +aO +ah +bm +ah +aA +ah +ao +ah +aq +ac +ad +ad +ad +"} +(7,1,1) = {" +aa +aa +aa +aa +ad +ac +ak +bm +ak +ao +aR +ao +aA +ao +ae +ah +aZ +ah +bC +ac +ad +ad +ad +"} +(8,1,1) = {" +aa +aa +aa +aa +ad +ak +ak +av +aA +ak +aG +aD +aX +ak +ao +ae +ao +ah +ae +ac +br +ad +ad +"} +(9,1,1) = {" +aa +aa +aa +aa +ad +ac +as +av +aF +aD +aD +bz +aD +bB +ak +ae +ao +ae +ao +ac +ax +bw +ad +"} +(10,1,1) = {" +aa +aa +aa +ad +ad +ac +ap +ax +ak +aD +aD +aN +ak +aw +ak +ao +af +aR +ae +bq +ae +bu +ad +"} +(11,1,1) = {" +aa +al +al +al +al +al +ae +ah +aR +aD +ak +aD +aD +by +ao +aw +ao +ae +bm +ac +ae +ad +ad +"} +(12,1,1) = {" +ad +al +ab +aI +ar +al +aR +aE +af +aD +aH +bA +aY +aD +ak +ae +bm +ah +ag +br +ac +ad +ad +"} +(13,1,1) = {" +ad +al +am +aJ +aW +ay +ae +ah +ao +ae +ao +ae +af +ax +bi +ah +ak +ah +bp +ac +ad +ad +ad +"} +(14,1,1) = {" +ad +al +aS +aW +aK +al +at +ah +ak +ah +bh +ah +az +ah +ak +ah +ak +bn +aT +ac +ad +aa +aa +"} +(15,1,1) = {" +ad +al +al +ai +ar +al +bc +ah +aL +ah +aA +ah +ao +ah +ak +ak +bl +ak +ak +ak +ad +aa +aa +"} +(16,1,1) = {" +ad +ad +al +al +al +al +bd +ah +ao +ah +ao +aV +ak +ah +ax +ak +bm +bo +ak +br +bu +aa +aa +"} +(17,1,1) = {" +aa +ad +ad +ad +ad +ac +be +bf +ae +aP +ae +aR +ae +ax +ak +bj +ak +ad +ad +ad +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +ad +ac +ac +ac +ac +ac +ac +ba +ac +ac +br +ad +aa +ad +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_mining_site.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_mining_site.dmm new file mode 100644 index 0000000000..feaa46336e --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_mining_site.dmm @@ -0,0 +1,818 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/floor/plating/ice/icemoon, +/area/icemoon/underground/explored) +"c" = ( +/obj/structure/ladder, +/turf/open/floor/plating/ice/icemoon, +/area/icemoon/underground/explored) +"d" = ( +/turf/template_noop, +/area/template_noop) +"f" = ( +/obj/item/flashlight/lantern{ + on = 1 + }, +/turf/open/floor/plating/ice/icemoon, +/area/icemoon/underground/explored) +"g" = ( +/obj/item/clothing/suit/hooded/explorer, +/obj/effect/decal/cleanable/blood/gibs/up, +/turf/open/floor/plating/ice/icemoon, +/area/icemoon/underground/explored) +"h" = ( +/obj/item/clothing/shoes/winterboots/ice_boots, +/turf/open/floor/plating/ice/icemoon, +/area/icemoon/underground/explored) +"i" = ( +/obj/item/kitchen/knife/combat/survival, +/turf/open/floor/plating/ice/icemoon, +/area/icemoon/underground/explored) +"T" = ( +/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner, +/turf/open/floor/plating/ice/icemoon, +/area/icemoon/underground/explored) + +(1,1,1) = {" +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +"} +(2,1,1) = {" +d +d +d +d +d +d +d +a +a +a +a +a +a +a +a +a +a +a +d +d +d +d +d +d +d +"} +(3,1,1) = {" +d +d +d +d +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +d +d +d +d +"} +(4,1,1) = {" +d +d +d +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +d +d +d +"} +(5,1,1) = {" +d +d +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +d +d +"} +(6,1,1) = {" +d +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +d +"} +(7,1,1) = {" +d +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +"} +(8,1,1) = {" +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +"} +(9,1,1) = {" +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +"} +(10,1,1) = {" +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +"} +(11,1,1) = {" +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +"} +(12,1,1) = {" +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +"} +(13,1,1) = {" +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +"} +(14,1,1) = {" +d +a +a +a +a +a +a +a +a +a +a +a +T +a +a +a +a +a +a +a +a +a +a +a +d +"} +(15,1,1) = {" +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +"} +(16,1,1) = {" +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +"} +(17,1,1) = {" +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +"} +(18,1,1) = {" +d +a +a +a +a +a +a +a +a +a +a +a +a +a +c +a +a +a +a +a +a +a +a +a +d +"} +(19,1,1) = {" +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +"} +(20,1,1) = {" +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +"} +(21,1,1) = {" +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +"} +(22,1,1) = {" +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +"} +(23,1,1) = {" +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +"} +(24,1,1) = {" +d +d +a +a +a +a +f +i +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +d +"} +(25,1,1) = {" +d +d +d +a +a +a +a +g +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +d +d +"} +(26,1,1) = {" +d +d +d +d +a +a +a +h +a +a +a +a +a +a +a +a +a +a +a +a +d +d +d +d +d +"} +(27,1,1) = {" +d +d +d +d +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +d +d +d +d +"} +(28,1,1) = {" +d +d +d +d +d +d +d +a +a +a +a +a +a +a +a +a +a +a +d +d +d +d +d +d +d +"} +(29,1,1) = {" +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +"} diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_puzzle.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_puzzle.dmm new file mode 100644 index 0000000000..79a4625aed --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_puzzle.dmm @@ -0,0 +1,47 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/icemoon/underground/explored) +"b" = ( +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"c" = ( +/obj/effect/sliding_puzzle/lavaland, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) + +(1,1,1) = {" +a +a +a +a +a +"} +(2,1,1) = {" +a +b +b +b +a +"} +(3,1,1) = {" +a +b +c +b +a +"} +(4,1,1) = {" +a +b +b +b +a +"} +(5,1,1) = {" +a +a +a +a +a +"} diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_wendigo_cave.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_wendigo_cave.dmm new file mode 100644 index 0000000000..a383c2e8c4 --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_wendigo_cave.dmm @@ -0,0 +1,1201 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/indestructible/rock/snow/ice/ore, +/area/icemoon/underground/explored) +"b" = ( +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/icemoon/underground/explored) +"d" = ( +/turf/template_noop, +/area/template_noop) +"j" = ( +/obj/effect/mob_spawn/human/miner/explorer, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/icemoon/underground/explored) +"q" = ( +/mob/living/simple_animal/hostile/megafauna/wendigo, +/turf/open/indestructible/necropolis/ice, +/area/icemoon/underground/explored) +"z" = ( +/obj/effect/landmark/portal_exit{ + id = "wendigo arena" + }, +/turf/open/indestructible/necropolis/ice, +/area/icemoon/underground/explored) +"K" = ( +/obj/effect/landmark/portal_exit{ + id = "wendigo arena exit" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/icemoon/underground/explored) +"N" = ( +/turf/open/indestructible/necropolis/ice, +/area/icemoon/underground/explored) +"U" = ( +/obj/item/paper/crumpled/bloody{ + info = "for your own sake, do not enter" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/icemoon/underground/explored) +"V" = ( +/obj/effect/portal/permanent/one_way{ + id = "wendigo arena" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon, +/area/icemoon/underground/explored) + +(1,1,1) = {" +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +"} +(2,1,1) = {" +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +"} +(3,1,1) = {" +d +d +d +d +d +d +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +d +d +d +d +d +d +"} +(4,1,1) = {" +d +d +d +d +d +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +d +d +d +d +d +"} +(5,1,1) = {" +d +d +d +d +d +d +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +d +d +d +d +d +d +"} +(6,1,1) = {" +d +d +d +d +d +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +d +d +d +d +d +"} +(7,1,1) = {" +d +d +d +d +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +d +d +d +d +"} +(8,1,1) = {" +d +d +d +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +d +d +d +"} +(9,1,1) = {" +d +d +b +b +b +a +a +a +a +a +a +N +N +N +N +N +N +N +N +N +a +a +a +a +a +a +b +b +b +d +d +"} +(10,1,1) = {" +d +d +b +b +a +a +a +a +a +a +N +N +N +N +N +N +N +N +N +N +N +a +a +a +a +a +a +b +b +d +d +"} +(11,1,1) = {" +d +d +b +b +a +a +a +a +a +N +N +N +N +N +N +N +N +N +N +N +N +N +a +a +a +a +a +b +b +d +d +"} +(12,1,1) = {" +d +d +b +b +a +a +a +a +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +a +a +a +a +b +b +d +d +"} +(13,1,1) = {" +d +d +b +b +a +a +a +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +a +a +a +b +b +d +d +"} +(14,1,1) = {" +d +d +b +b +a +a +a +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +a +a +a +b +b +d +d +"} +(15,1,1) = {" +d +d +b +b +a +a +a +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +a +a +a +b +b +d +d +"} +(16,1,1) = {" +d +d +b +b +a +a +a +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +a +a +a +b +b +d +d +"} +(17,1,1) = {" +d +d +b +b +a +a +a +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +a +a +a +j +b +d +d +"} +(18,1,1) = {" +d +d +b +K +a +a +a +N +N +N +N +N +N +N +N +q +N +N +N +N +N +N +N +z +a +a +a +V +U +d +d +"} +(19,1,1) = {" +d +d +b +b +a +a +a +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +a +a +a +b +b +d +d +"} +(20,1,1) = {" +d +d +b +b +a +a +a +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +a +a +a +b +b +d +d +"} +(21,1,1) = {" +d +d +b +b +a +a +a +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +a +a +a +b +b +d +d +"} +(22,1,1) = {" +d +d +b +b +a +a +a +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +a +a +a +b +b +d +d +"} +(23,1,1) = {" +d +d +b +b +a +a +a +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +a +a +a +b +b +d +d +"} +(24,1,1) = {" +d +d +b +b +a +a +a +a +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +a +a +a +a +b +b +d +d +"} +(25,1,1) = {" +d +d +b +b +a +a +a +a +a +N +N +N +N +N +N +N +N +N +N +N +N +N +a +a +a +a +a +b +b +d +d +"} +(26,1,1) = {" +d +d +b +b +a +a +a +a +a +a +N +N +N +N +N +N +N +N +N +N +N +a +a +a +a +a +a +b +b +d +d +"} +(27,1,1) = {" +d +d +b +b +b +a +a +a +a +a +a +N +N +N +N +N +N +N +N +N +a +a +a +a +a +a +b +b +b +d +d +"} +(28,1,1) = {" +d +d +d +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +d +d +d +"} +(29,1,1) = {" +d +d +d +d +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +d +d +d +d +"} +(30,1,1) = {" +d +d +d +d +d +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +d +d +d +d +d +"} +(31,1,1) = {" +d +d +d +d +d +d +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +d +d +d +d +d +d +"} +(32,1,1) = {" +d +d +d +d +d +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +d +d +d +d +d +"} +(33,1,1) = {" +d +d +d +d +d +d +d +d +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +d +d +d +d +d +d +d +d +"} +(34,1,1) = {" +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +"} +(35,1,1) = {" +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +"} diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_wrath.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_wrath.dmm new file mode 100644 index 0000000000..e233afbfb2 --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_wrath.dmm @@ -0,0 +1,267 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"b" = ( +/turf/closed/mineral/random/snow/no_caves, +/area/icemoon/underground/explored) +"e" = ( +/obj/structure/spawner/nether, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) + +(1,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(2,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(3,1,1) = {" +b +b +b +b +b +a +a +a +a +a +b +b +b +b +b +"} +(4,1,1) = {" +b +b +b +a +a +a +a +a +a +a +a +a +b +b +b +"} +(5,1,1) = {" +b +b +b +a +a +a +a +a +a +a +a +a +b +b +b +"} +(6,1,1) = {" +b +b +a +a +a +a +a +a +a +a +a +a +a +b +b +"} +(7,1,1) = {" +b +b +a +a +a +a +a +a +a +a +a +a +a +b +b +"} +(8,1,1) = {" +b +b +a +a +a +a +a +e +a +a +a +a +a +b +b +"} +(9,1,1) = {" +b +b +a +a +a +a +a +a +a +a +a +a +a +b +b +"} +(10,1,1) = {" +b +b +a +a +a +a +a +a +a +a +a +a +a +b +b +"} +(11,1,1) = {" +b +b +b +a +a +a +a +a +a +a +a +a +b +b +b +"} +(12,1,1) = {" +b +b +b +a +a +a +a +a +a +a +a +a +b +b +b +"} +(13,1,1) = {" +b +b +b +b +b +a +a +a +a +a +b +b +b +b +b +"} +(14,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(15,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm index 1ea3f19c62..862c745f81 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm @@ -70,7 +70,7 @@ /obj/structure/alien/weeds, /obj/item/clothing/mask/facehugger/impregnated, /obj/item/clothing/glasses/night, -/obj/item/clothing/gloves/combat, +/obj/item/clothing/gloves/tackler/combat/insulated, /obj/effect/decal/cleanable/blood/old, /obj/item/clothing/under/syndicate/tacticool, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index 2ec5b88792..b22c9787ba 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -526,8 +526,8 @@ /obj/structure/closet/crate/secure/gear{ req_access_txt = "150" }, -/obj/item/clothing/gloves/combat, -/obj/item/clothing/gloves/combat, +/obj/item/clothing/gloves/tackler/combat/insulated, +/obj/item/clothing/gloves/tackler/combat/insulated, /obj/item/clothing/under/syndicate/combat, /obj/item/clothing/under/syndicate/combat, /obj/item/storage/belt/military, @@ -4197,7 +4197,7 @@ "kw" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, -/obj/item/clothing/gloves/combat{ +/obj/item/clothing/gloves/tackler/combat/insulated{ pixel_y = -6 }, /obj/item/tank/internals/emergency_oxygen{ diff --git a/_maps/RandomRuins/SpaceRuins/advancedlab.dmm b/_maps/RandomRuins/SpaceRuins/advancedlab.dmm index 66a3d4e55d..b553bb5c97 100644 --- a/_maps/RandomRuins/SpaceRuins/advancedlab.dmm +++ b/_maps/RandomRuins/SpaceRuins/advancedlab.dmm @@ -185,7 +185,7 @@ name = "Clothes" }, /obj/item/clothing/head/chameleon, -/obj/item/clothing/gloves/combat, +/obj/item/clothing/gloves/tackler/combat/insulated, /obj/item/clothing/suit/chameleon, /obj/item/clothing/under/chameleon, /obj/item/clothing/shoes/chameleon, @@ -221,7 +221,7 @@ }, /obj/item/clothing/under/rank/centcom/commander, /obj/item/clothing/head/centhat, -/obj/item/clothing/gloves/combat, +/obj/item/clothing/gloves/tackler/combat/insulated, /obj/item/clothing/suit/armor/vest, /obj/item/clothing/shoes/sneakers/brown, /turf/open/floor/wood, diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index bf4f0dbfa6..a4c60023e8 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -2202,11 +2202,11 @@ /area/ruin/space/has_grav/deepstorage/armory) "eO" = ( /obj/structure/table, -/obj/item/clothing/gloves/combat{ +/obj/item/clothing/gloves/tackler/combat/insulated{ pixel_x = -3; pixel_y = 4 }, -/obj/item/clothing/gloves/combat{ +/obj/item/clothing/gloves/tackler/combat/insulated{ pixel_x = 3; pixel_y = -2 }, diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index e820b06f61..89e2c553b9 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -1651,7 +1651,7 @@ /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/rnd) "eD" = ( -/obj/machinery/mecha_part_fabricator, +/obj/machinery/mecha_part_fabricator/offstation, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/rnd) @@ -2010,12 +2010,12 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) "fu" = ( -/obj/machinery/rnd/production/protolathe, +/obj/machinery/rnd/production/protolathe/offstation, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/rnd) "fv" = ( -/obj/machinery/rnd/production/circuit_imprinter, +/obj/machinery/rnd/production/circuit_imprinter/offstation, /obj/effect/decal/cleanable/dirt, /obj/item/reagent_containers/dropper, /turf/open/floor/plasteel/white, diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_singulo.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_singulo.dmm index da0a0036c5..c842479db7 100644 --- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_singulo.dmm +++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_singulo.dmm @@ -6,7 +6,10 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/poddoor/shutters/radiation/preopen, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, /turf/open/floor/plasteel, /area/engine/engineering) "ab" = ( @@ -16,28 +19,40 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/machinery/door/poddoor/shutters/radiation/preopen, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, /turf/open/floor/plasteel, /area/engine/engineering) "ac" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/poddoor/shutters/radiation/preopen, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, /turf/open/floor/plasteel, /area/engine/engineering) "ad" = ( /obj/structure/cable{ icon_state = "2-8" }, -/obj/machinery/door/poddoor/shutters/radiation/preopen, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, /turf/open/floor/plasteel, /area/engine/engineering) "ae" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/door/poddoor/shutters/radiation/preopen, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, /turf/open/floor/plasteel, /area/engine/engineering) "af" = ( diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm.dmm index e15eda336c..e9f314cd1a 100644 --- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm.dmm +++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm.dmm @@ -2718,7 +2718,7 @@ wt av kA qo -EL +MP MP MP Cb diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm index 37bc2a7dde..a9c5eab318 100644 --- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm +++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm @@ -103,10 +103,6 @@ /obj/structure/window/reinforced, /turf/open/floor/plasteel, /area/engine/engineering) -"dw" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space/nearstation) "dZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -1170,7 +1166,8 @@ /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ dir = 1 }, -/turf/open/floor/plating/airless, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, /area/engine/engineering) "Hp" = ( /obj/machinery/atmospherics/components/binary/pump{ @@ -1332,7 +1329,8 @@ /area/engine/engineering) "LS" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plating/airless, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, /area/engine/engineering) "Mf" = ( /obj/structure/closet/secure_closet/engineering_personal, @@ -2629,7 +2627,7 @@ EN fq LS Hn -dw +tw yf Rh yf @@ -2655,9 +2653,9 @@ XW ST Ok MP -dw -dw -dw +tw +tw +tw Rh Rh Rh diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/away_mission/Academy.dmm similarity index 99% rename from _maps/RandomZLevels/Academy.dmm rename to _maps/RandomZLevels/away_mission/Academy.dmm index 6c7b57dade..de0b7cc430 100644 --- a/_maps/RandomZLevels/Academy.dmm +++ b/_maps/RandomZLevels/away_mission/Academy.dmm @@ -3598,6 +3598,9 @@ /turf/open/floor/carpet, /area/awaymission/academy/academygate) "km" = ( +/obj/machinery/gateway{ + dir = 9 + }, /obj/structure/cable{ icon_state = "1-4" }, @@ -3635,16 +3638,25 @@ /turf/open/floor/plasteel, /area/awaymission/academy/classrooms) "kr" = ( +/obj/machinery/gateway{ + dir = 4 + }, /turf/open/floor/plating, /area/awaymission/academy/academygate) "ks" = ( - /turf/open/floor/plating, +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/plating, /area/awaymission/academy/academygate) "kt" = ( /obj/machinery/gateway, /turf/open/floor/plating, /area/awaymission/academy/academygate) "ku" = ( +/obj/machinery/gateway{ + dir = 6 + }, /turf/open/floor/plating, /area/awaymission/academy/academygate) "kv" = ( @@ -3731,7 +3743,6 @@ /turf/open/floor/plasteel, /area/awaymission/academy/academyaft) "kI" = ( -/obj/machinery/gateway/away, /obj/structure/cable, /obj/machinery/gateway/centeraway{ calibrated = 1 @@ -4311,7 +4322,7 @@ /turf/open/floor/plating/asteroid/snow, /area/awaymission/academy/academycellar) "mV" = ( -/obj/item/clothing/gloves/combat, +/obj/item/clothing/gloves/tackler/combat/insulated, /turf/open/floor/plating/asteroid/snow, /area/awaymission/academy/academycellar) "mW" = ( @@ -12997,11 +13008,10 @@ jU jZ kb ke -ke -kf -kf -kf -ke +kj +km +kp +ks kf kf ky @@ -13129,10 +13139,9 @@ jY kc jW kf -kf +kn kI -ke -ke +kt kf kf ky @@ -13260,9 +13269,9 @@ jY kc jW kf -kf -kf -kf +ko +kr +ku kf kf ky diff --git a/_maps/RandomZLevels/Cabin.dmm b/_maps/RandomZLevels/away_mission/Cabin.dmm similarity index 100% rename from _maps/RandomZLevels/Cabin.dmm rename to _maps/RandomZLevels/away_mission/Cabin.dmm diff --git a/_maps/RandomZLevels/TheBeach.dmm b/_maps/RandomZLevels/away_mission/TheBeach.dmm similarity index 100% rename from _maps/RandomZLevels/TheBeach.dmm rename to _maps/RandomZLevels/away_mission/TheBeach.dmm diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/away_mission/caves.dmm similarity index 100% rename from _maps/RandomZLevels/caves.dmm rename to _maps/RandomZLevels/away_mission/caves.dmm diff --git a/_maps/RandomZLevels/challenge.dmm b/_maps/RandomZLevels/away_mission/challenge.dmm similarity index 100% rename from _maps/RandomZLevels/challenge.dmm rename to _maps/RandomZLevels/away_mission/challenge.dmm diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/away_mission/moonoutpost19.dmm similarity index 100% rename from _maps/RandomZLevels/moonoutpost19.dmm rename to _maps/RandomZLevels/away_mission/moonoutpost19.dmm diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/away_mission/research.dmm similarity index 100% rename from _maps/RandomZLevels/research.dmm rename to _maps/RandomZLevels/away_mission/research.dmm diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/away_mission/snowdin.dmm similarity index 100% rename from _maps/RandomZLevels/snowdin.dmm rename to _maps/RandomZLevels/away_mission/snowdin.dmm diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/away_mission/spacebattle.dmm similarity index 99% rename from _maps/RandomZLevels/spacebattle.dmm rename to _maps/RandomZLevels/away_mission/spacebattle.dmm index 025bcc20b0..ca44e7d7b7 100644 --- a/_maps/RandomZLevels/spacebattle.dmm +++ b/_maps/RandomZLevels/away_mission/spacebattle.dmm @@ -243,7 +243,7 @@ /area/awaymission/spacebattle/syndicate1) "bg" = ( /obj/structure/table/reinforced, -/obj/item/clothing/gloves/combat, +/obj/item/clothing/gloves/tackler/combat/insulated, /turf/open/floor/mineral/plastitanium/red, /area/awaymission/spacebattle/syndicate1) "bh" = ( @@ -978,6 +978,24 @@ }, /turf/open/floor/plating, /area/awaymission/spacebattle/cruiser) +"ec" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"ed" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"ee" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) "ef" = ( /mob/living/simple_animal/hostile/syndicate/melee/spacebattle, /turf/open/floor/mineral/plastitanium/red, @@ -1015,12 +1033,24 @@ "el" = ( /turf/open/floor/engine, /area/awaymission/spacebattle/cruiser) +"em" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) "en" = ( -/obj/machinery/gateway/away{ +/obj/machinery/gateway/centeraway{ calibrated = 0 }, /turf/open/floor/plating, /area/awaymission/spacebattle/cruiser) +"eo" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) "ep" = ( /obj/structure/chair{ dir = 1 @@ -1034,6 +1064,22 @@ "er" = ( /turf/closed/wall/mineral/plastitanium, /area/awaymission/spacebattle/syndicate4) +"et" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"eu" = ( +/obj/machinery/gateway, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"ev" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) "ew" = ( /obj/structure/chair, /turf/open/floor/mineral/plastitanium/red, @@ -26892,9 +26938,9 @@ cc cc bT cK -cK -cK -cK +ec +em +et cK cK cK @@ -27149,9 +27195,9 @@ cA cc bT cK -cK +ed en -cK +eu cK cK cK @@ -27406,9 +27452,9 @@ cc cc bT cK -cK -cK -cK +ee +eo +ev cK jF fb diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/away_mission/undergroundoutpost45.dmm similarity index 100% rename from _maps/RandomZLevels/undergroundoutpost45.dmm rename to _maps/RandomZLevels/away_mission/undergroundoutpost45.dmm diff --git a/_maps/RandomZLevels/wildwest.dmm b/_maps/RandomZLevels/away_mission/wildwest.dmm similarity index 100% rename from _maps/RandomZLevels/wildwest.dmm rename to _maps/RandomZLevels/away_mission/wildwest.dmm diff --git a/_maps/icebox.json b/_maps/icebox.json new file mode 100644 index 0000000000..89777d0a6b --- /dev/null +++ b/_maps/icebox.json @@ -0,0 +1,49 @@ +{ + "map_name":"Ice Box Station", + "map_path":"map_files/IceBoxStation", + "map_file":[ + "IcemoonUnderground_Below.dmm", + "IcemoonUnderground_Above.dmm", + "IceBoxStation.dmm" + ], + "station_ruin_budget":0, + "space_ruin_levels":0, + "space_empty_levels":0, + "shuttles":{ + "cargo":"cargo_box", + "ferry":"ferry_fancy", + "whiteship":"whiteship_box", + "emergency":"emergency_box" + }, + "traits":[ + { + "Up":1, + "Mining":true, + "Station":false, + "Linkage":null, + "Gravity":true, + "Ice Ruins Underground":true, + "Baseturf":"/turf/open/lava/plasma/ice_moon" + }, + { + "Down":-1, + "Up":1, + "Mining":true, + "Station":false, + "Linkage":null, + "Gravity":true, + "Ice Ruins Underground":true, + "Baseturf":"/turf/open/openspace/icemoon" + }, + { + "Down":-1, + "Mining":true, + "Linkage":null, + "Gravity":true, + "Ice Ruins":true, + "Weather_Snowstorm":true, + "Baseturf":"/turf/open/floor/plating/asteroid/snow/icemoon" + } + ], + "minetype":"none" +} diff --git a/_maps/iceboxstation.dm b/_maps/iceboxstation.dm new file mode 100644 index 0000000000..10928bd8a5 --- /dev/null +++ b/_maps/iceboxstation.dm @@ -0,0 +1 @@ +#define FORCE_MAP "_maps/icebox.json" diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index a0244ae4d1..4baab1e31a 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -3098,7 +3098,9 @@ /turf/open/floor/plating, /area/maintenance/fore/secondary) "agd" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/atmos) "age" = ( @@ -5789,6 +5791,12 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/brig) +"akE" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/crew_quarters/fitness/pool) "akF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/red, @@ -5804,6 +5812,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/security/processing) +"akH" = ( +/obj/machinery/holopad, +/turf/open/floor/wood, +/area/crew_quarters/bar) "akI" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -5823,6 +5835,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/security/brig) +"akK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/engine, +/area/science/xenobiology) "akL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/meter, @@ -5856,6 +5872,10 @@ }, /turf/open/floor/plasteel, /area/security/main) +"akP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/engine, +/area/science/xenobiology) "akQ" = ( /obj/structure/cable{ icon_state = "4-8" @@ -5905,6 +5925,31 @@ /obj/machinery/holopad, /turf/open/floor/plasteel, /area/security/brig) +"akV" = ( +/obj/machinery/door/window/southleft{ + dir = 1; + name = "Test Chamber"; + req_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/engine, +/area/science/xenobiology) +"akW" = ( +/obj/machinery/door/window/southleft{ + name = "Test Chamber"; + req_access_txt = "55" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/science/xenobiology) "akX" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -5994,6 +6039,10 @@ }, /turf/open/floor/plasteel, /area/security/courtroom) +"alf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "alg" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -6050,6 +6099,28 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"alm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"aln" = ( +/obj/effect/landmark/start/scientist, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/black, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "alo" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -6076,6 +6147,21 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/security/warden) +"alr" = ( +/obj/machinery/computer/camera_advanced/xenobio{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) "als" = ( /obj/machinery/door_timer{ id = "Cell 3"; @@ -6159,6 +6245,29 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"alx" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_y = 4 + }, +/obj/item/folder/white{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) "aly" = ( /obj/structure/cable{ icon_state = "1-2" @@ -6345,13 +6454,27 @@ "alU" = ( /turf/closed/wall, /area/maintenance/port/fore) -"alX" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ +"alV" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"alW" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "alY" = ( /obj/structure/cable{ icon_state = "1-2" @@ -6422,6 +6545,31 @@ }, /turf/open/floor/plasteel/dark, /area/security/warden) +"amh" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"ami" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "amj" = ( /obj/machinery/door_timer{ id = "Cell 2"; @@ -6442,6 +6590,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/security/brig) +"aml" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) "amm" = ( /obj/structure/cable{ icon_state = "0-8" @@ -6464,6 +6618,12 @@ }, /turf/open/floor/plating, /area/security/brig) +"amo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) "amp" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -6591,6 +6751,41 @@ /obj/item/coin/diamond, /turf/open/floor/plating, /area/maintenance/port/fore) +"amG" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"amH" = ( +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) "amI" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -6663,6 +6858,31 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/security/brig) +"amP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"amQ" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) "amR" = ( /obj/structure/cable{ icon_state = "0-4" @@ -6683,6 +6903,24 @@ }, /turf/closed/wall/r_wall, /area/security/brig) +"amT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) "amU" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -6818,6 +7056,23 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"ano" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"anp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "anq" = ( /obj/structure/chair{ dir = 8 @@ -6869,6 +7124,14 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/fore) +"anx" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "any" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable{ @@ -7002,6 +7265,17 @@ /obj/item/bedsheet/blue, /turf/open/floor/plasteel, /area/security/brig) +"anN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "anO" = ( /obj/docking_port/stationary{ dir = 8; @@ -7190,6 +7464,33 @@ /obj/item/circuitboard/machine/monkey_recycler, /turf/open/floor/plating, /area/maintenance/port/fore) +"aop" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/mob/living/simple_animal/slime, +/turf/open/floor/engine, +/area/science/xenobiology) +"aoq" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) "aor" = ( /obj/structure/table, /obj/item/restraints/handcuffs, @@ -7200,6 +7501,24 @@ }, /turf/open/floor/plasteel/dark, /area/security/brig) +"aos" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio7"; + name = "containment blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) "aot" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -7469,12 +7788,19 @@ /turf/open/floor/plating, /area/security/warden) "apa" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/engine/atmos) +"apb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/mob/living/simple_animal/slime, +/turf/open/floor/engine, +/area/science/xenobiology) "apc" = ( /obj/structure/chair/office/dark, /turf/open/floor/plasteel/showroomfloor, @@ -7632,6 +7958,26 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) +"apw" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) "apx" = ( /obj/machinery/door/airlock/atmos/abandoned{ name = "Atmospherics Maintenance"; @@ -7700,7 +8046,9 @@ /area/maintenance/starboard/fore) "apF" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 + }, /turf/open/floor/plating, /area/engine/atmos) "apG" = ( @@ -7729,13 +8077,6 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"apI" = ( -/obj/machinery/atmospherics/components/unary/relief_valve/atmos/atmos_waste{ - dir = 1 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/engine/atmos) "apJ" = ( /turf/closed/wall, /area/construction/mining/aux_base) @@ -8135,6 +8476,24 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/maintenance/starboard/fore) +"aqB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) "aqC" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -8179,6 +8538,14 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/fore) +"aqG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "aqH" = ( /obj/machinery/light{ dir = 1; @@ -8267,6 +8634,11 @@ "aqR" = ( /turf/open/floor/plating, /area/maintenance/fore) +"aqS" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "aqT" = ( /obj/structure/cable{ icon_state = "1-2" @@ -8444,6 +8816,14 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/fore) +"ars" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "art" = ( /obj/machinery/light/small{ dir = 1 @@ -8918,6 +9298,12 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) +"asr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/science/xenobiology) "ass" = ( /obj/machinery/door/airlock/security/glass{ name = "Labor Camp Shuttle Airlock" @@ -8984,6 +9370,13 @@ "asB" = ( /turf/closed/wall, /area/maintenance/department/electrical) +"asC" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/science/xenobiology) "asD" = ( /obj/structure/table/wood, /mob/living/simple_animal/pet/fox/Renault, @@ -36820,21 +37213,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/engine, /area/science/xenobiology) -"bJL" = ( -/obj/machinery/door/window/southleft{ - dir = 1; - name = "Test Chamber"; - req_access_txt = "55" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "misclab"; - name = "test chamber blast door" - }, -/turf/open/floor/engine, -/area/science/xenobiology) "bJM" = ( /obj/structure/cable{ icon_state = "0-8" @@ -37423,14 +37801,6 @@ }, /turf/open/floor/plasteel, /area/science/xenobiology) -"bLa" = ( -/obj/machinery/door/window/southleft{ - name = "Test Chamber"; - req_access_txt = "55" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/science/xenobiology) "bLb" = ( /obj/structure/cable{ icon_state = "1-2" @@ -37678,33 +38048,38 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/turf/open/floor/plasteel/checker, +/turf/open/floor/plasteel, /area/hallway/primary/aft) "bLI" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/hallway/primary/aft) "bLJ" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/bot, +/obj/machinery/computer/atmos_control, /turf/open/floor/plasteel, /area/engine/atmos) "bLK" = ( /turf/closed/wall/r_wall, /area/engine/atmos) "bLL" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/effect/turf_decal/bot, +/obj/machinery/computer/station_alert, +/obj/machinery/airalarm{ + pixel_y = 23 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bLM" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/bot, +/obj/machinery/computer/atmos_alert, /turf/open/floor/plasteel, /area/engine/atmos) "bLN" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/effect/turf_decal/bot, +/obj/machinery/button/door{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_x = 24; + pixel_y = 4; + req_access_txt = "24" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bLO" = ( @@ -38069,25 +38444,11 @@ /turf/closed/wall, /area/engine/atmos) "bML" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bMM" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, /turf/open/floor/plasteel, /area/engine/atmos) "bMN" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/heater, /turf/open/floor/plasteel, /area/engine/atmos) "bMO" = ( @@ -38156,16 +38517,8 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bMY" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) "bMZ" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on, /turf/open/floor/plasteel, /area/engine/atmos) "bNb" = ( @@ -38445,18 +38798,20 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow{ +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/loading_area{ dir = 8 }, -/turf/open/floor/plasteel/dark/corner, +/turf/open/floor/plasteel, /area/hallway/primary/aft) "bNP" = ( /obj/structure/disposalpipe/segment{ - dir = 6 + dir = 4 }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = -30 +/obj/effect/turf_decal/loading_area{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -38471,9 +38826,6 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, /obj/machinery/camera{ c_tag = "Atmospherics Monitoring" }, @@ -38500,6 +38852,9 @@ /obj/machinery/light{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bNU" = ( @@ -38539,17 +38894,11 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/science/misc_lab) -"bOa" = ( +"bOb" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /turf/open/floor/plasteel, /area/engine/atmos) "bOc" = ( @@ -38557,6 +38906,9 @@ dir = 1; name = "Mix to Distro" }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bOd" = ( @@ -38576,16 +38928,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/engine/atmos) -"bOg" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix to Incinerator" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bOh" = ( /obj/structure/grille, /turf/closed/wall/r_wall, @@ -38887,15 +39229,6 @@ }, /turf/open/floor/plasteel/white, /area/medical/virology) -"bOQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) "bOR" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -38903,15 +39236,9 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bOS" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, -/obj/effect/turf_decal/loading_area{ - dir = 4 - }, /turf/open/floor/plasteel, /area/engine/atmos) "bOT" = ( @@ -38947,9 +39274,6 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bOW" = ( -/obj/machinery/computer/atmos_control{ - dir = 8 - }, /obj/machinery/requests_console{ department = "Atmospherics"; departmentType = 4; @@ -38959,8 +39283,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 +/obj/machinery/computer/atmos_control{ + dir = 8 }, /turf/open/floor/plasteel/dark/corner, /area/engine/atmos) @@ -39009,53 +39333,54 @@ /turf/open/floor/plasteel/white, /area/science/circuit) "bPc" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Mix to Waste" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bPd" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/atmos) -"bPd" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Waste In" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bPe" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Pure to Ports" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bPf" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Air to Mix" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ +/obj/machinery/atmospherics/pipe/simple/purple/visible{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "bPg" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix Outlet Pump" +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bPh" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold{ dir = 4 }, -/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/engine/atmos) "bPi" = ( /obj/machinery/light{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, /obj/effect/turf_decal/tile/green{ dir = 1 }, @@ -39063,6 +39388,9 @@ /obj/effect/turf_decal/tile/green{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bPj" = ( @@ -39178,14 +39506,6 @@ }, /turf/open/floor/plasteel, /area/science/xenobiology) -"bPy" = ( -/obj/effect/landmark/start/scientist, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair/comfy/black, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) "bPz" = ( /obj/structure/table/glass, /obj/item/storage/box/beakers{ @@ -39221,41 +39541,6 @@ }, /turf/open/floor/plasteel, /area/science/xenobiology) -"bPB" = ( -/obj/structure/table/glass, -/obj/item/paper_bin{ - pixel_y = 4 - }, -/obj/item/folder/white{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = -4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bPC" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bPD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) "bPE" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -39478,20 +39763,15 @@ }, /turf/open/floor/plasteel, /area/security/checkpoint/engineering) -"bQf" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel/checker, -/area/hallway/primary/aft) "bQg" = ( /turf/open/floor/plasteel, /area/hallway/primary/aft) "bQh" = ( -/obj/structure/tank_dispenser{ - pixel_x = -1 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/plasteel, /area/engine/atmos) "bQi" = ( @@ -39515,15 +39795,15 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bQl" = ( -/obj/machinery/computer/atmos_control{ +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/computer/atmos_alert{ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, /turf/open/floor/plasteel/dark/corner, /area/engine/atmos) "bQm" = ( @@ -39536,15 +39816,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/engine/atmos) -"bQo" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "Atmospherics Blast Door" }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/atmos) "bQp" = ( /obj/structure/cable{ @@ -39575,14 +39852,11 @@ }, /turf/open/floor/plasteel, /area/security/checkpoint/engineering) -"bQr" = ( -/obj/structure/closet/crate, -/turf/open/floor/plasteel, -/area/engine/atmos) "bQs" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Mix to Filter" + name = "Air to Waste" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -39592,20 +39866,9 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bQu" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bQv" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQw" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible{ +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, /turf/open/floor/plasteel, @@ -39629,6 +39892,9 @@ /obj/effect/turf_decal/tile/green{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 10 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bQA" = ( @@ -39698,18 +39964,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/tcommsat/computer) -"bQL" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) "bQM" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ @@ -39918,14 +40172,15 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/turf/open/floor/plasteel/dark/corner, +/turf/open/floor/plasteel, /area/hallway/primary/aft) "bRr" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/landmark/start/atmospheric_technician, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/tank_dispenser, /turf/open/floor/plasteel, /area/engine/atmos) "bRs" = ( @@ -39948,12 +40203,12 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bRu" = ( -/obj/machinery/computer/atmos_alert{ - dir = 8 - }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/computer/atmos_alert{ + dir = 8 + }, /turf/open/floor/plasteel/dark/corner, /area/engine/atmos) "bRv" = ( @@ -39967,25 +40222,20 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bRw" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, +/obj/effect/turf_decal/bot, /obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/plasteel, /area/engine/atmos) "bRx" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/engine/atmos) -"bRy" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) -"bRz" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 8 +"bRy" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/stripes/line{ + dir = 6 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -39996,12 +40246,13 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bRB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Waste to Filter" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bRC" = ( @@ -40029,18 +40280,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bRF" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRG" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1; - name = "Unfiltered to Mix" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to Ports" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -40059,23 +40300,25 @@ /turf/open/floor/plating, /area/engine/atmos) "bRJ" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Unfiltered & Air to Mix" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/effect/turf_decal/tile/green{ + dir = 8 }, /obj/effect/turf_decal/tile/green, /obj/effect/turf_decal/tile/green{ dir = 4 }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engine/atmos) "bRK" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 6 }, +/obj/structure/lattice, /turf/open/space, /area/space/nearstation) "bRL" = ( @@ -40177,16 +40420,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/engine, /area/science/xenobiology) -"bRX" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) "bRY" = ( /obj/structure/window/reinforced, /obj/structure/table/reinforced, @@ -40371,27 +40604,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"bSB" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/structure/table, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = -8 - }, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = -8 - }, -/obj/item/clothing/mask/breath{ - pixel_x = 4 - }, -/obj/item/clothing/mask/breath{ - pixel_x = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/atmos) "bSC" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -40401,114 +40613,38 @@ /turf/open/floor/plating, /area/engine/atmos) "bSD" = ( -/obj/structure/sign/plaques/atmos{ - pixel_y = -32 - }, -/obj/structure/table, -/obj/item/storage/box, -/obj/item/storage/box, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bSE" = ( -/obj/machinery/computer/station_alert{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "atmos"; - name = "Atmospherics Lockdown"; - pixel_x = 24; - pixel_y = 4; +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Monitoring"; req_access_txt = "24" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel, /area/engine/atmos) "bSF" = ( -/obj/structure/table, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/clothing/head/welding{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/item/multitool, -/obj/item/clothing/glasses/welding, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bSG" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty{ - pixel_x = 2; - pixel_y = 2 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bSH" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass/fifty, -/obj/item/storage/belt/utility, -/obj/item/t_scanner, -/obj/item/t_scanner, -/obj/item/t_scanner, +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/nitrogen, /turf/open/floor/plasteel, /area/engine/atmos) "bSI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bSJ" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"bSK" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 6 }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/engine/atmos) "bSM" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"bSN" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 }, -/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/engine/atmos) "bSP" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4 - }, /obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plating, /area/engine/atmos) "bSQ" = ( @@ -40605,71 +40741,6 @@ /obj/machinery/vending/medical, /turf/open/floor/plasteel/white, /area/medical/virology) -"bTa" = ( -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bTb" = ( -/obj/machinery/door/window/northleft{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio3"; - name = "containment blast door" - }, -/turf/open/floor/engine, -/area/science/xenobiology) -"bTc" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bTd" = ( -/obj/machinery/door/window/northleft{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bTe" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio8"; - name = "containment blast door" - }, -/turf/open/floor/engine, -/area/science/xenobiology) "bTf" = ( /obj/structure/rack, /obj/item/wrench, @@ -40912,16 +40983,23 @@ /area/engine/atmos) "bTM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/engine/atmos) -"bTN" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/atmos/glass{ - name = "Atmospherics Monitoring"; - req_access_txt = "24" +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) +"bTN" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/structure/closet/secure_closet/atmospherics, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) "bTO" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 6 @@ -40934,30 +41012,11 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bTQ" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTR" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTS" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) "bTT" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 }, +/obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmos) "bTU" = ( @@ -40969,11 +41028,12 @@ "bTV" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "N2O Outlet Pump" + name = "N2O to Pure" }, /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/cafeteria, /area/engine/atmos) "bTW" = ( @@ -41057,16 +41117,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/engine, /area/science/xenobiology) -"bUf" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) "bUg" = ( /obj/structure/window/reinforced{ dir = 1 @@ -41163,7 +41213,7 @@ /area/science/circuit) "bUr" = ( /obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 10 }, /turf/open/space, @@ -41306,6 +41356,9 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor5" + }, /turf/open/floor/plasteel/dark/corner, /area/engine/atmos) "bUJ" = ( @@ -41336,31 +41389,22 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 + dir = 9 }, /turf/open/floor/plasteel, /area/engine/atmos) "bUN" = ( -/obj/item/beacon, +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bUO" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Mix to Port" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUP" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Air to Port" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUQ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Pure to Port" +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41379,11 +41423,14 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, /turf/open/floor/plasteel/white/corner, /area/engine/atmos) "bUU" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/machinery/atmospherics/miner/n2o, +/obj/effect/turf_decal/vg_decals/atmos/nitrous_oxide, /turf/open/floor/engine/n2o, /area/engine/atmos) "bUV" = ( @@ -41394,6 +41441,7 @@ /obj/machinery/light/small{ dir = 4 }, +/obj/machinery/atmospherics/miner/n2o, /turf/open/floor/engine/n2o, /area/engine/atmos) "bUY" = ( @@ -41743,6 +41791,10 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/suit_storage_unit/atmos, /turf/open/floor/plasteel/dark/corner, /area/engine/atmos) "bVS" = ( @@ -41759,17 +41811,10 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bVU" = ( -/obj/structure/reagent_dispensers/watertank/high, -/turf/open/floor/plasteel, -/area/engine/atmos) "bVV" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 4 - }, /turf/open/floor/plasteel, /area/engine/atmos) "bVW" = ( @@ -41789,32 +41834,16 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plasteel, /area/engine/atmos) -"bVY" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) "bVZ" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bWa" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bWb" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ - dir = 1 +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Ports to External" }, /turf/open/floor/plasteel, /area/engine/atmos) "bWc" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ + dir = 1 }, /obj/effect/turf_decal/tile/red{ dir = 4 @@ -42098,21 +42127,21 @@ }, /area/engine/atmos) "bWN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 }, -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "Atmospherics Blast Door" +/obj/effect/turf_decal/tile/yellow{ + dir = 8 }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bWO" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ +/turf/open/floor/plasteel/dark/corner{ dir = 1 }, -/obj/machinery/meter, +/area/engine/atmos) +"bWO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, /turf/closed/wall/r_wall, /area/engine/atmos) "bWP" = ( @@ -42136,42 +42165,15 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bWS" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/obj/machinery/camera{ - c_tag = "Atmospherics West"; - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bWT" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Air to Port" - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bWU" = ( /obj/machinery/light{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Mix to Engine" }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bWV" = ( @@ -42258,42 +42260,6 @@ }, /turf/open/floor/plasteel/white, /area/medical/virology) -"bXe" = ( -/mob/living/simple_animal/slime, -/turf/open/floor/engine, -/area/science/xenobiology) -"bXf" = ( -/obj/machinery/door/window/northleft{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio2"; - name = "containment blast door" - }, -/turf/open/floor/engine, -/area/science/xenobiology) -"bXg" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio7"; - name = "containment blast door" - }, -/turf/open/floor/engine, -/area/science/xenobiology) "bXh" = ( /obj/structure/filingcabinet/chestdrawer, /turf/open/floor/plasteel, @@ -42521,23 +42487,10 @@ }, /area/engine/atmos) "bXK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 9 - }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, /turf/closed/wall/r_wall, /area/engine/atmos) -"bXL" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bXM" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bXN" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -42577,29 +42530,7 @@ /obj/structure/fireaxecabinet{ pixel_x = -32 }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bXR" = ( -/obj/structure/closet/secure_closet/atmospherics, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/item/cartridge/atmos, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bXS" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bXT" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bXU" = ( @@ -42615,11 +42546,19 @@ }, /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Plasma Outlet Pump" + name = "Plasma to Pure" }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bXW" = ( @@ -42921,31 +42860,19 @@ /obj/effect/turf_decal/tile/yellow, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"bYJ" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/break_room) -"bYK" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel/checker, -/area/engine/break_room) "bYL" = ( /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, -/area/engine/break_room) +/area/engine/atmos) "bYM" = ( /obj/machinery/airalarm{ dir = 1; @@ -42963,9 +42890,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"bYN" = ( -/turf/closed/wall, -/area/security/checkpoint/engineering) "bYO" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -42977,35 +42901,27 @@ /turf/closed/wall, /area/crew_quarters/bar) "bYQ" = ( -/obj/machinery/suit_storage_unit/atmos, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bYR" = ( -/obj/structure/sign/warning/nosmoking, -/turf/closed/wall, -/area/engine/atmos) -"bYS" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/atmos) "bYT" = ( /obj/machinery/computer/atmos_control/tank/toxin_tank{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/engine/atmos) "bYU" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/obj/machinery/atmospherics/miner/toxins, +/obj/effect/turf_decal/vg_decals/atmos/plasma, /turf/open/floor/engine/plasma, /area/engine/atmos) "bYV" = ( @@ -43016,6 +42932,7 @@ /obj/machinery/light/small{ dir = 4 }, +/obj/machinery/atmospherics/miner/toxins, /turf/open/floor/engine/plasma, /area/engine/atmos) "bYX" = ( @@ -43299,42 +43216,29 @@ /obj/structure/cable{ icon_state = "0-4" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bZG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/cable{ icon_state = "1-8" }, /turf/open/floor/plasteel, /area/engine/atmos) -"bZH" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/item/wrench, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bZI" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bZJ" = ( +"bZK" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ dir = 1 }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bZK" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bZL" = ( @@ -43717,57 +43621,9 @@ }, /turf/closed/wall/r_wall, /area/security/checkpoint/engineering) -"caE" = ( -/obj/machinery/requests_console{ - department = "Atmospherics"; - departmentType = 4; - name = "Atmos RC"; - pixel_x = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"caF" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Atmospherics Central"; - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Port to Filter" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"caG" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"caH" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/engine/atmos) -"caI" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) "caJ" = ( /obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 5 - }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/space, /area/space/nearstation) "caK" = ( @@ -43892,38 +43748,6 @@ }, /turf/open/floor/plating, /area/maintenance/aft) -"caV" = ( -/obj/machinery/door/window/northleft{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio1"; - name = "containment blast door" - }, -/turf/open/floor/engine, -/area/science/xenobiology) -"caW" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio6"; - name = "containment blast door" - }, -/turf/open/floor/engine, -/area/science/xenobiology) "caX" = ( /obj/machinery/sparker{ id = "testigniter"; @@ -44207,42 +44031,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/engine/atmos) -"cbB" = ( -/obj/machinery/space_heater, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cbC" = ( -/obj/machinery/space_heater, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cbD" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Port to Filter" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cbE" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cbF" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/item/cigbutt, -/turf/open/floor/plasteel, -/area/engine/atmos) "cbG" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "CO2 Outlet Pump" + name = "CO2 to Pure" }, /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -44251,6 +44043,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel, /area/engine/atmos) "cbH" = ( @@ -44266,9 +44059,6 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 10 - }, /turf/open/floor/plating, /area/maintenance/aft) "cbK" = ( @@ -44351,13 +44141,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/engine, /area/science/xenobiology) -"cbT" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) "cbU" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -44619,24 +44402,12 @@ dir = 4; pixel_x = -24 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/engine/atmos) "ccw" = ( /turf/closed/wall/r_wall, /area/engine/engineering) -"ccx" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 1 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ccy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "ccz" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 4; @@ -44652,11 +44423,11 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel, /area/engine/atmos) "ccB" = ( -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/obj/machinery/atmospherics/miner/carbon_dioxide, +/obj/effect/turf_decal/vg_decals/atmos/carbon_dioxide, /turf/open/floor/engine/co2, /area/engine/atmos) "ccC" = ( @@ -44667,6 +44438,7 @@ /obj/machinery/light/small{ dir = 4 }, +/obj/machinery/atmospherics/miner/carbon_dioxide, /turf/open/floor/engine/co2, /area/engine/atmos) "ccE" = ( @@ -44761,10 +44533,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"ccP" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) "ccQ" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -44977,52 +44745,24 @@ dir = 4; pixel_x = -22 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/engine/atmos) "cdx" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) -"cdy" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cdz" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "O2 to Pure" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cdA" = ( -/obj/machinery/atmospherics/components/trinary/mixer/airmix{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cdB" = ( +"cdC" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ dir = 1 }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cdC" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 +/obj/effect/turf_decal/tile/yellow{ + dir = 8 }, /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engine/atmos) "cdD" = ( @@ -45035,9 +44775,6 @@ /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, /turf/open/floor/plating, /area/maintenance/aft) "cdF" = ( @@ -45364,6 +45101,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/engine/atmos) "cey" = ( @@ -45387,26 +45125,19 @@ /obj/machinery/light{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 9 }, /turf/open/floor/plasteel, /area/engine/atmos) -"ceC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plating, -/area/maintenance/aft) "ceD" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/aft) "ceE" = ( @@ -45414,6 +45145,9 @@ pixel_y = -32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/aft) "ceF" = ( @@ -45616,21 +45350,29 @@ /turf/open/floor/plasteel, /area/engine/break_room) "cfi" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/reagent_dispensers/watertank/high, /turf/open/floor/plasteel, /area/engine/atmos) "cfj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, /turf/closed/wall, /area/maintenance/disposal/incinerator) "cfk" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/atmos{ name = "Turbine Access"; req_access_txt = "32" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/disposal/incinerator) "cfl" = ( @@ -45845,17 +45587,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/engine/engineering) -"cfN" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cfO" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel, -/area/engine/atmos) "cfP" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ +/obj/machinery/atmospherics/components/trinary/mixer/airmix/inverse{ dir = 4 }, /turf/open/floor/plasteel, @@ -45867,22 +45600,11 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) -"cfR" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cfT" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "cfU" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, /area/maintenance/disposal/incinerator) "cfW" = ( @@ -45892,7 +45614,6 @@ /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plating, /area/maintenance/aft) "cfX" = ( @@ -45902,7 +45623,9 @@ pixel_y = -24 }, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, /turf/open/floor/plating, /area/maintenance/aft) "cfY" = ( @@ -45912,14 +45635,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/disposal/incinerator) "cfZ" = ( /obj/machinery/light_switch{ pixel_y = 26 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "cga" = ( @@ -46258,11 +45982,12 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "cgW" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/portable_atmospherics/pump, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -46270,11 +45995,17 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "cgX" = ( /obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) "cgY" = ( @@ -46289,6 +46020,9 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "cgZ" = ( @@ -46299,17 +46033,22 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "cha" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/effect/turf_decal/tile/blue{ - dir = 1 +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 4 }, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "chb" = ( @@ -46324,6 +46063,9 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "chc" = ( @@ -46333,6 +46075,9 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 9 + }, /turf/open/floor/plasteel/white/corner, /area/engine/atmos) "chd" = ( @@ -46340,6 +46085,9 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, /turf/open/floor/plasteel/cafeteria, /area/engine/atmos) "che" = ( @@ -46393,15 +46141,17 @@ /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "chk" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, /turf/closed/wall, /area/maintenance/disposal/incinerator) "chl" = ( /obj/machinery/light{ dir = 1 }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "atmospherics mix pump" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) @@ -46416,16 +46166,13 @@ /obj/structure/cable/yellow{ icon_state = "0-8" }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/maintenance/disposal/incinerator) "chn" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "cho" = ( @@ -46466,13 +46213,6 @@ /obj/machinery/atmospherics/pipe/manifold/general/visible, /turf/open/floor/circuit/telecomms, /area/science/xenobiology) -"cht" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) "chu" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 @@ -46842,13 +46582,16 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "ciu" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold, /turf/open/floor/plating, /area/engine/atmos) "civ" = ( /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plating, /area/engine/atmos) "cix" = ( @@ -46883,12 +46626,15 @@ /obj/effect/decal/cleanable/cobweb, /obj/structure/reagent_dispensers/watertank, /obj/item/extinguisher, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "ciC" = ( /obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 5 }, /turf/open/space, /area/space/nearstation) @@ -47219,35 +46965,16 @@ /turf/open/floor/plasteel, /area/construction) "cjp" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, /obj/structure/reagent_dispensers/fueltank, /obj/item/storage/toolbox/emergency, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cjq" = ( -/obj/machinery/atmospherics/components/binary/valve{ - name = "Mix to Space" +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 }, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "cjr" = ( /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) -"cjs" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cjt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) "cju" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; @@ -47256,9 +46983,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "cjv" = ( @@ -47268,10 +46992,6 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "cjw" = ( @@ -47284,9 +47004,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall, /area/maintenance/disposal/incinerator) "cjy" = ( @@ -47551,30 +47269,27 @@ /area/engine/atmos) "cke" = ( /obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "ckf" = ( /obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/disposal/incinerator) "ckg" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/machinery/meter, +/obj/machinery/atmospherics/components/binary/valve, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "ckh" = ( /obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix to MiniSat" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cki" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 + dir = 4; + name = "atmospherics mix pump" }, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) @@ -47585,17 +47300,6 @@ }, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) -"ckk" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4; - name = "Incinerator to Space" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) "ckl" = ( /obj/machinery/portable_atmospherics/canister, /obj/effect/decal/cleanable/cobweb, @@ -47609,11 +47313,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/aft) -"ckn" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/science/xenobiology) "cko" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall, @@ -47872,7 +47571,6 @@ /area/engine/atmos) "cld" = ( /obj/effect/landmark/blobstart, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/components/binary/pump{ dir = 4; name = "Mix to Incinerator" @@ -47890,19 +47588,6 @@ /obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) -"clg" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/turf/open/floor/plating, -/area/maintenance/disposal/incinerator) "clh" = ( /obj/machinery/light/small, /obj/structure/extinguisher_cabinet{ @@ -47933,7 +47618,6 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "clk" = ( @@ -48188,16 +47872,14 @@ /turf/open/floor/plasteel, /area/engine/engineering) "clT" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/machinery/atmospherics/miner/nitrogen, +/obj/effect/turf_decal/vg_decals/atmos/nitrogen, /turf/open/floor/engine/n2, /area/engine/atmos) "clU" = ( /turf/open/floor/engine/n2, /area/engine/atmos) "clV" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/atmospherics/miner/oxygen, +/obj/effect/turf_decal/vg_decals/atmos/oxygen, /turf/open/floor/engine/o2, /area/engine/atmos) "clW" = ( @@ -48211,9 +47893,11 @@ /turf/open/floor/engine/air, /area/engine/atmos) "cmb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "cmd" = ( /turf/closed/wall/r_wall, @@ -48223,20 +47907,14 @@ /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "cmf" = ( -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "Incinerator to Space" }, -/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{ - pixel_x = 38; - pixel_y = 6 - }, -/turf/open/floor/engine, +/turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "cmg" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden{ @@ -48452,10 +48130,12 @@ /area/engine/engineering) "cmU" = ( /obj/machinery/light/small, +/obj/machinery/atmospherics/miner/nitrogen, /turf/open/floor/engine/n2, /area/engine/atmos) "cmV" = ( /obj/machinery/light/small, +/obj/machinery/atmospherics/miner/oxygen, /turf/open/floor/engine/o2, /area/engine/atmos) "cmW" = ( @@ -49731,10 +49411,6 @@ }, /turf/open/space, /area/space/nearstation) -"csk" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/airless, -/area/space/nearstation) "csl" = ( /obj/structure/transit_tube/curved{ dir = 4 @@ -49790,8 +49466,8 @@ /area/ai_monitored/turret_protected/aisat_interior) "csM" = ( /obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/structure/transit_tube/crossing/horizontal, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/space, /area/space/nearstation) "csN" = ( @@ -49857,7 +49533,7 @@ /area/ai_monitored/turret_protected/aisat_interior) "ctd" = ( /obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/space, /area/space/nearstation) "ctg" = ( @@ -50122,13 +49798,6 @@ /obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) -"ctN" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 10 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) "ctP" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -50224,8 +49893,8 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "ctY" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/aisat/atmos) "ctZ" = ( @@ -50305,11 +49974,11 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "cuh" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/structure/rack, /obj/item/wrench, /obj/item/crowbar/red, /obj/item/clothing/head/welding, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat/atmos) "cui" = ( @@ -50342,7 +50011,7 @@ /area/ai_monitored/turret_protected/aisat/service) "cun" = ( /obj/machinery/atmospherics/components/binary/pump{ - name = "Mix to MiniSat" + name = "Incinerator to MiniSat" }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -52377,23 +52046,12 @@ /turf/open/floor/engine/vacuum, /area/science/mixing) "cBF" = ( +/obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 8 }, -/obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/engine/atmos) -"cBG" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) "cBH" = ( /obj/structure/cable{ icon_state = "1-2" @@ -52406,9 +52064,6 @@ /turf/open/floor/plasteel, /area/security/checkpoint/engineering) "cBJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 9 - }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/engine/atmos) @@ -52452,8 +52107,8 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cBP" = ( -/obj/machinery/portable_atmospherics/canister/air, /obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/vg_decals/atmos/air, /turf/open/floor/engine/air, /area/engine/atmos) "cBS" = ( @@ -52583,9 +52238,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cCB" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "cCC" = ( @@ -52595,18 +52248,16 @@ /turf/open/floor/plasteel, /area/engine/atmos) "cCD" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix to Engine" +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "cCE" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel, /area/engine/atmos) "cCF" = ( @@ -53101,6 +52752,10 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"cLS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/vacantoffice/b) "cMC" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -53792,21 +53447,29 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel, /area/security/brig) -"daI" = ( -/obj/structure/reagent_dispensers/foamtank, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ +"daq" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ dir = 1 }, -/obj/effect/turf_decal/stripes/box, /turf/open/floor/plasteel, /area/engine/atmos) +"daI" = ( +/obj/structure/window/reinforced, +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"dbb" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/components/unary/relief_valve/atmos/atmos_waste{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/engine/atmos) "dbU" = ( /obj/structure/light_construct{ dir = 1 @@ -53876,6 +53539,20 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"diH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/suit_storage_unit/atmos, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "dly" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -53961,6 +53638,13 @@ }, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) +"dAe" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) "dBm" = ( /obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plating, @@ -53983,6 +53667,16 @@ }, /turf/open/floor/plasteel, /area/security/range) +"dEX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/requests_console{ + department = "Atmospherics"; + departmentType = 4; + name = "Atmos RC"; + pixel_x = -30 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "dFX" = ( /turf/closed/wall, /area/crew_quarters/fitness/pool) @@ -54005,6 +53699,13 @@ /obj/structure/chair/stool/bar, /turf/open/floor/wood, /area/maintenance/bar) +"dMj" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "dMZ" = ( /obj/structure/sign/poster/official/random{ pixel_y = 32 @@ -54037,6 +53738,13 @@ }, /turf/open/floor/plating, /area/maintenance/fore) +"dQD" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Incinerator to MiniSat" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) "dTI" = ( /obj/structure/urinal{ pixel_y = 32 @@ -54116,6 +53824,13 @@ }, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) +"eiZ" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/purple/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "elh" = ( /obj/structure/chair/comfy/black{ dir = 8 @@ -54156,6 +53871,10 @@ /obj/item/assembly/signaler, /turf/open/floor/plating, /area/security/prison) +"eqq" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) "eqA" = ( /obj/machinery/shower{ dir = 8 @@ -54193,6 +53912,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood, /area/library) +"eus" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "evR" = ( /turf/open/floor/plating, /area/maintenance/bar) @@ -54221,6 +53947,24 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/quartermaster/miningdock) +"eyS" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Air to Pure" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ezF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "eAG" = ( /obj/item/clothing/under/misc/pj/blue, /obj/item/clothing/shoes/sneakers/white, @@ -54302,12 +54046,6 @@ /obj/effect/spawner/structure/window/shuttle, /turf/open/floor/plating/airless, /area/space/nearstation) -"eHI" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) "eJa" = ( /obj/structure/table/wood/poker, /obj/item/toy/cards/deck{ @@ -54341,6 +54079,13 @@ /obj/structure/closet/secure_closet/personal/cabinet, /turf/open/floor/carpet, /area/crew_quarters/dorms) +"eUW" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 9 + }, +/turf/open/space, +/area/space/nearstation) "eVC" = ( /obj/effect/spawner/structure/window, /obj/machinery/door/firedoor, @@ -54428,10 +54173,23 @@ dir = 4 }, /area/crew_quarters/theatre) +"fiy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) "fjS" = ( /obj/structure/closet/radiation, /turf/open/floor/plasteel, /area/engine/gravity_generator) +"fjU" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) "flc" = ( /obj/structure/table/reinforced, /obj/item/storage/fancy/donut_box, @@ -54663,6 +54421,13 @@ }, /turf/open/floor/plasteel, /area/hydroponics) +"fHi" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) "fHG" = ( /turf/open/floor/plasteel, /area/crew_quarters/fitness) @@ -54687,6 +54452,12 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/science/circuit) +"fKC" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "fMp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, @@ -54707,12 +54478,20 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) -"fPL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +"fPi" = ( +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" + }, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"fSO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 }, -/turf/open/floor/wood, -/area/crew_quarters/dorms) +/turf/open/floor/plasteel, +/area/engine/atmos) "fTg" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -54833,6 +54612,17 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/crew_quarters/fitness) +"giT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel, +/area/engine/atmos) "gjl" = ( /turf/closed/wall, /area/quartermaster/warehouse) @@ -54863,6 +54653,12 @@ }, /turf/open/floor/plating, /area/maintenance/fore/secondary) +"grr" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) "grA" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -54904,6 +54700,11 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/locker) +"gxw" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/visible, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/engine/atmos) "gyr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, @@ -54922,6 +54723,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/maintenance/fore) +"gAu" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "External to Waste" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "gBo" = ( /obj/structure/cable{ icon_state = "1-8" @@ -54985,6 +54796,15 @@ }, /turf/open/floor/wood, /area/maintenance/bar) +"gMD" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "gNC" = ( /obj/structure/cable{ icon_state = "1-2" @@ -55113,6 +54933,13 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plating, /area/maintenance/port) +"hgG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "hgO" = ( /obj/structure/table, /obj/item/storage/pill_bottle/dice{ @@ -55179,6 +55006,11 @@ }, /turf/open/floor/plating, /area/space/nearstation) +"hxn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plating, +/area/engine/atmos) "hzK" = ( /turf/open/floor/plasteel/yellowsiding/corner{ dir = 1 @@ -55254,6 +55086,15 @@ }, /turf/closed/wall, /area/quartermaster/warehouse) +"hQY" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "hRa" = ( /obj/structure/table/reinforced, /obj/machinery/light{ @@ -55387,6 +55228,13 @@ "ipA" = ( /turf/open/floor/plating, /area/maintenance/department/medical/morgue) +"iql" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/beacon, +/turf/open/floor/plasteel, +/area/engine/atmos) "itD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -55436,6 +55284,14 @@ /obj/effect/turf_decal/tile/green, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"ivJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) "iwB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -55479,6 +55335,14 @@ }, /turf/closed/wall/r_wall, /area/engine/gravity_generator) +"iIS" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/layer_manifold, +/turf/open/floor/plating, +/area/engine/atmos) "iLJ" = ( /obj/item/reagent_containers/glass/bucket, /mob/living/simple_animal/pet/bumbles, @@ -55541,10 +55405,15 @@ }, /turf/open/floor/wood, /area/crew_quarters/bar) -"iUK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +"iVJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel, -/area/security/vacantoffice/b) +/area/engine/atmos) "iVU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -55676,6 +55545,13 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"jtj" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "juG" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -55714,6 +55590,14 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) +"jzM" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) "jAD" = ( /obj/structure/grille, /turf/open/floor/plating/airless, @@ -55746,6 +55630,10 @@ }, /turf/closed/wall/r_wall, /area/engine/gravity_generator) +"jBQ" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) "jCq" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -55758,6 +55646,17 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"jDr" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "Atmospherics Blast Door" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "jEc" = ( /obj/machinery/vr_sleeper{ dir = 8 @@ -55779,6 +55678,12 @@ }, /turf/open/floor/plasteel, /area/engine/gravity_generator) +"jGI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) "jGW" = ( /obj/structure/cable{ icon_state = "4-8" @@ -55811,6 +55716,11 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"jIj" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/atmos) "jIs" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -55892,6 +55802,17 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"jVX" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) "jZT" = ( /obj/structure/cable{ icon_state = "4-8" @@ -55927,6 +55848,11 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"kcx" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/turf/open/space/basic, +/area/space/nearstation) "kdO" = ( /obj/machinery/pool/controller, /turf/open/floor/plasteel/yellowsiding, @@ -56182,6 +56108,13 @@ /obj/effect/landmark/stationroom/box/engine, /turf/open/space/basic, /area/space) +"kGv" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "kGJ" = ( /obj/structure/cable{ icon_state = "4-8" @@ -56215,6 +56148,13 @@ }, /turf/open/floor/plasteel, /area/security/processing) +"kJE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "kMt" = ( /obj/machinery/computer/prisoner/gulag_teleporter_computer, /turf/open/floor/plasteel, @@ -56354,6 +56294,19 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"lgX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"lhQ" = ( +/obj/machinery/power/floodlight, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/engine/atmos) "lip" = ( /obj/structure/closet{ name = "Suit Closet" @@ -56425,6 +56378,11 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"lzt" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/atmos) "lAB" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall, @@ -56480,6 +56438,12 @@ }, /turf/open/floor/plating, /area/security/main) +"lKj" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) "lMg" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -56561,6 +56525,10 @@ }, /turf/closed/wall, /area/crew_quarters/fitness/pool) +"maT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) "mbU" = ( /obj/machinery/vr_sleeper{ dir = 8 @@ -56585,6 +56553,11 @@ /obj/structure/bed, /turf/open/floor/plasteel, /area/crew_quarters/fitness/pool) +"mfI" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "mgF" = ( /obj/structure/bed, /turf/open/floor/plasteel, @@ -56674,6 +56647,10 @@ }, /turf/open/floor/wood, /area/crew_quarters/bar) +"moS" = ( +/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) "mps" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -56800,6 +56777,12 @@ }, /turf/open/floor/plasteel/dark, /area/engine/gravity_generator) +"mOG" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/atmos) "mPk" = ( /obj/structure/bed, /obj/machinery/button/door{ @@ -56903,12 +56886,6 @@ /obj/machinery/vending/autodrobe, /turf/open/floor/wood, /area/maintenance/bar) -"nfw" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) "ngs" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 @@ -56944,6 +56921,19 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) +"nmZ" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{ + pixel_x = 38; + pixel_y = 6 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) "nnp" = ( /obj/structure/closet/secure_closet/medical1, /obj/effect/decal/cleanable/dirt, @@ -56999,6 +56989,12 @@ }, /turf/open/floor/plating, /area/construction) +"nzR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) "nBI" = ( /obj/item/cigbutt/cigarbutt, /obj/effect/decal/cleanable/blood/old, @@ -57014,6 +57010,13 @@ }, /turf/open/floor/plating, /area/security/processing) +"nFj" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) "nGf" = ( /obj/machinery/hydroponics/constructable, /obj/machinery/light{ @@ -57032,6 +57035,14 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"nJQ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) "nLu" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -57089,6 +57100,12 @@ }, /turf/open/floor/plasteel, /area/security/processing) +"nTU" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Air to Ports" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "nUV" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -57115,6 +57132,14 @@ /obj/item/gun/ballistic/revolver/nagant, /turf/open/floor/plasteel/dark, /area/ai_monitored/nuke_storage) +"nYT" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/turf/open/space, +/area/space/nearstation) "nZE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral, @@ -57237,6 +57262,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/white, /area/science/circuit) +"omk" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "omX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -57464,6 +57495,17 @@ /obj/structure/pool/ladder, /turf/open/pool, /area/crew_quarters/fitness/pool) +"oVN" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"oXn" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) "oZl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/closet/wardrobe/pjs, @@ -57512,21 +57554,6 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/pool) -"plm" = ( -/obj/structure/reagent_dispensers/watertank/high, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/box, -/turf/open/floor/plasteel, -/area/engine/atmos) "plC" = ( /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" @@ -57624,6 +57651,22 @@ }, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) +"pzG" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/disposal/incinerator) "pAK" = ( /obj/machinery/door/window/brigdoor/security/cell{ id = "Cell 3"; @@ -57651,6 +57694,13 @@ /obj/effect/landmark/event_spawn, /turf/closed/wall, /area/crew_quarters/fitness) +"pCj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/turf/open/floor/plating, +/area/engine/atmos) "pDe" = ( /obj/machinery/door/window/southright{ name = "Target Storage" @@ -57772,13 +57822,6 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness) -"pRW" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) "pTB" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -57796,6 +57839,13 @@ }, /turf/open/floor/plasteel, /area/security/processing) +"pUP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) "qaY" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/bar, @@ -57906,6 +57956,15 @@ /obj/structure/grille/broken, /turf/open/space/basic, /area/space/nearstation) +"qvf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) "qyj" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, @@ -57928,6 +57987,11 @@ }, /turf/open/space, /area/solar/port/aft) +"qJV" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) "qLR" = ( /obj/structure/mirror{ pixel_y = 32 @@ -58021,6 +58085,13 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"rdl" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) "rdG" = ( /obj/machinery/hydroponics/constructable, /obj/item/radio/intercom{ @@ -58040,10 +58111,12 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) -"rfW" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) +"rgL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "rhX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, @@ -58059,6 +58132,13 @@ /obj/structure/chair/comfy/brown, /turf/open/floor/wood, /area/crew_quarters/bar) +"rmQ" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "rmX" = ( /obj/structure/table, /obj/item/reagent_containers/food/drinks/beer, @@ -58315,6 +58395,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/maintenance/fore) +"rTo" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "External to Pumps" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "rTu" = ( /obj/structure/cable{ icon_state = "4-8" @@ -58330,6 +58417,18 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) +"rVN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) "rXl" = ( /obj/structure/chair/office/light, /obj/machinery/firealarm{ @@ -58417,6 +58516,13 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/maintenance/department/medical/morgue) +"smP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/engine/atmos) "sqg" = ( /obj/structure/table/wood, /obj/item/clothing/under/misc/pj/red, @@ -58696,6 +58802,10 @@ "sXV" = ( /turf/closed/wall/r_wall, /area/security/range) +"sYm" = ( +/obj/effect/turf_decal/vg_decals/atmos/mix, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) "sYR" = ( /obj/machinery/door/airlock{ name = "Unisex Restrooms" @@ -58968,6 +59078,13 @@ }, /turf/open/floor/wood, /area/maintenance/bar) +"tSo" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 6 + }, +/turf/open/space/basic, +/area/space/nearstation) "tWj" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -59024,12 +59141,28 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"udT" = ( +/obj/machinery/atmospherics/pipe/manifold/purple/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) "uei" = ( /obj/structure/sign/warning/vacuum/external{ pixel_y = 32 }, /turf/open/floor/plating, /area/maintenance/fore/secondary) +"ueZ" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/camera{ + c_tag = "Atmospherics Central"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "ufD" = ( /obj/machinery/vr_sleeper{ dir = 4 @@ -59045,6 +59178,12 @@ dir = 4 }, /area/crew_quarters/fitness) +"ugp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "ugu" = ( /obj/structure/cable{ icon_state = "1-4" @@ -59239,6 +59378,24 @@ "uGI" = ( /turf/open/floor/grass, /area/security/prison) +"uHc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"uHl" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/engine/atmos) "uHp" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, @@ -59293,13 +59450,13 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/nuke_storage) -"uPT" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +"uQR" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "O2 to Pure" }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) +/turf/open/floor/plasteel, +/area/engine/atmos) "uQS" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1; @@ -59365,15 +59522,6 @@ }, /turf/open/floor/plating, /area/space/nearstation) -"vaW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) "vbi" = ( /obj/structure/table, /obj/item/instrument/guitar{ @@ -59785,11 +59933,26 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/maintenance/fore) +"vOC" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 5 + }, +/turf/open/space/basic, +/area/space/nearstation) "vOU" = ( /obj/structure/sign/warning/securearea, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, /area/ai_monitored/nuke_storage) +"vOV" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/turf/open/space, +/area/space/nearstation) "vPs" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -59803,6 +59966,24 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"vPQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"vQf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to External" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "vTP" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock"; @@ -59955,6 +60136,13 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/service) +"wvg" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Ports to Incinerator" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "wvX" = ( /obj/structure/table/reinforced, /obj/machinery/light, @@ -59968,6 +60156,13 @@ }, /turf/open/floor/wood, /area/crew_quarters/bar) +"wyE" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) "wBd" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 @@ -60113,6 +60308,13 @@ /obj/item/coin/gold, /turf/open/floor/plasteel, /area/crew_quarters/fitness) +"xcl" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 6 + }, +/turf/open/space, +/area/space/nearstation) "xgk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -60265,6 +60467,12 @@ }, /turf/open/floor/plating, /area/maintenance/fore) +"xud" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) "xxi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -60326,12 +60534,6 @@ /obj/structure/closet/secure_closet/personal, /turf/open/floor/plasteel, /area/crew_quarters/locker) -"xEu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) "xEB" = ( /obj/machinery/power/apc{ areastring = "/area/ai_monitored/nuke_storage"; @@ -60378,6 +60580,12 @@ /obj/effect/spawner/lootdrop/grille_or_trash, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"xJC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) "xJW" = ( /obj/machinery/door/airlock/maintenance{ name = "Security Maintenance"; @@ -60537,6 +60745,14 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/pool) +"yan" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal/incinerator) "ycd" = ( /obj/structure/toilet/secret/low_loot{ dir = 4 @@ -86149,7 +86365,7 @@ cCi aqX arR asj -iUK +cLS ajr atY auo @@ -89803,7 +90019,6 @@ bGO bHl bHS bLI -bLI bOR bQg bQg @@ -89813,6 +90028,7 @@ bQg bQg bQg bQg +bQg bYI bDG bHP @@ -90061,17 +90277,17 @@ bKw bLH bRq bNO -bOQ -bQf -bRq +bQg bRq bTK -bUE +jVX +jVX +uHl bUE bWM bXJ -bYH -bYH +bMK +bMK bYH bYH bVg @@ -90317,17 +90533,17 @@ bJs bKy bLK bLK -bLK bOT bQi bRs bSC -bLK +oXn +gxw bUG bVO bWO bXK -bYH +bLK bZz caw bYH @@ -90573,18 +90789,18 @@ bCv bJs bKy bLJ -bLJ +bWR bNP bOS bQh bRr -bSB bTL +rVN bUF bVN bWN +jDr bLK -bYJ bRi bZy cbu @@ -90830,7 +91046,7 @@ bCv bJs bKy bLM -bLM +fKC bNQ bOV bQk @@ -90838,9 +91054,9 @@ bRt bSD bTM bUH +bRt bVQ -bWN -bXM +jDr bYL cew bTh @@ -91087,18 +91303,18 @@ bCv bJs bKy bLL -bLL +bOd bNQ bOU bQj bOd -bOd +bMK bRx bTP bVP +cbA bWP -bXL -bYK +bLK bRj bTg bUm @@ -91343,19 +91559,19 @@ bDr bCy bGP bHn -bLN +cbz bLN bNS bOX bQm bRv -bOd +bSC bTN bTP -bRA +diH +bWQ bWQ bWQ -bYN bRm bTj caA @@ -91606,8 +91822,8 @@ bNR bOW bQl bRu -bSE -bRx +bSC +bTN bUI bVR bWQ @@ -91862,9 +92078,9 @@ bMK bMK bOY bQn -bRx -bMK +bSC bMK +mOG bUJ bVS bWQ @@ -92117,8 +92333,8 @@ bKz bLK bML bNT -bOV -bQj +smP +giT bRw bSF daI @@ -92375,12 +92591,12 @@ bLK bMN bNV bOV -bQo -bRz -bSH -plm -bTP -bRA +giT +bRw +bSF +daI +bUK +bVT bWQ bWQ bWQ @@ -92575,7 +92791,7 @@ aqe arf aqo atm -fPL +rgL arf avv awu @@ -92629,29 +92845,29 @@ bHU bJv bKB bLK -bMM +bVW bOd -bOV +iql bQj -bRy -bSG -daI -bUK -bVT -bWR +bVP +cbA +fSO +kJE +ugp +ueZ bXQ -bOd +cbA bZF -bPc -bOd +ezF +hgG ccv cdw cex -bOd -cfN -cfN -bLK -aaf +dEX +cbA +bQt +bLQ +dbb bOh bOh bOh @@ -92892,20 +93108,20 @@ bJB bKV bRB bSI -bSI +vQf bUM bVV -bWS -bSI -bSI +bVV +bVV +iVJ bZG -caE -cbA -ccy bOd bOd -bQu -cfO +bOd +bOd +bOd +bOd +bOd cgW cit cph @@ -93147,22 +93363,22 @@ bMO bIF bOZ bQp -bRA +alk +gAu +eqq +bOd +bOd +bOd bOd -bTO -bUL -bVU -bMK -bXR bYQ -bXR -bMK -cbz -ccx -cbA -cbA +bOd +bOd +bOd +bOd +bOd +dMj cfi -bRH +bOd cgV bMQ aaf @@ -93403,23 +93619,23 @@ bLK bMR bIH bJF -bQr -bRA -bOd -bTP -bOd bVX -bMK -bMK -bYR -bMK -bMK -cbC bRA +bTP +rTo +bOd +bOd +bOd +bOd +bYQ +bOd +bOd +bOd +bOd +bOd +jtj +jIj bTO -cez -cez -cfQ cgY ciu bVu @@ -93603,7 +93819,7 @@ aqi arf ask atm -fPL +rgL arf awq axO @@ -93662,24 +93878,24 @@ bNY bPa bMQ bRC -bMQ -bTP -bUN -bVW -bMK -bXS -bXS -bXS -bMK -cbB -alk -alX -cbA -bQt +rdl +daq +bUO +bOd +bOd +bOd +bYQ +bOd +bOd +bOd +bOd +bOd +rmQ +lzt apa cgX apF -apI +aaf bOh bOh bOh @@ -93919,21 +94135,21 @@ bOb bPd cBF bRD -bSK -bTR -bUP -bVZ -bWT -bWa -bYS -bZH -caF -bQt -cBJ -cdy +rdl +daq +bUO bOd +bOd +bOd +bYQ +bOd +bOd +bOd +cBJ +bOd +eus bRy -cfR +bTP cha civ cph @@ -94172,27 +94388,27 @@ bvd bKH bLK bMS -bOa +bTO bPc bQs -bMZ -bSJ -bTQ +cez +ceA +daq bUO -bVY +bOd +bOd +bOd +lhQ bOd bOd bOd bOd bOd -cbD bTO -cdx -bOd -bOd -cfP +cez +bUL cgZ -bMQ +rdl aaf bQA ckX @@ -94429,27 +94645,27 @@ bvd bKJ bLR bMV -bOd -bMZ +bTP +eiZ bQv bRF bSM -bTS -bUQ -agd -bUO bVZ -bVZ -bZI -caH -cbF -ccz -cdA -cez +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bTP +bTO bOe -cfQ chb -ciu +iIS bVu ckb ckZ @@ -94628,15 +94844,15 @@ aoa ajo apt aql -pRW -pRW -pRW -pRW +wyE +wyE +wyE +wyE avw awy -nfw -nfw -vaW +lgX +lgX +qvf wqF aAh aAh @@ -94687,26 +94903,26 @@ bKH bLK bMU bOc -bPe -bQu -bRE -bSJ -bPe -bOd +udT +omk +nTU +pUP +jBQ +agd cCB cCC -bXT -bXT -bXT -caG -cbE -bTU -cdz -cez -bUL -cfP bOd -bMQ +bOd +bOd +bOd +bOd +bOd +bOd +ccz +uQR +cfP +cfQ +ceA aaf bOh bOh @@ -94943,25 +95159,25 @@ bvd bKH bLK bMX -bOd +omk bPg -bQx -bRH -bSM -bTU -bUS -bUS +hQY +bRE +pCj +bPe +wvg +bOd cCD -bXU -bUS -bUS -bUS -bXU -bRF -bMW -cez -cez -cfQ +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bTU +fPi +fHi chd bQy cpP @@ -95200,25 +95416,25 @@ bvd bKH bLK bMW -bOe +oVN bPf -bQw -bRG -bSN -bTT -bUR -bWb +bQx +bRH +vPQ +moS +kGv +bUS cCE bTT +bUS +bUS +bUS +bXU +bUS +bUS +gMD +eyS bUR -bZJ -bUR -bTT -bUR -cdB -bUR -bUR -cfT chc bMQ aaf @@ -95457,11 +95673,11 @@ bvd bKH bLK bMZ -bOg +cdx bPi bQz bRJ -bSM +hxn bTV bUT bWc @@ -95469,12 +95685,12 @@ bWU bXV bYT bZK -bOd +bUR cbG ccA cdC ceB -cez +dAe cez chf cix @@ -95713,25 +95929,25 @@ bvj bvd bKH bLK -bMY +bLK bOf -bPh +ivJ bQy bRI bSP -bPh -bQy +ivJ +jzM bRI cCF -bPh +ivJ bQy bRI bQy -bPh +ivJ bQy bRI -ceA -bLK +bSP +bVO bLK che bLK @@ -95936,7 +96152,7 @@ aOJ oIJ unA aKR -aKR +akH aUg bFC hSZ @@ -95971,13 +96187,13 @@ bvd bKH bzs bRK -aaf -bRK -aaf -bVv -aaf -bRK -aaf +qJV +nJQ +qJV +vOV +qJV +nYT +eUW bVv cCG cCH @@ -96227,7 +96443,7 @@ bFF bvd bKH bzs -bRK +fjU bOh bPj bQA @@ -96257,8 +96473,8 @@ aaf aoV aoV aoV -aoV -aoV +aaa +aaa cCQ aoV aaa @@ -96484,7 +96700,7 @@ bFK bvd bKH bzs -bRK +fjU bOh bPl bQB @@ -96741,10 +96957,10 @@ bvj bJC bKH bzs -bRK +fjU bOh bPk -bPm +sYm bPm bOh bTW @@ -96760,7 +96976,7 @@ ccB cbH bOh aaf -aoV +aaa aoV aaf aoV @@ -96773,7 +96989,7 @@ aoV aoV aoV aoV -aaf +gXs aoV aaa aaa @@ -96998,7 +97214,7 @@ bIj bJC bKH bzs -bRK +fjU bOh bPm bQC @@ -97030,7 +97246,7 @@ aoV aoV aoV aae -aaf +gXs aoV aaa aaa @@ -97255,7 +97471,7 @@ bIi bJC bKH bzs -bRK +fjU bOh bOh bOh @@ -97273,21 +97489,21 @@ bOh bOh bOh bOh -aaf -aaf -ciC -bVu -bVu -bVu -bVu -bVu +xcl caJ +ciC +gXs +gXs +tSo +kcx +kcx +kcx +ciC aoV aoV aoV aoV -aoV -aaf +gXs aoV aaa aaa @@ -97513,52 +97729,52 @@ bJC bKH bzs bUr -bVu -bVu -bVu -bVu -bVu -bVu -bVu -bVu -bVu -bVu -bVu -bVu +qJV +qJV +qJV +qJV +qJV +qJV +qJV +qJV +qJV +qJV +qJV +qJV caJ -aaf -aaf -aaf -aaf -aaf +caJ +caJ +caJ +caJ +eUW cfj cfU -cfj -cfj +maT +maT ckf -cfj -cfj -bUr -bVu -bVu -bVu -bVu -bVu -bVu -bVu -bVu -bVu -bVu -bVu +maT +lKj +nzR +nFj +mfI +mfI +mfI +mfI +mfI +mfI +mfI +mfI +mfI +mfI csM -bVu -bVu +mfI +mfI ctd -bVu -bVu -bVu -bVu -caJ +mfI +mfI +mfI +mfI +vOC ctZ ctZ cuo @@ -97782,19 +97998,20 @@ bPn bzs bzs bPn -caI +bPn bPn bzs bzs bzs cfj -cfj +chk cjp chh ciy cke -clg -cfj +cjr +pzG +uHc aoV aoV aoV @@ -97804,7 +98021,6 @@ aoV aoV aoV aaa -aaa aaf aaa csn @@ -97815,7 +98031,7 @@ aag aaa aaa aaa -ctN +nFj ctY cuh cun @@ -97966,7 +98182,7 @@ con uSC con con -eVJ +akE wHk ewu pQp @@ -98044,14 +98260,15 @@ bAw bzs bAw caK -cfj +uHc ciB ckh chj ciA +dQD cjr clh -cfj +uHc aoV aoV aoV @@ -98061,7 +98278,6 @@ aoV aoV aoV aaa -aaa aaf aaa csn @@ -98297,18 +98513,19 @@ bzs bzs bZM cbJ -ceC -ceC +bWe +bWe cfW cfX chk chl -ciz +xud chi ciz -cjq +ciz ckg cmb +yan cpO cpQ cpQ @@ -98318,7 +98535,6 @@ czJ aaf aoV aaa -aaa aaf aaa csn @@ -98558,14 +98774,15 @@ bzs ccF cdG ceE -cfl +grr cfZ -cki +cjr cld -eHI -cjt +cjr +cjr +cjr csq -xEu +xJC wHz cmd cmd @@ -98575,7 +98792,6 @@ aag aag aag aaa -aaa aaf csD csO @@ -98817,12 +99033,13 @@ cdF ceD cfk cfY -rfW +cjr ckj -cjs +cle +cle cle cli -uPT +cme cmY cme cop @@ -98832,7 +99049,6 @@ cqs aaa aag aaa -aaa aaf csD csN @@ -99072,14 +99288,15 @@ cbL cbL cdI ceG -cfj +jGI cgb chn ciE cjv clj -ckk +clj cmf +nmZ cna cnC cor @@ -99089,7 +99306,6 @@ cqt aaa aag aaa -aaa aaf csD csU @@ -99329,12 +99545,13 @@ cbK ccG cdH ceF -cfj +jGI cga chm ciD cju clf +cle csr cme cmZ @@ -99346,7 +99563,6 @@ cqs aaa aag aaa -aaa aaf csD ctb @@ -99586,13 +99802,14 @@ bzs bzs bzs bzs -cfj -cfj -cfj -cfj +fiy +cfl +cfl +cfl cjx cfl cfl +cfl dqu tXL cmd @@ -99603,7 +99820,6 @@ aag aag aag aaa -aaa aaf csD csD @@ -103171,15 +103387,15 @@ bIP bPA bJN bRU -bEm +aml bEm bJN bRU -bXe +aop bEm bJN bRU -bEm +aml bEm bDb cgi @@ -103428,15 +103644,15 @@ bOx bPz bJN bRU -bEm +amo bEm bJN bRU -bEm +amo bEm bJN bRU -bEm +amo cBz bDb cgi @@ -103674,26 +103890,26 @@ bAB bBV bDb bEn -bEm -bEm -bEm -bJL -bLa -bMi -bNo -bPy -bPA +akK +akP +akP +akV +akW +alf +alm +aln +alr bJN bRW -bTb +amG bUe bJN bWl -bXf +aoq bYg bJN bZV -caV +apw cbS bDb cgl @@ -103939,18 +104155,18 @@ bKZ bMi bIu bIO -bPB +alx bLe bRV -bTa +amH bUd bVi bRV -bTa +amH bYf bVi bRV -bTa +amH cbR bDb cgk @@ -104196,18 +104412,18 @@ bLc bMi bNo bOx -bPD +alV bQM bMi -bMi +bOx bRZ bVj bMi -bMi +bOx bRZ bZa bMi -bMi +bOx bRZ cTY cTZ @@ -104453,24 +104669,24 @@ bLb bMk bNn bIQ -bPC -bQL -cBG -bTc -bUf -bTc -bRX -bTc -bUf -bTc -bRX -bTc -cbT -ccP -ccP -cht -ckn -csk +alW +amh +ami +amP +anp +anx +anN +amP +anp +anx +anN +amP +aqG +aqS +aqS +ars +asr +asC czQ czU czZ @@ -104713,15 +104929,15 @@ bOx bMi bQN bRZ -bMi +bOx bMi bVk bRZ -bMi +bOx bMi bZb bRZ -bMi +bOx bMi cfy cgn @@ -104970,15 +105186,15 @@ bIR bPE bLe bRY -bTd +amQ bUg bVi bWm -bTd +amQ bUg bVi bZW -bTd +amQ bUg bDb bDb @@ -105227,15 +105443,15 @@ bOx bPH bJN bSa -bTe +amT bUh bJN bWn -bXg +aos bYh bJN bZX -caW +aqB cbU bDb aaf @@ -105484,15 +105700,15 @@ bOz bPG bJN bEm -bEm +amo bRU bJN bEm -bEm +amo bRU bJN bEm -bEm +amo bRU bDb aaf @@ -105741,15 +105957,15 @@ bOx bPJ bJN bEm -bEm +ano bRU bJN bEm -bXe +apb bRU bJN bEm -bEm +ano bRU bDb aaf diff --git a/_maps/map_files/CogStation/CogStation.dmm b/_maps/map_files/CogStation/CogStation.dmm index 28eded5c85..ebb3493a35 100644 --- a/_maps/map_files/CogStation/CogStation.dmm +++ b/_maps/map_files/CogStation/CogStation.dmm @@ -705,6 +705,7 @@ /obj/item/circuitboard/machine/vending/donksofttoyvendor, /obj/item/storage/pill_bottle/happy, /obj/effect/decal/cleanable/dirt, +/obj/item/paper/fluff/cogstation/cluwne, /turf/open/floor/plating, /area/crew_quarters/theatre/clown) "abJ" = ( @@ -800,24 +801,11 @@ /turf/closed/wall/r_wall, /area/router/aux) "abX" = ( -/obj/machinery/computer/secure_data, -/obj/effect/turf_decal/tile/red{ - dir = 4 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Security Checkpoint"; - pixel_x = 22 - }, -/obj/machinery/newscaster/security_unit{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/security/checkpoint) "abY" = ( /obj/structure/grille, @@ -1523,9 +1511,9 @@ dir = 1 }, /obj/structure/closet, -/obj/item/clothing/under/staffassistant, -/obj/item/clothing/under/staffassistant, -/obj/item/clothing/under/staffassistant, +/obj/item/clothing/under/misc/staffassistant, +/obj/item/clothing/under/misc/staffassistant, +/obj/item/clothing/under/misc/staffassistant, /turf/open/floor/plasteel, /area/crew_quarters/lounge) "adK" = ( @@ -3511,9 +3499,9 @@ c_tag = "Clown's Office"; pixel_x = 22 }, -/obj/item/clothing/under/rank/yellowclown, -/obj/item/clothing/under/rank/blueclown, -/obj/item/clothing/under/rank/greenclown, +/obj/item/clothing/under/rank/civilian/clown/yellow, +/obj/item/clothing/under/rank/civilian/clown/blue, +/obj/item/clothing/under/rank/civilian/clown/green, /obj/item/toy/crayon/spraycan/lubecan, /obj/item/megaphone/clown, /turf/open/floor/plating, @@ -4141,20 +4129,12 @@ /turf/open/floor/plasteel, /area/construction/secondary) "akd" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-4" }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, +/obj/structure/cable, +/turf/open/floor/plating, /area/security/checkpoint) "ake" = ( /obj/machinery/firealarm{ @@ -4809,6 +4789,7 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/item/paper/guides/cogstation/letter_sec, /turf/open/floor/plasteel, /area/security/warden) "alG" = ( @@ -6070,8 +6051,27 @@ /turf/open/floor/plasteel/dark/corner, /area/hallway/secondary/entry) "aoy" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, +/obj/machinery/computer/secure_data, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Security Checkpoint"; + pixel_x = 22 + }, +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, /area/security/checkpoint) "aoz" = ( /obj/structure/closet, @@ -7342,7 +7342,7 @@ pixel_y = 26 }, /obj/effect/landmark/start/bartender, -/obj/item/clothing/under/janimaid, +/obj/item/clothing/under/costume/maid, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/grimy, /area/crew_quarters/bar) @@ -8418,6 +8418,7 @@ /obj/item/storage/bag/tray, /obj/item/clothing/gloves/color/white, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/item/paper/guides/cogstation/cooks, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "atP" = ( @@ -9400,12 +9401,19 @@ /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/barbershop) "avY" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "AIShutter"; - name = "AI Core Shutters" +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 }, -/turf/open/floor/plating, +/obj/machinery/turretid{ + name = "AI Chamber turret control"; + pixel_x = 5; + pixel_y = -24 + }, +/obj/machinery/door/window/westleft{ + name = "AI Core Access"; + req_access_txt = "65" + }, +/turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) "avZ" = ( /obj/effect/landmark/start/cook, @@ -9528,13 +9536,15 @@ /turf/closed/wall/r_wall, /area/maintenance/solars/port) "awn" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "AIShutter"; - name = "AI Core Shutters" +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" }, /obj/structure/disposalpipe/segment, -/turf/open/floor/plating, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) "awo" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -10387,11 +10397,15 @@ /turf/open/floor/plasteel, /area/hydroponics/lobby) "axZ" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#e8eaff" +/obj/machinery/requests_console{ + department = "AI"; + departmentType = 5; + pixel_y = 28 + }, +/obj/machinery/door/window/eastright{ + name = "AI Core Access"; + req_access_txt = "65" }, -/obj/structure/disposalpipe/segment, /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) "aya" = ( @@ -11286,9 +11300,9 @@ "azR" = ( /obj/structure/closet/secure_closet/bar, /obj/structure/disposalpipe/segment, -/obj/item/clothing/under/janimaid, +/obj/item/clothing/under/costume/maid, /obj/item/stack/spacecash/c10, -/obj/item/clothing/under/waiter, +/obj/item/clothing/under/suit/waiter, /turf/open/floor/plasteel/grimy, /area/crew_quarters/bar) "azS" = ( @@ -11768,27 +11782,31 @@ /turf/closed/wall, /area/crew_quarters/toilet) "aAP" = ( -/obj/effect/turf_decal/tile/red, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/brig) +"aAQ" = ( /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "2-8" }, /turf/open/floor/plasteel, -/area/security/brig) -"aAQ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Security Office"; - req_access_txt = "63" - }, -/obj/effect/turf_decal/delivery, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) +/area/security/checkpoint) "aAR" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, @@ -12361,11 +12379,20 @@ /turf/open/floor/plating, /area/security/main) "aCb" = ( -/obj/effect/spawner/structure/window/reinforced, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, /area/security/brig) "aCc" = ( /obj/structure/closet/secure_closet/security/sec, @@ -12680,6 +12707,7 @@ /obj/item/stack/packageWrap, /obj/item/hand_labeler, /obj/item/book/manual/wiki/security_space_law, +/obj/item/paper/guides/cogstation/letter_sec, /turf/open/floor/carpet/red, /area/security/brig) "aCM" = ( @@ -12867,9 +12895,11 @@ /area/crew_quarters/barbershop) "aDb" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plating, -/area/security/main) +/area/security/checkpoint) "aDc" = ( /obj/machinery/firealarm{ dir = 4; @@ -12972,16 +13002,19 @@ /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet) "aDm" = ( -/obj/structure/table, -/obj/machinery/recharger, +/obj/machinery/computer/security{ + dir = 1 + }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/security/checkpoint) "aDn" = ( @@ -13176,19 +13209,23 @@ /area/maintenance/port/fore) "aDF" = ( /obj/structure/table, -/obj/machinery/firealarm{ - pixel_y = 26 - }, +/obj/machinery/recharger, +/obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ - dir = 4 + dir = 8 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/paper_bin, -/obj/item/pen, /turf/open/floor/plasteel, -/area/security/main) +/area/security/checkpoint) "aDG" = ( /obj/machinery/holopad, /turf/open/floor/plasteel, @@ -13340,18 +13377,26 @@ /turf/open/floor/plating/airless, /area/space/nearstation) "aEc" = ( -/obj/structure/closet{ - name = "Evidence Closet 5" +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" }, -/obj/machinery/light_switch{ - pixel_y = -24 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 8 +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" }, /turf/open/floor/plasteel, /area/security/brig) @@ -13839,7 +13884,7 @@ "aFc" = ( /obj/structure/table, /obj/item/clothing/suit/toggle/owlwings, -/obj/item/clothing/under/owl, +/obj/item/clothing/under/costume/owl, /obj/item/clothing/mask/gas/owl_mask, /turf/open/floor/plating/asteroid, /area/hydroponics/garden{ @@ -13904,12 +13949,11 @@ /turf/closed/wall/r_wall, /area/crew_quarters/heads/hos) "aFk" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/main) +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/checkpoint) "aFl" = ( /obj/structure/chair/sofa/right, /obj/effect/turf_decal/tile/green{ @@ -14215,10 +14259,18 @@ /turf/open/floor/plasteel, /area/storage/emergency/generic) "aFP" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plating, -/area/security/checkpoint) +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/main) "aFQ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -14241,11 +14293,17 @@ /turf/open/floor/plasteel, /area/storage/emergency/generic) "aFT" = ( -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1 +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 }, -/turf/closed/wall, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, /area/security/brig) "aFU" = ( /obj/machinery/atmospherics/components/binary/circulator/cold{ @@ -15134,17 +15192,14 @@ /turf/open/floor/plasteel/dark, /area/bridge) "aHE" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/drinkingglass{ - pixel_x = -6; - pixel_y = 2 +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/item/reagent_containers/food/drinks/drinkingglass{ - pixel_x = 6; - pixel_y = 3 +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/bridge) +/turf/open/floor/plating/airless, +/area/space/nearstation) "aHF" = ( /turf/open/floor/plasteel/dark, /area/bridge) @@ -15191,7 +15246,7 @@ }, /area/chapel/main) "aHK" = ( -/obj/structure/piano, +/obj/structure/musician/piano, /turf/open/floor/carpet{ icon_state = "carpetsymbol" }, @@ -15630,34 +15685,71 @@ /turf/open/floor/plasteel, /area/hallway/secondary/civilian) "aIC" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "0-8" }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/main) "aID" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/main) "aIE" = ( /turf/open/floor/carpet/royalblue, /area/bridge) "aIF" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/recharger, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/main) "aIG" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment{ +/obj/structure/table, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/turf/open/floor/plating, -/area/security/detectives_office) +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/main) "aIH" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 6 @@ -15752,14 +15844,42 @@ /turf/open/floor/plasteel, /area/hydroponics) "aIS" = ( +/obj/structure/disposalpipe/segment, /obj/effect/landmark/start/ai, +/obj/item/radio/intercom{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = 27; + pixel_y = -7 + }, +/obj/item/radio/intercom{ + freerange = 1; + name = "Common Channel"; + pixel_x = 27; + pixel_y = 5 + }, /obj/machinery/button/door{ id = "AIShutter"; layer = 3.6; name = "AI Core Shutter Control"; - pixel_x = 24 + pixel_x = 24; + pixel_y = -24 + }, +/obj/item/radio/intercom{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = -24; + pixel_y = -8 + }, +/obj/machinery/button/door{ + id = "AIChamberShutter"; + layer = 3.6; + name = "AI Chamber Shutter Control"; + pixel_x = -24; + pixel_y = -24 }, -/obj/structure/disposalpipe/segment, /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) "aIT" = ( @@ -15918,14 +16038,23 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "aJj" = ( -/obj/machinery/light{ - dir = 1 +/obj/structure/chair{ + dir = 4 }, -/obj/machinery/light_switch{ - pixel_y = 24 +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-4" }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) +/obj/machinery/power/apc{ + areastring = "/area/maintenance/aft"; + dir = 8; + name = "Chapel APC"; + pixel_x = -26 + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) "aJk" = ( /obj/structure/table/wood, /obj/item/candle, @@ -16429,11 +16558,21 @@ /turf/open/floor/carpet/red, /area/security/brig) "aKi" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/main) "aKj" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 6 @@ -17300,25 +17439,12 @@ /turf/open/floor/plasteel, /area/security/brig) "aLX" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/noticeboard{ - pixel_y = 28 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/recharger, +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "2-8" + icon_state = "0-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, +/obj/structure/cable, +/turf/open/floor/plating, /area/security/main) "aLY" = ( /obj/effect/turf_decal/tile/red, @@ -17718,13 +17844,12 @@ /turf/open/floor/plasteel, /area/hallway/secondary/civilian) "aMN" = ( -/obj/effect/turf_decal/tile/red{ +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel, /area/security/main) "aMO" = ( @@ -17909,9 +18034,7 @@ /turf/open/floor/plasteel, /area/bridge) "aNh" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) "aNi" = ( @@ -17990,37 +18113,13 @@ /turf/open/floor/plasteel, /area/crew_quarters/bar) "aNo" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AIShutter"; + name = "AI Core Shutters" }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/item/aiModule/supplied/oxygen{ - pixel_x = 2; - pixel_y = 10 - }, -/obj/item/aiModule/supplied/quarantine{ - pixel_x = 1; - pixel_y = 8 - }, -/obj/item/aiModule/zeroth/oneHuman{ - pixel_y = 4 - }, -/obj/effect/spawner/lootdrop/aimodule_harmful{ - pixel_x = -1; - pixel_y = 2 - }, -/obj/item/aiModule/supplied/protectStation{ - pixel_x = -2 - }, -/obj/structure/window/reinforced/spawner/north, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/ai_monitored/turret_protected/ai) "aNp" = ( /obj/effect/turf_decal/delivery, @@ -18038,17 +18137,11 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "aNr" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/structure/window/reinforced/spawner/north, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) "aNs" = ( /obj/effect/turf_decal/tile/yellow{ @@ -18119,21 +18212,10 @@ }, /area/chapel/main) "aNz" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 5 }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/machinery/door/window/northleft{ - name = "AI Chamber"; - req_one_access_txt = "65" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, +/turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) "aNA" = ( /obj/machinery/door/firedoor, @@ -18407,6 +18489,9 @@ "aOe" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/ai) "aOf" = ( @@ -18682,16 +18767,15 @@ /turf/open/floor/plating, /area/maintenance/port/fore) "aOI" = ( -/obj/structure/chair/stool, -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 +/obj/machinery/flasher{ + id = "ID"; + pixel_x = 8; + pixel_y = 24 }, -/obj/structure/window/reinforced/spawner/north, -/turf/open/floor/plasteel, +/turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) "aOJ" = ( /turf/closed/wall/r_wall, @@ -18784,7 +18868,7 @@ /obj/effect/turf_decal/bot, /obj/item/clothing/accessory/armband/hydro, /obj/item/encryptionkey/headset_service, -/obj/item/clothing/under/rank/vice, +/obj/item/clothing/under/misc/vice_officer, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ dir = 4 }, @@ -18859,21 +18943,13 @@ name = "Engine Room" }) "aPf" = ( -/obj/machinery/computer/upload/ai{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/structure/window/reinforced/spawner/north, -/turf/open/floor/plasteel, +/turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) "aPg" = ( /obj/structure/grille, @@ -18976,15 +19052,15 @@ }, /area/hallway/primary/central) "aPs" = ( -/obj/structure/closet/secure_closet/hop, -/obj/machinery/light{ - dir = 1; - light_color = "#e8eaff" +/obj/effect/turf_decal/tile/red{ + dir = 4 }, -/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit, -/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit/skirt, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hop) +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/main) "aPt" = ( /obj/structure/table/wood, /obj/machinery/recharger, @@ -19101,6 +19177,9 @@ pixel_y = 6 }, /obj/item/clothing/glasses/meson, +/obj/machinery/status_display{ + pixel_x = -32 + }, /turf/open/floor/plasteel, /area/ai_monitored/turret_protected/ai) "aPF" = ( @@ -19245,30 +19324,40 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/fitness/cogpool) "aPT" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-02" +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/bridge) +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) "aPU" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/machinery/camera{ - c_tag = "Bridge - Port Quarter"; - dir = 1 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/machinery/keycard_auth{ - pixel_y = -24 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plating, /area/bridge) "aPV" = ( -/obj/machinery/photocopier, -/turf/open/floor/plasteel/dark, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, /area/bridge) "aPW" = ( -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/plasteel/dark, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, /area/bridge) "aPX" = ( /obj/structure/table, @@ -20551,9 +20640,20 @@ /turf/open/floor/plasteel, /area/hallway/secondary/civilian) "aSJ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/heads/captain) +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/main) "aSK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -20819,11 +20919,16 @@ /turf/open/floor/plating, /area/maintenance/department/eva) "aTo" = ( -/obj/effect/landmark/start/captain, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "0-4" }, -/area/crew_quarters/heads/captain) +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/detectives_office) "aTp" = ( /obj/structure/chair{ dir = 4 @@ -20856,17 +20961,24 @@ }, /area/chapel/main) "aTr" = ( -/obj/structure/table/wood, -/obj/machinery/recharger, -/turf/open/floor/carpet/blue, -/area/crew_quarters/heads/captain) +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/detectives_office) "aTs" = ( /turf/closed/wall, /area/maintenance/department/eva) "aTt" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/heads/hop) +/obj/structure/closet/secure_closet/detective, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) "aTu" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command/glass{ @@ -20962,14 +21074,16 @@ /turf/closed/wall, /area/router/public) "aTH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "0-8" }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 +/obj/structure/cable{ + icon_state = "0-2" }, -/turf/open/floor/plating/airless, -/area/space/nearstation) +/turf/open/floor/plating, +/area/bridge) "aTI" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line, @@ -20985,16 +21099,12 @@ /turf/open/floor/plasteel, /area/router/public) "aTJ" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/pen/fourcolor, -/obj/item/pen/fountain{ - pixel_x = 2; - pixel_y = 6 +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/item/stamp/hop, -/turf/open/floor/carpet/green, -/area/crew_quarters/heads/hop) +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) "aTK" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ @@ -21551,9 +21661,13 @@ /turf/open/floor/plasteel, /area/science/mixing) "aVa" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aVb" = ( /obj/structure/pool/Rboard, @@ -22108,9 +22222,12 @@ /turf/open/floor/plasteel, /area/gateway) "aWn" = ( -/obj/structure/closet/secure_closet/detective, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aWo" = ( @@ -22197,27 +22314,40 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "aWw" = ( -/obj/structure/table/wood, -/obj/item/pinpointer/nuke, -/obj/item/card/id/captains_spare, -/obj/item/hand_tele, -/obj/item/disk/nuclear, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/captain) -"aWx" = ( -/obj/structure/table/wood, -/obj/machinery/light, -/obj/item/storage/photo_album/Captain, -/obj/item/camera{ - pixel_y = -6 +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/stamp/captain, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/captain) +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aWx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/detectives_office) "aWy" = ( -/obj/machinery/suit_storage_unit/captain, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/captain) +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) "aWz" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ @@ -23026,9 +23156,12 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/nuke_storage) "aYm" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/ai_monitored/storage/eva) +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) "aYn" = ( /obj/structure/table, /obj/effect/turf_decal/stripes/line{ @@ -23188,30 +23321,40 @@ /turf/open/floor/plating, /area/maintenance/starboard/central) "aYD" = ( -/obj/structure/table, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/plus, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aYE" = ( -/obj/item/beacon, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aYF" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 }, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "1-2" }, -/turf/open/floor/plasteel/checker, -/area/ai_monitored/storage/eva) +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aYE" = ( +/obj/structure/closet/crate/trashcart, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/disposalpipe/junction, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aYF" = ( +/obj/structure/table/wood, +/obj/item/storage/box/evidence, +/obj/item/hand_labeler, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) "aYG" = ( /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ @@ -23229,14 +23372,17 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "aYI" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/turf/open/floor/plasteel/dark/side{ - dir = 4 +/obj/machinery/photocopier, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 }, -/area/hallway/primary/central) +/obj/item/paper/guides/cogstation/letter_sec, +/turf/open/floor/plasteel, +/area/security/main) "aYJ" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, @@ -23584,7 +23730,7 @@ /obj/effect/turf_decal/bot_white/left, /obj/item/stack/sheet/mineral/diamond, /obj/item/gun/ballistic/revolver/mateba, -/obj/item/clothing/under/soviet, +/obj/item/clothing/under/costume/soviet, /obj/item/clothing/suit/armor/vest/russian_coat, /obj/item/clothing/head/helmet/rus_helmet, /obj/machinery/light, @@ -23857,6 +24003,9 @@ /obj/item/aiModule/core/full/custom{ pixel_x = -4 }, +/obj/machinery/status_display{ + pixel_x = 32 + }, /turf/open/floor/plasteel, /area/ai_monitored/turret_protected/ai) "aZQ" = ( @@ -23884,10 +24033,18 @@ /turf/open/floor/plasteel/dark/corner, /area/ai_monitored/storage/eva) "aZT" = ( -/obj/structure/table/wood, -/obj/item/stack/packageWrap, -/turf/open/floor/carpet/royalblue, -/area/bridge) +/obj/structure/closet/secure_closet/hos, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/item/storage/box/deputy, +/obj/item/paper/guides/cogstation/letter_hos, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) "aZU" = ( /obj/structure/chair, /obj/machinery/light{ @@ -24280,8 +24437,8 @@ "baP" = ( /obj/structure/closet/secure_closet/captains, /obj/item/reagent_containers/food/drinks/flask/gold, -/obj/item/clothing/under/gimmick/rank/captain/suit, -/obj/item/clothing/under/gimmick/rank/captain/suit/skirt, +/obj/item/clothing/under/rank/captain/suit, +/obj/item/clothing/under/rank/captain/suit/skirt, /obj/machinery/airalarm{ pixel_y = 24 }, @@ -24349,11 +24506,39 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "baW" = ( -/obj/structure/grille, -/obj/structure/cable{ - icon_state = "0-2" +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/aiModule/core/full/asimov{ + pixel_x = 2; + pixel_y = 10 + }, +/obj/effect/spawner/lootdrop/aimodule_neutral{ + pixel_x = 1; + pixel_y = 8 + }, +/obj/effect/spawner/lootdrop/aimodule_harmless{ + pixel_y = 6 + }, +/obj/item/aiModule/core/freeformcore{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/aiModule/supplied/freeform{ + pixel_x = -2 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, /area/ai_monitored/turret_protected/ai) "baX" = ( /obj/effect/turf_decal/tile/yellow, @@ -25772,36 +25957,12 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "beu" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/item/aiModule/core/full/asimov{ - pixel_x = 2; - pixel_y = 10 - }, -/obj/effect/spawner/lootdrop/aimodule_neutral{ - pixel_x = 1; - pixel_y = 8 - }, -/obj/effect/spawner/lootdrop/aimodule_harmless{ - pixel_y = 6 - }, -/obj/item/aiModule/core/freeformcore{ - pixel_x = -1; - pixel_y = 2 - }, -/obj/item/aiModule/supplied/freeform{ - pixel_x = -2 - }, -/turf/open/floor/plasteel, +/obj/structure/cable, +/turf/open/floor/plating, /area/ai_monitored/turret_protected/ai) "bev" = ( /obj/structure/cable{ @@ -25943,7 +26104,11 @@ /area/security/courtroom/jury) "beQ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/grimy, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall, /area/security/detectives_office) "beR" = ( /obj/structure/chair{ @@ -26304,23 +26469,19 @@ /turf/open/floor/plating, /area/quartermaster/warehouse) "bfH" = ( -/obj/structure/chair{ - dir = 4 +/obj/machinery/light{ + dir = 1 }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/light_switch{ + pixel_y = 24 }, -/obj/machinery/power/apc{ - areastring = "/area/maintenance/aft"; - dir = 8; - name = "Chapel APC"; - pixel_x = -24 +/obj/machinery/button/crematorium{ + id = "foo"; + pixel_x = 8; + pixel_y = 24 }, -/turf/open/floor/plasteel{ - icon_state = "chapel" - }, -/area/chapel/main) +/turf/open/floor/plasteel/dark, +/area/chapel/office) "bfI" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -26349,6 +26510,10 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, +/obj/item/paper/fluff/cogstation/letter_chap{ + pixel_x = 10; + pixel_y = 2 + }, /turf/open/floor/carpet{ icon_state = "carpetsymbol" }, @@ -26549,18 +26714,13 @@ /turf/open/floor/plating, /area/quartermaster/warehouse) "bgh" = ( -/obj/machinery/conveyor_switch{ - id = "EngiCargoConveyer" +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; + dir = 6 }, -/obj/structure/cable, -/obj/machinery/power/apc{ - areastring = "/area/quartermaster/sorting"; - dir = 8; - name = "Delivery Office APC"; - pixel_x = -24 - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) +/turf/open/space/basic, +/area/space/nearstation) "bgi" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 @@ -27190,18 +27350,15 @@ /turf/open/floor/plasteel, /area/quartermaster/sorting) "bhB" = ( -/obj/structure/closet/secure_closet/quartermaster, -/obj/effect/turf_decal/tile/brown{ - dir = 1 +/obj/structure/table/wood, +/obj/item/stack/packageWrap, +/obj/item/paper/fluff/cogstation/bsrb, +/obj/item/paper/fluff/cogstation/survey{ + pixel_x = -4; + pixel_y = 2 }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/obj/item/clothing/suit/space/eva, -/obj/item/clothing/head/helmet/space/eva, -/turf/open/floor/plasteel, -/area/quartermaster/qm) +/turf/open/floor/carpet/royalblue, +/area/bridge) "bhC" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/orange/hidden, @@ -27517,16 +27674,12 @@ /turf/open/floor/plating, /area/quartermaster/storage) "bik" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "0-2" }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plating, /area/bridge) "bil" = ( /obj/effect/turf_decal/stripes/line{ @@ -27573,14 +27726,16 @@ /turf/open/floor/plasteel, /area/quartermaster/qm) "biq" = ( -/obj/machinery/computer/cargo/request{ - dir = 1 +/obj/structure/closet/secure_closet/hop, +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" }, -/obj/machinery/keycard_auth{ - pixel_x = 24; - pixel_y = -8 +/obj/item/clothing/under/rank/civilian/head_of_personnel/suit, +/obj/item/clothing/under/rank/civilian/head_of_personnel/suit/skirt{ + name = "head of personnel's suitskirt" }, -/turf/open/floor/carpet/green, +/turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hop) "bir" = ( /obj/effect/turf_decal/tile/brown{ @@ -28094,17 +28249,25 @@ /turf/open/floor/plating, /area/security/courtroom/jury) "bjw" = ( -/obj/machinery/computer/card{ - dir = 8 +/obj/item/storage/secure/safe{ + pixel_x = 4; + pixel_y = 32 }, -/obj/machinery/keycard_auth{ - pixel_x = 8; - pixel_y = -24 +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" }, -/area/crew_quarters/heads/captain) +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/central) "bjx" = ( /obj/structure/table/optable, /obj/effect/turf_decal/bot, @@ -28136,21 +28299,13 @@ /turf/open/floor/plating, /area/maintenance/department/eva) "bjB" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/item/folder/red, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/brig) "bjC" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -28193,9 +28348,18 @@ }, /area/engine/atmos) "bjF" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/checkpoint/supply) +/obj/machinery/power/apc{ + areastring = "/area/maintenance/aft"; + dir = 8; + name = "Head of Personnel APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable, +/turf/open/floor/carpet/green, +/area/crew_quarters/heads/hop) "bjG" = ( /obj/structure/rack, /turf/open/floor/plasteel, @@ -28350,21 +28514,24 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bjV" = ( +/obj/structure/closet{ + name = "Evidence Closet 5" + }, +/obj/machinery/light_switch{ + pixel_y = -24 + }, /obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/chair{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/plasteel, -/area/security/checkpoint/supply) +/area/security/brig) "bjW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28642,12 +28809,12 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "bkC" = ( -/obj/machinery/modular_computer/console/preset/research{ - dir = 8 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/item/reagent_containers/food/drinks/coffee, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hor) +/turf/open/floor/plating, +/area/crew_quarters/heads/captain) "bkD" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -29496,13 +29663,12 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bmj" = ( -/obj/structure/closet/secure_closet/RD, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" +/obj/machinery/vending/wardrobe/cap_wardrobe, +/obj/structure/cable{ + icon_state = "2-8" }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hor) +/turf/open/floor/carpet/blue, +/area/crew_quarters/heads/captain) "bmk" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, @@ -29914,6 +30080,7 @@ /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 }, +/obj/item/paper/guides/cogstation/cdn_chap, /turf/open/floor/plasteel/dark, /area/chapel/office) "bmY" = ( @@ -30540,9 +30707,17 @@ /turf/closed/wall/r_wall, /area/crew_quarters/fitness/cogpool) "boj" = ( -/obj/structure/rack, -/obj/item/caution, -/obj/item/caution, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/quartermaster/warehouse) "bok" = ( @@ -31307,17 +31482,10 @@ name = "Aft Air Hookup" }) "bpW" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/closed/wall, /area/security/brig) "bpX" = ( /obj/machinery/disposal/bin, @@ -32621,12 +32789,9 @@ /turf/open/floor/plating, /area/maintenance/disposal) "bsz" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/visible, -/obj/machinery/atmospherics/pipe/simple/violet/visible{ +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; dir = 4 }, /turf/open/space/basic, @@ -32770,15 +32935,11 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "bsT" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; + dir = 10 }, -/obj/structure/transit_tube/crossing/horizontal, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/visible, /turf/open/space/basic, /area/space/nearstation) "bsU" = ( @@ -33505,19 +33666,25 @@ /turf/open/floor/plating, /area/maintenance/department/chapel) "buM" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/heads/cmo) +/obj/structure/table/wood, +/obj/machinery/recharger, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/heads/captain) "buN" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/closed/wall/rust, /area/chapel/main) "buO" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/closed/wall, -/area/security/detectives_office) +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/captain) "buP" = ( /obj/item/trash/plate, /obj/item/lighter/greyscale, @@ -33535,22 +33702,15 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "buR" = ( -/obj/item/storage/secure/safe{ - pixel_x = 4; - pixel_y = 32 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/decal/cleanable/cobweb{ - icon_state = "cobweb2" +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" }, /obj/structure/cable{ - icon_state = "2-8" + icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plating, -/area/maintenance/starboard/central) +/area/crew_quarters/heads/hop) "buS" = ( /turf/closed/wall/r_wall, /area/crew_quarters/heads/cmo) @@ -34517,7 +34677,7 @@ dir = 8 }, /obj/structure/table, -/obj/item/clothing/under/rank/mailman, +/obj/item/clothing/under/misc/mailman, /obj/item/clothing/head/mailman, /obj/item/wirecutters, /obj/item/stack/packageWrap, @@ -34620,8 +34780,8 @@ /obj/structure/disposalpipe/segment, /obj/item/clothing/gloves/color/purple, /obj/item/clothing/gloves/color/purple, -/obj/item/clothing/under/janimaid, -/obj/item/clothing/under/janimaid, +/obj/item/clothing/under/costume/maid, +/obj/item/clothing/under/costume/maid, /obj/structure/sign/poster/official/bless_this_spess{ pixel_x = -32 }, @@ -35067,13 +35227,19 @@ /turf/open/floor/engine/vacuum, /area/science/mixing) "byd" = ( -/obj/machinery/computer/crew, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen/fourcolor, +/obj/item/pen/fountain{ + pixel_x = 2; + pixel_y = 6 }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) +/obj/item/stamp/hop, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/carpet/green, +/area/crew_quarters/heads/hop) "bye" = ( /obj/structure/safe/floor, /obj/effect/turf_decal/tile/green, @@ -35615,19 +35781,16 @@ /turf/open/floor/plating/airless, /area/quartermaster/miningoffice) "bzw" = ( -/obj/effect/turf_decal/stripes/end{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/machinery/conveyor{ - dir = 4; - id = "MiningConveyer" +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 }, -/obj/machinery/door/poddoor{ - id = "MiningConveyerBlastDoor"; - name = "Asteroid Mining Load Door" - }, -/turf/open/floor/plating/airless, -/area/quartermaster/miningoffice) +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) "bzx" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security{ @@ -35701,45 +35864,10 @@ /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bzH" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/plus, -/obj/item/stock_parts/cell/high/plus{ - pixel_y = 8 - }, -/obj/item/stock_parts/cell/high/plus{ - pixel_y = 8 - }, -/obj/item/assembly/flash{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/flash{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/flash{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/flash{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/flash{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/flash{ - pixel_x = -8; - pixel_y = 4 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/structure/disposalpipe/segment, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/disposal) "bzI" = ( /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ @@ -35995,17 +36123,20 @@ /turf/open/floor/plasteel, /area/router) "bAn" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark/side{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 }, -/area/gateway) +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/carpet/green, +/area/crew_quarters/heads/hop) "bAo" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -36131,12 +36262,13 @@ /area/science/mixing) "bAA" = ( /obj/structure/lattice, -/obj/structure/disposalpipe/segment, -/obj/machinery/camera{ - c_tag = "Supply - Warehouse Exterior"; - dir = 1 +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/space/basic, /area/space/nearstation) "bAB" = ( @@ -36327,16 +36459,22 @@ /turf/closed/wall, /area/hallway/secondary/exit) "bAX" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ +/obj/structure/table/wood, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/obj/machinery/photocopier, -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/plasteel, -/area/security/main) +/obj/item/paper/fluff/cogstation/letter_cap{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/flashlight/lamp, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) "bAY" = ( /obj/machinery/status_display, /turf/closed/wall, @@ -36520,17 +36658,16 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "bBt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-4" }, -/turf/open/floor/carpet/green, -/area/crew_quarters/heads/hop) +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) "bBu" = ( /turf/open/floor/plasteel/showroomfloor, /area/medical/morgue) @@ -36827,11 +36964,14 @@ /turf/open/floor/plasteel, /area/router/eva) "bCd" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 +/obj/effect/landmark/start/captain, +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/white, -/area/gateway) +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) "bCe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -36996,7 +37136,7 @@ }, /obj/effect/turf_decal/tile/yellow, /obj/structure/closet/secure_closet/engineering_personal, -/obj/item/clothing/under/overalls, +/obj/item/clothing/under/misc/overalls, /obj/structure/window/reinforced/spawner/east, /turf/open/floor/plasteel, /area/storage/primary) @@ -37007,9 +37147,11 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bCB" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/grille/broken, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, /turf/open/floor/plating, /area/maintenance/disposal) "bCC" = ( @@ -37038,8 +37180,11 @@ /turf/open/floor/plating, /area/router/eva) "bCF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 }, /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) @@ -37376,11 +37521,8 @@ "bDw" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ - id = "AIShutter"; - name = "AI Core Shutters" - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 10 + id = "AIChamberShutter"; + name = "AI Chamber Shutters" }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/ai) @@ -37580,13 +37722,11 @@ /turf/open/floor/plasteel, /area/medical/chemistry) "bDU" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ - id = "AIShutter"; - name = "AI Core Shutters" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 6 + id = "AIChamberShutter"; + name = "AI Chamber Shutters" }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/ai) @@ -37594,13 +37734,16 @@ /turf/open/floor/plasteel/stairs/left, /area/crew_quarters/bar) "bDW" = ( +/obj/structure/disposalpipe/segment, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "AI Chamber"; + req_access_txt = "65" }, -/turf/open/floor/circuit, +/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "bDX" = ( /turf/open/floor/plasteel/stairs/right, @@ -37797,18 +37940,22 @@ /turf/closed/wall/r_wall, /area/maintenance/solars/starboard/fore) "bEq" = ( -/obj/machinery/computer/security{ - dir = 1 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/plasteel, -/area/security/checkpoint) +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) "bEr" = ( /obj/structure/cable, /obj/machinery/power/apc{ @@ -38011,23 +38158,13 @@ /turf/open/floor/plating, /area/maintenance/fore) "bEL" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Security Office"; - req_access_txt = "63" - }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/disposal) "bEM" = ( /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ @@ -38178,12 +38315,12 @@ /turf/open/floor/plating, /area/router) "bEZ" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ - id = "AIShutter"; - name = "AI Core Shutters" + id = "AIChamberShutter"; + name = "AI Chamber Shutters" }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /turf/open/floor/plating, /area/ai_monitored/turret_protected/ai) "bFa" = ( @@ -38221,13 +38358,36 @@ /turf/open/floor/plating, /area/maintenance/starboard/central) "bFf" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "AIShutter"; - name = "AI Core Shutters" +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plating, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/aiModule/supplied/oxygen{ + pixel_x = 2; + pixel_y = 10 + }, +/obj/item/aiModule/supplied/quarantine{ + pixel_x = 1; + pixel_y = 8 + }, +/obj/item/aiModule/zeroth/oneHuman{ + pixel_y = 4 + }, +/obj/effect/spawner/lootdrop/aimodule_harmful{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/aiModule/supplied/protectStation{ + pixel_x = -2 + }, +/turf/open/floor/plasteel, /area/ai_monitored/turret_protected/ai) "bFg" = ( /obj/effect/turf_decal/tile/brown, @@ -38329,8 +38489,16 @@ /turf/open/floor/plating, /area/medical/chemistry) "bFv" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, -/turf/open/floor/circuit, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, /area/ai_monitored/turret_protected/ai) "bFw" = ( /obj/machinery/monkey_recycler, @@ -38352,27 +38520,22 @@ /turf/open/floor/plasteel, /area/medical/chemistry) "bFy" = ( -/obj/structure/cable, -/obj/machinery/power/apc{ - areastring = "/area/maintenance/aft"; - dir = 8; - name = "Head of Personnel APC"; - pixel_x = -24 +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 }, -/turf/open/floor/carpet/green, -/area/crew_quarters/heads/hop) -"bFz" = ( /obj/structure/cable{ - icon_state = "2-8" + icon_state = "4-8" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark/side{ - dir = 8 - }, -/area/gateway) +/area/crew_quarters/heads/captain) +"bFz" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/item/paper/guides/cogstation/janitor, +/turf/open/floor/plasteel, +/area/janitor) "bFA" = ( /obj/structure/chair/stool, /obj/effect/turf_decal/tile/neutral, @@ -38760,11 +38923,17 @@ /turf/open/floor/plasteel, /area/security/main) "bGg" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/circuit, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, /area/ai_monitored/turret_protected/ai) "bGh" = ( /obj/structure/lattice, @@ -38967,11 +39136,10 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/structure/disposalpipe/segment, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "1-8" }, -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /turf/open/floor/plasteel, /area/ai_monitored/turret_protected/ai) "bGC" = ( @@ -38991,7 +39159,6 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/structure/window/reinforced/spawner/north, /obj/machinery/atmospherics/pipe/simple/orange/hidden, /turf/open/floor/plasteel, /area/ai_monitored/turret_protected/ai) @@ -39103,9 +39270,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/clothing/under/staffassistant, -/obj/item/clothing/under/staffassistant, -/obj/item/clothing/under/staffassistant, +/obj/item/clothing/under/misc/staffassistant, +/obj/item/clothing/under/misc/staffassistant, +/obj/item/clothing/under/misc/staffassistant, /turf/open/floor/plasteel, /area/crew_quarters/locker) "bGS" = ( @@ -39372,7 +39539,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/clothing/under/staffassistant, +/obj/item/clothing/under/misc/staffassistant, /turf/open/floor/plasteel, /area/crew_quarters/locker) "bHw" = ( @@ -39384,7 +39551,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/clothing/under/staffassistant, +/obj/item/clothing/under/misc/staffassistant, /turf/open/floor/plasteel, /area/crew_quarters/locker) "bHx" = ( @@ -39901,17 +40068,15 @@ /turf/open/floor/plating, /area/maintenance/solars/starboard/aft) "bIC" = ( -/obj/structure/cable{ - icon_state = "0-4" +/obj/machinery/conveyor/auto{ + id = "disposal" }, -/obj/machinery/power/apc{ - areastring = "/area/maintenance/aft"; - dir = 8; - name = "Aft Maintenance APC"; - pixel_x = -24 +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/maintenance/aft) +/area/maintenance/disposal) "bID" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/neutral{ @@ -40061,16 +40226,11 @@ name = "Research Sector" }) "bIT" = ( -/obj/structure/lattice/catwalk, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/violet/visible{ +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supplymain/visible, -/obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; - dir = 8 - }, +/obj/machinery/atmospherics/pipe/simple/violet/hidden, /turf/open/space/basic, /area/space/nearstation) "bIU" = ( @@ -40121,12 +40281,9 @@ /turf/open/floor/plasteel, /area/maintenance/department/chapel) "bIY" = ( -/obj/machinery/atmospherics/pipe/simple/violet/visible{ - dir = 10 - }, -/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/hidden, /turf/open/space/basic, -/area/space/nearstation) +/area/space) "bIZ" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -40749,16 +40906,13 @@ /turf/open/floor/plating, /area/quartermaster/miningoffice) "bKp" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) +/turf/open/floor/plating, +/area/crew_quarters/heads/hop) "bKq" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -40932,12 +41086,18 @@ /turf/open/floor/engine, /area/science/xenobiology) "bKG" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/computer/cargo/request{ + dir = 1 }, -/turf/open/floor/plating, -/area/science/xenobiology) +/obj/machinery/keycard_auth{ + pixel_x = 24; + pixel_y = -8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet/green, +/area/crew_quarters/heads/hop) "bKH" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ dir = 4 @@ -40952,25 +41112,23 @@ /turf/open/floor/engine, /area/science/mixing) "bKJ" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/science/xenobiology) +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/heads/hop) "bKK" = ( -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark, -/area/science/xenobiology) +/turf/open/floor/plating, +/area/crew_quarters/heads/hop) "bKL" = ( /obj/structure/cable{ icon_state = "2-4" @@ -41191,12 +41349,13 @@ /turf/open/floor/engine, /area/science/xenobiology) "bLe" = ( -/obj/machinery/door/window/westright{ - name = "Containment Pen"; - req_one_access_txt = "55" +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-8" }, -/turf/open/floor/engine, -/area/science/xenobiology) +/turf/open/floor/plating, +/area/crew_quarters/heads/hop) "bLf" = ( /obj/machinery/door/window/eastleft{ name = "Containment Pen"; @@ -41218,8 +41377,23 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bLh" = ( -/turf/open/floor/plasteel/dark, -/area/science/xenobiology) +/obj/structure/bed, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = -28 + }, +/obj/item/bedsheet/captain, +/obj/effect/landmark/start/captain, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) "bLi" = ( /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ @@ -41237,12 +41411,16 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "bLk" = ( -/obj/machinery/door/window/eastleft{ - name = "Containment Pen"; - req_one_access_txt = "55" +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 }, -/turf/open/floor/engine, -/area/science/xenobiology) +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) "bLl" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 4 @@ -41703,11 +41881,23 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "bMh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel/dark, -/area/science/xenobiology) +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) "bMi" = ( /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ @@ -41731,7 +41921,7 @@ "bMm" = ( /obj/structure/table/wood, /obj/machinery/light, -/obj/item/clothing/under/assistantformal{ +/obj/item/clothing/under/misc/assistantformal{ pixel_y = 4 }, /turf/open/floor/carpet{ @@ -41898,18 +42088,14 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "bMD" = ( -/obj/structure/flora/tree/palm{ - pixel_x = 0 - }, +/obj/structure/flora/tree/palm, /obj/machinery/light{ dir = 8 }, /turf/open/floor/grass, /area/medical/virology) "bME" = ( -/obj/structure/flora/tree/palm{ - pixel_x = 0 - }, +/obj/structure/flora/tree/palm, /obj/machinery/light{ dir = 4; light_color = "#c1caff" @@ -41979,16 +42165,18 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "bMK" = ( -/obj/machinery/atmospherics/pipe/simple/violet/visible{ +/obj/structure/lattice, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; dir = 5 }, -/obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) "bML" = ( -/obj/structure/flora/tree/palm{ - pixel_x = 0 - }, +/obj/structure/flora/tree/palm, /turf/open/floor/grass, /area/medical/virology) "bMM" = ( @@ -42100,9 +42288,13 @@ /turf/open/floor/plating, /area/router) "bMX" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/simple/violet/visible, -/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ +/obj/structure/lattice, +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES"; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; dir = 4 }, /turf/open/space/basic, @@ -42879,15 +43071,17 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "bOJ" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/science/xenobiology) +/mob/living/simple_animal/pet/cat/space, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) "bOK" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/window/northright{ @@ -42897,18 +43091,20 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "bOL" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 +/obj/machinery/computer/card{ + dir = 8 }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/keycard_auth{ + pixel_x = 8; + pixel_y = -24 }, -/obj/item/clothing/mask/gas, -/obj/item/clothing/glasses/science, -/turf/open/floor/plasteel, -/area/science/xenobiology) +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) "bOM" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/stripes/line{ @@ -42938,22 +43134,47 @@ /turf/open/floor/plating, /area/science/xenobiology) "bOQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plating, -/area/science/xenobiology) -"bOR" = ( -/obj/machinery/door/window/southright{ - name = "Secure Xenobiological Containment"; - req_one_access_txt = "55" +/obj/structure/cable{ + icon_state = "1-4" }, -/turf/open/floor/engine, -/area/science/xenobiology) +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"bOR" = ( +/obj/structure/table/wood, +/obj/item/pinpointer/nuke, +/obj/item/card/id/captains_spare, +/obj/item/hand_tele, +/obj/item/disk/nuclear, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) "bOS" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/science/xenobiology) +/obj/structure/table/wood, +/obj/machinery/light, +/obj/item/storage/photo_album/Captain, +/obj/item/camera{ + pixel_y = -6 + }, +/obj/item/stamp/captain, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) "bOT" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ dir = 1 @@ -43048,15 +43269,14 @@ /turf/open/floor/engine, /area/science/xenobiology) "bPh" = ( -/obj/machinery/light{ - dir = 1 +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/engine, -/area/engine/secure_construction{ - name = "Engineering Construction Area" - }) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/space/basic, +/area/space/nearstation) "bPi" = ( /obj/structure/chair{ dir = 8 @@ -43070,8 +43290,8 @@ /area/science/xenobiology) "bPk" = ( /obj/structure/table/reinforced, -/obj/item/clothing/under/staffassistant, -/obj/item/clothing/under/staffassistant, +/obj/item/clothing/under/misc/staffassistant, +/obj/item/clothing/under/misc/staffassistant, /obj/item/clothing/suit/apron/surgical, /obj/item/clothing/suit/apron/surgical, /turf/open/floor/engine, @@ -43141,10 +43361,14 @@ /turf/open/floor/plating, /area/maintenance/disposal) "bPr" = ( -/obj/structure/lattice, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/violet/visible{ - dir = 10 +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible, +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; + dir = 4 }, /turf/open/space/basic, /area/space/nearstation) @@ -43329,9 +43553,15 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bPK" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel/dark, +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, /area/ai_monitored/turret_protected/ai) "bPL" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -43445,18 +43675,13 @@ /turf/open/floor/plasteel, /area/quartermaster/qm) "bPX" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering{ - name = "Engineering Foyer"; - req_one_access_txt = "10;24" +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; + dir = 9 }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) +/turf/open/space/basic, +/area/space/nearstation) "bPY" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/orange/hidden, @@ -43502,7 +43727,8 @@ dir = 1; name = "AI Chamber turret control"; pixel_x = 5; - pixel_y = 24 + pixel_y = 24; + req_access_txt = "65" }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ dir = 6 @@ -44084,11 +44310,9 @@ /turf/open/floor/carpet/blue, /area/crew_quarters/heads/captain) "bRc" = ( +/obj/machinery/suit_storage_unit/captain, /obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 5 + icon_state = "4-8" }, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/captain) @@ -44187,36 +44411,26 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "bRn" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering{ - name = "Engineering Foyer"; - req_one_access_txt = "10;24" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/lattice/catwalk, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bRo" = ( -/obj/structure/lattice, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/violet/visible{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/supplymain/visible, +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; + dir = 8 }, /turf/open/space/basic, /area/space/nearstation) +"bRo" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/hidden, +/turf/open/space/basic, +/area/space/nearstation) "bRp" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/violet/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/visible, /turf/open/space/basic, /area/space/nearstation) "bRq" = ( @@ -44325,20 +44539,14 @@ /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "bRA" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Engineering Access"; - req_one_access_txt = "10;24" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/machinery/light{ dir = 1 }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/engine, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) "bRB" = ( /obj/item/radio/intercom{ name = "Station Intercom (Common)"; @@ -44356,14 +44564,20 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bRD" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 6; + pixel_y = 3 + }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) +/turf/open/floor/plasteel/dark, +/area/bridge) "bRE" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -45375,17 +45589,13 @@ /turf/open/floor/engine/plasma, /area/engine/atmos) "bTJ" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; dir = 8 }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 23 - }, -/turf/open/floor/plasteel, -/area/engine/secure_construction{ - name = "Engineering Construction Area" - }) +/turf/open/space/basic, +/area/space/nearstation) "bTK" = ( /turf/open/floor/engine/co2, /area/engine/atmos) @@ -45704,15 +45914,15 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bUt" = ( -/obj/structure/grille, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" }, -/turf/open/floor/plating, -/area/science/server{ - name = "Computer Core" - }) +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/hallway/primary/central) "bUu" = ( /obj/structure/grille, /obj/structure/disposalpipe/segment{ @@ -45972,23 +46182,19 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "bUS" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/photocopier, -/obj/structure/disposalpipe/segment{ +/obj/structure/closet/secure_closet/quartermaster, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ dir = 4 }, -/obj/machinery/requests_console{ - department = "Cargo Bay"; - departmentType = 2; - name = "Cargo RC"; - pixel_y = 30 - }, -/obj/machinery/camera{ - c_tag = "Supply - Delivery Office Aft"; - network = list("ss13","rd") - }, +/obj/effect/turf_decal/tile/brown, +/obj/item/clothing/suit/space/eva, +/obj/item/clothing/head/helmet/space/eva, +/obj/item/paper/fluff/cogstation/letter_qm, /turf/open/floor/plasteel, -/area/quartermaster/sorting) +/area/quartermaster/qm) "bUT" = ( /obj/effect/turf_decal/delivery, /obj/machinery/light{ @@ -46009,13 +46215,14 @@ /turf/open/floor/plasteel, /area/ai_monitored/turret_protected/ai_upload_foyer) "bUV" = ( -/obj/effect/turf_decal/stripes/white/full, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; + dir = 10 }, -/turf/open/floor/plasteel, -/area/engine/atmos) +/turf/open/space/basic, +/area/space/nearstation) "bUW" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 @@ -46032,12 +46239,13 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "bUX" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/engine/atmos) +/turf/open/floor/engine, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) "bUY" = ( /obj/structure/cable{ icon_state = "1-2" @@ -46068,21 +46276,15 @@ /turf/open/floor/plasteel, /area/router) "bVb" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Engineering Access"; - req_one_access_txt = "10;24" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/transit_tube/horizontal, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) "bVc" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -46157,17 +46359,12 @@ /turf/open/floor/plasteel, /area/maintenance/department/chapel) "bVj" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 4 +/obj/effect/decal/cleanable/dirt, +/obj/machinery/conveyor/auto{ + id = "disposal" }, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) +/turf/open/floor/plating, +/area/maintenance/disposal) "bVk" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ @@ -46477,9 +46674,13 @@ name = "Research Sector" }) "bVN" = ( -/obj/structure/closet/l3closet/scientist, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hor) +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/heads/captain) "bVO" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -47522,30 +47723,15 @@ /turf/open/floor/plasteel, /area/hydroponics) "bXI" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/computer/security{ - dir = 8 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" }, /obj/structure/cable{ icon_state = "0-8" }, -/obj/machinery/power/apc{ - areastring = "/area/security/checkpoint/supply"; - dir = 4; - name = "Cargo Security Checkpoint APC"; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) +/turf/open/floor/plating, +/area/crew_quarters/heads/captain) "bXJ" = ( /obj/structure/chair{ dir = 8 @@ -47769,15 +47955,13 @@ /turf/open/floor/plating, /area/router) "bYg" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/door/poddoor{ + id = "toxinsdriver"; + name = "toxins launcher bay door" }, +/obj/structure/fans/tiny, /turf/open/floor/plating, -/area/maintenance/starboard/aft) +/area/science/mixing) "bYh" = ( /obj/structure/cable{ icon_state = "1-8" @@ -48328,10 +48512,11 @@ /turf/open/floor/plating, /area/quartermaster/warehouse) "bZe" = ( -/obj/effect/spawner/structure/window/reinforced, +/obj/structure/grille, /obj/structure/disposalpipe/segment, +/obj/structure/cable, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-2" }, /turf/open/floor/plating, /area/science/server{ @@ -48748,17 +48933,11 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "caf" = ( +/obj/structure/lattice, /obj/structure/disposalpipe/segment, -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; + dir = 5 }, /turf/open/space/basic, /area/space/nearstation) @@ -49168,15 +49347,16 @@ /turf/open/floor/plating, /area/science/storage) "cbi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" }, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "0-8" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/heads/captain) "cbj" = ( /obj/structure/cable{ icon_state = "1-8" @@ -49237,12 +49417,13 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "cbp" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-8" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/heads/captain) "cbq" = ( /obj/structure/table/reinforced, /obj/item/clipboard, @@ -49304,20 +49485,12 @@ /turf/open/floor/engine, /area/science/explab) "cbA" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear{ - dir = 1 - }, +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel, -/area/science/xenobiology) +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) "cbB" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -49361,21 +49534,16 @@ /turf/open/space/basic, /area/space/nearstation) "cbH" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4" }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel/dark, -/area/science/xenobiology) +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) "cbI" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -50097,11 +50265,16 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "cda" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 4 +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/dark/corner, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "cdb" = ( /obj/structure/disposalpipe/trunk{ @@ -50202,13 +50375,20 @@ /turf/open/floor/plasteel, /area/engine/break_room) "cdm" = ( -/obj/structure/closet/secure_closet/CMO, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/photocopier, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/red{ dir = 1 }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) +/obj/item/paper/guides/cogstation/disposals, +/turf/open/floor/plasteel, +/area/engine/break_room) "cdn" = ( /obj/structure/cable{ icon_state = "1-4" @@ -50233,10 +50413,14 @@ /turf/open/floor/plating/airless, /area/space/nearstation) "cdp" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/violet/visible, -/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ - dir = 4 +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible, +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; + dir = 8 }, /turf/open/space/basic, /area/space/nearstation) @@ -50572,14 +50756,24 @@ /turf/closed/wall/r_wall, /area/medical/medbay/lobby) "cea" = ( -/obj/machinery/computer/cloning, -/obj/effect/turf_decal/bot, -/obj/structure/disposalpipe/segment, -/obj/item/paper/guides/jobs/medical/cloning{ - pixel_x = -4 +/obj/effect/turf_decal/delivery, +/obj/machinery/photocopier, +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + name = "Cargo RC"; + pixel_y = 30 + }, +/obj/machinery/camera{ + c_tag = "Supply - Delivery Office Aft"; + network = list("ss13","rd") + }, +/obj/item/paper/guides/cogstation/disposals, /turf/open/floor/plasteel, -/area/medical/medbay/central) +/area/quartermaster/sorting) "ceb" = ( /obj/structure/table, /obj/effect/turf_decal/stripes/line, @@ -51327,10 +51521,18 @@ name = "Engineering Construction Area" }) "cfx" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 + }, +/obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plasteel, -/area/engine/atmos) +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) "cfy" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -51815,18 +52017,10 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "cgt" = ( -/obj/effect/landmark/start/cargo_technician, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, +/obj/structure/rack, +/obj/item/caution, +/obj/item/caution, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 4 - }, /turf/open/floor/plasteel, /area/quartermaster/warehouse) "cgu" = ( @@ -52674,13 +52868,23 @@ /turf/open/floor/plating, /area/maintenance/disposal) "cij" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/disposaloutlet, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/disposal) +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/westleft{ + name = "Science Desk"; + req_access_txt = "0"; + req_one_access_txt = "29;47" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/lab) "cik" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -52827,17 +53031,10 @@ /turf/open/floor/plating/airless, /area/maintenance/port/fore) "ciC" = ( -/obj/structure/closet/secure_closet/hos, -/obj/machinery/light_switch{ - pixel_y = 24 - }, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/obj/item/storage/box/deputy, -/turf/open/floor/plasteel/grimy, -/area/crew_quarters/heads/hos) +/obj/structure/table, +/obj/item/paper/pamphlet/gateway, +/turf/open/floor/plasteel/white, +/area/gateway) "ciD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -52848,26 +53045,13 @@ /turf/open/floor/plasteel/dark, /area/engine/teg_cold) "ciE" = ( -/obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/table, -/obj/machinery/recharger, -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - name = "Security RC"; - pixel_x = 32 - }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel, -/area/security/checkpoint/supply) +/area/quartermaster/office) "ciF" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -53087,15 +53271,13 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "cjb" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 9 +/obj/structure/cable{ + icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/landmark/start/shaft_miner, /turf/open/floor/plasteel, -/area/quartermaster/warehouse) +/area/quartermaster/miningoffice) "cjc" = ( /obj/structure/fans/tiny, /obj/structure/plasticflaps, @@ -53196,15 +53378,16 @@ /turf/closed/wall/rust, /area/maintenance/port/central) "cjr" = ( -/obj/structure/table, -/obj/machinery/airalarm{ - pixel_y = 24 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/item/hand_labeler, -/obj/item/reagent_containers/glass/bottle/formaldehyde, -/obj/item/paper/guides/jobs/medical/morgue, -/turf/open/floor/plasteel/showroomfloor, -/area/medical/morgue) +/obj/structure/cable, +/turf/open/floor/plating, +/area/science/server{ + name = "Computer Core" + }) "cjs" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 @@ -53344,13 +53527,11 @@ /turf/open/space/basic, /area/space/nearstation) "cjG" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/window/reinforced/spawner, /turf/open/floor/plasteel, -/area/science/xenobiology) +/area/ai_monitored/storage/eva) "cjH" = ( /obj/structure/lattice, /obj/structure/sign/warning/electricshock{ @@ -53581,13 +53762,12 @@ /turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "cjZ" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/item/beacon, +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/window/reinforced/spawner/north, /turf/open/floor/plasteel, -/area/science/xenobiology) +/area/ai_monitored/storage/eva) "cka" = ( /obj/item/beacon, /obj/structure/cable{ @@ -53651,22 +53831,15 @@ name = "Research Sector" }) "ckg" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" +/obj/effect/turf_decal/tile/yellow{ + dir = 4 }, +/obj/effect/landmark/event_spawn, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel/dark, -/area/science/xenobiology) +/turf/open/floor/plasteel/dark/corner, +/area/ai_monitored/storage/eva) "ckh" = ( /obj/machinery/light_switch{ pixel_x = -24 @@ -53971,7 +54144,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/purple, -/obj/item/clothing/under/rank/miner, +/obj/item/clothing/under/rank/cargo/miner, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "ckL" = ( @@ -53983,7 +54156,7 @@ dir = 4 }, /obj/effect/turf_decal/tile/purple, -/obj/item/clothing/under/rank/miner, +/obj/item/clothing/under/rank/cargo/miner, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "ckM" = ( @@ -53995,7 +54168,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/purple, -/obj/item/clothing/under/rank/miner, +/obj/item/clothing/under/rank/cargo/miner, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "ckN" = ( @@ -54116,26 +54289,25 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "ckY" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 1 +/obj/effect/turf_decal/tile/yellow{ + dir = 4 }, -/obj/effect/turf_decal/tile/purple{ +/obj/effect/turf_decal/tile/yellow{ dir = 8 }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/dark, -/area/science/xenobiology) +/turf/open/floor/plasteel/checker, +/area/ai_monitored/storage/eva) "ckZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/science/xenobiology) +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) "cla" = ( /obj/structure/cable{ icon_state = "4-8" @@ -54975,12 +55147,26 @@ /turf/open/floor/plasteel, /area/medical/chemistry) "cmT" = ( -/obj/machinery/door/poddoor{ - id = "toxinsdriver"; - name = "toxins launcher bay door" +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/turf/open/floor/plating, -/area/science/mixing) +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/folder/red, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/door/window/northright{ + name = "Security Checkpoint"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) "cmU" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -55181,12 +55367,12 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "cnm" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) +/turf/open/floor/plating, +/area/gateway) "cnn" = ( /obj/structure/cable{ icon_state = "2-4" @@ -55331,10 +55517,10 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/chair{ + dir = 4 }, -/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel, /area/security/checkpoint/supply) "cnC" = ( @@ -56486,19 +56672,14 @@ /turf/open/floor/plasteel, /area/engine/teg_hot) "cpM" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/turretid{ - control_area = "area/science/server"; - icon_state = "control_stun"; - name = "Computer Core turret control"; - pixel_x = -3; - pixel_y = -23 +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" }, /turf/open/floor/plasteel, -/area/ai_monitored/turret_protected/ai_upload_foyer) +/area/engine/atmos) "cpN" = ( /obj/structure/closet/secure_closet/atmospherics, /obj/item/cartridge/atmos, @@ -56947,24 +57128,16 @@ /turf/open/floor/plasteel, /area/engine/teg_cold) "cqB" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/absinthe, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/red{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/computer/secure_data{ - dir = 8 - }, -/obj/machinery/newscaster/security_unit{ - pixel_x = 30 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) "cqC" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, @@ -57777,7 +57950,11 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/machinery/holopad, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel, /area/security/checkpoint/supply) "csi" = ( @@ -57804,15 +57981,15 @@ /turf/open/floor/plasteel, /area/science/explab) "csl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-8" }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) +/turf/open/floor/plating, +/area/crew_quarters/heads/hor) "csm" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -57918,37 +58095,33 @@ /turf/open/floor/plasteel, /area/engine/teg_cold) "csu" = ( -/obj/structure/table, -/obj/machinery/computer/med_data/laptop, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 +/obj/effect/turf_decal/tile/yellow{ + dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/structure/cable{ icon_state = "2-4" }, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Chief Medical Officer's Desk"; - departmentType = 5; - name = "Chief Medical Officer RC"; - pixel_y = 32 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) +/area/gateway) "csv" = ( -/obj/machinery/computer/card/minor/cmo{ - dir = 1 +/obj/structure/table, +/obj/effect/turf_decal/tile/brown{ + dir = 8 }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 +/obj/effect/turf_decal/tile/brown, +/obj/item/storage/toolbox/mechanical, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/keycard_auth{ - pixel_x = -24 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) +/obj/item/paper/guides/cogstation/letter_supp, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) "csw" = ( /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ @@ -57960,19 +58133,17 @@ /turf/open/floor/plasteel, /area/security/main) "csx" = ( -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 +/obj/structure/closet/secure_closet/RD, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" }, -/obj/machinery/photocopier, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 5 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) +/obj/item/paper/fluff/cogstation/letter_rd, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) "csy" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 @@ -58325,17 +58496,22 @@ /turf/open/floor/plasteel, /area/quartermaster/sorting) "ctn" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown, -/obj/item/storage/toolbox/mechanical, -/obj/structure/disposalpipe/segment{ +/obj/structure/closet/secure_closet/engineering_chief, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 1; + locked = 0; + pixel_y = -22 + }, +/obj/item/paper/guides/cogstation/letter_chief, /turf/open/floor/plasteel, -/area/quartermaster/sorting) +/area/crew_quarters/heads/chief) "cto" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/tile/brown, @@ -58388,14 +58564,20 @@ /area/quartermaster/sorting) "ctu" = ( /obj/structure/table, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple{ +/obj/effect/turf_decal/bot, +/obj/machinery/camera{ + c_tag = "Supply - Cargo Office"; dir = 1 }, +/obj/machinery/newscaster{ + pixel_y = -28 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/item/storage/box/disks, /turf/open/floor/plasteel, -/area/quartermaster/miningoffice) +/area/quartermaster/office) "ctv" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/tile/brown, @@ -59209,7 +59391,9 @@ /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 }, -/obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/white, /area/gateway) "cuR" = ( @@ -59732,13 +59916,15 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "cvM" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/bottle/absinthe, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hor) +/obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/gateway) "cvN" = ( /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -60186,20 +60372,13 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "cwx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/transit_tube/station/reverse/flipped{ - dir = 1 - }, -/obj/structure/transit_tube_pod{ - dir = 8 +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 }, +/obj/effect/turf_decal/stripes/white/full, /turf/open/floor/plasteel, -/area/engine/secure_construction{ - name = "Engineering Construction Area" - }) +/area/engine/atmos) "cwy" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/transit_tube/horizontal, @@ -60238,24 +60417,19 @@ /turf/open/floor/plasteel, /area/engine/workshop) "cwF" = ( -/obj/structure/lattice, -/obj/structure/transit_tube/curved{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) +/turf/open/floor/plasteel, +/area/engine/atmos) "cwG" = ( -/obj/structure/lattice, -/obj/structure/disposalpipe/segment, -/obj/structure/transit_tube/horizontal, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/turf/open/space/basic, -/area/space/nearstation) +/turf/open/floor/plasteel, +/area/engine/atmos) "cwH" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden, /turf/closed/wall, @@ -60283,6 +60457,9 @@ dir = 4 }, /obj/structure/transit_tube/station/reverse/flipped, +/obj/structure/transit_tube_pod{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/atmos) "cwN" = ( @@ -60828,19 +61005,15 @@ /area/quartermaster/miningoffice) "cxT" = ( /obj/structure/table, -/obj/effect/turf_decal/bot, -/obj/machinery/camera{ - c_tag = "Supply - Cargo Office"; +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ dir = 1 }, -/obj/machinery/newscaster{ - pixel_y = -28 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, +/obj/item/paper/guides/cogstation/letter_supp, /turf/open/floor/plasteel, -/area/quartermaster/office) +/area/quartermaster/miningoffice) "cxU" = ( /obj/effect/turf_decal/tile/brown{ dir = 4 @@ -60881,10 +61054,15 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cxZ" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/delivery, +/obj/machinery/button/door{ + id = "MiningConveyorBlastDoor"; + name = "Mining Conveyor Access"; + pixel_x = 8; + pixel_y = -24; + req_access_txt = "0"; + req_one_access_txt = "10;24;48" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "cya" = ( @@ -61497,19 +61675,19 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "czf" = ( -/obj/structure/chair/office/light{ +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 }, -/obj/effect/landmark/start/chief_medical_officer, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) +/area/gateway) "czg" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -61708,26 +61886,32 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "czz" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command/glass{ - name = "CMO's Office"; - req_access_txt = "40" + name = "Gateway Chamber"; + req_access_txt = "62" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/engine, +/area/gateway) +"czA" = ( +/obj/machinery/modular_computer/console/preset/research{ + dir = 8 + }, +/obj/item/reagent_containers/food/drinks/coffee, +/obj/structure/cable{ + icon_state = "2-4" }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/cmo) -"czA" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plating, -/area/crew_quarters/heads/cmo) +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) "czB" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/maintenance{ @@ -62159,9 +62343,23 @@ /turf/open/floor/plating, /area/maintenance/disposal) "cAo" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/door/window/northright{ + name = "Medbay Desk"; + req_access_txt = "5" + }, +/obj/item/clipboard, +/obj/item/clothing/glasses/hud/health, /obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel, -/area/janitor) +/obj/item/paper/fluff/cogstation/sleepers, +/obj/item/pen, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) "cAp" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ @@ -62480,16 +62678,12 @@ /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "cAQ" = ( -/obj/structure/closet/crate/trashcart, -/obj/machinery/light/small{ - dir = 4 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/structure/disposalpipe/junction, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) +/turf/open/floor/plating, +/area/crew_quarters/heads/hor) "cAR" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 @@ -62499,13 +62693,20 @@ }, /area/chapel/office) "cAS" = ( -/obj/structure/table/wood, -/obj/item/storage/box/evidence, -/obj/item/hand_labeler, -/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/gateway) "cAT" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, @@ -62778,15 +62979,12 @@ name = "Aft Air Hookup" }) "cBt" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Security Office"; - req_access_txt = "63" +/obj/structure/closet/l3closet/scientist, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/security/main) +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) "cBu" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -63668,11 +63866,19 @@ /turf/open/floor/plasteel/stairs/left, /area/hallway/primary/central) "cCO" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - dir = 4 +/obj/structure/table, +/obj/machinery/airalarm{ + pixel_y = 24 }, -/turf/open/floor/plasteel, -/area/security/main) +/obj/item/hand_labeler, +/obj/item/reagent_containers/glass/bottle/formaldehyde, +/obj/item/paper/guides/jobs/medical/morgue, +/obj/item/paper/guides/cogstation/cdn_med{ + pixel_x = -6; + pixel_y = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) "cCP" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -63832,21 +64038,19 @@ /turf/open/floor/plating, /area/quartermaster/sorting) "cDh" = ( -/obj/structure/closet/secure_closet/engineering_chief, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 +/obj/machinery/computer/card/minor/cmo{ + dir = 1 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/obj/machinery/airalarm{ - dir = 1; - locked = 0; - pixel_y = -22 +/obj/machinery/keycard_auth{ + pixel_x = -24 }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) +/obj/item/paper/guides/cogstation/letter_cmo, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) "cDi" = ( /obj/effect/turf_decal/tile/yellow{ dir = 8 @@ -63861,11 +64065,18 @@ /turf/open/floor/plasteel, /area/storage/primary) "cDj" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" }, -/turf/open/floor/plating, /area/crew_quarters/heads/hor) "cDk" = ( /obj/machinery/door/firedoor, @@ -63996,9 +64207,21 @@ /turf/closed/wall/r_wall, /area/crew_quarters/heads/captain) "cDv" = ( -/obj/machinery/vending/wardrobe/cap_wardrobe, -/turf/open/floor/carpet/blue, -/area/crew_quarters/heads/captain) +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) "cDw" = ( /obj/structure/cable{ icon_state = "1-2" @@ -64019,35 +64242,39 @@ /turf/open/floor/carpet/blue, /area/crew_quarters/heads/captain) "cDy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/heads/hor) +"cDz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"cDA" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/obj/machinery/newscaster/security_unit{ + pixel_x = 30 + }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - dir = 8 - }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/crew_quarters/heads/captain) -"cDz" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/crew_quarters/heads/captain) -"cDA" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/crew_quarters/heads/captain) +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) "cDB" = ( /obj/item/storage/secure/safe{ pixel_x = -24 @@ -64072,49 +64299,64 @@ }, /area/crew_quarters/heads/captain) "cDD" = ( -/obj/structure/bed, -/obj/item/radio/intercom{ - name = "Station Intercom (Common)"; - pixel_y = -28 - }, -/obj/item/bedsheet/captain, -/obj/effect/landmark/start/captain, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/crew_quarters/heads/captain) -"cDE" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ - dir = 1 - }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/crew_quarters/heads/captain) -"cDF" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" +/obj/effect/turf_decal/tile/red{ + dir = 4 }, -/area/crew_quarters/heads/captain) +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/computer/security{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/supply"; + dir = 4; + name = "Cargo Security Checkpoint APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"cDE" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) +"cDF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) "cDG" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 9 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" }, -/mob/living/simple_animal/pet/cat/space, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" }, -/area/crew_quarters/heads/captain) +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) "cDH" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 @@ -64128,16 +64370,19 @@ /turf/open/floor/plasteel, /area/gateway) "cDJ" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 4 +/obj/machinery/computer/crew, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-4" }, -/turf/open/floor/plasteel/dark/side{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-8" }, -/area/gateway) +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) "cDK" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command/glass{ @@ -64286,29 +64531,35 @@ }, /area/crew_quarters/heads/hor) "cDZ" = ( +/obj/structure/table, +/obj/machinery/computer/med_data/laptop, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Medical Officer's Desk"; + departmentType = 5; + name = "Chief Medical Officer RC"; + pixel_y = 32 + }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/crew_quarters/heads/hor) +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) "cEa" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -26 - }, +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-4" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hor) +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) "cEb" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ @@ -64726,22 +64977,17 @@ /turf/open/floor/plasteel, /area/science/lab) "cEE" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin, -/obj/item/pen, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/window/westleft{ - name = "Science Desk"; - req_access_txt = "29;47" +/obj/machinery/power/apc{ + areastring = "/area/maintenance/aft"; + dir = 8; + name = "Aft Maintenance APC"; + pixel_x = -26 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/lab) +/turf/open/floor/plating, +/area/maintenance/aft) "cEF" = ( /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -66706,23 +66952,20 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "cHV" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "0-4" +/obj/effect/turf_decal/tile/red{ + dir = 4 }, -/obj/machinery/power/apc{ - areastring = "/area/medical/genetics"; - dir = 8; - name = "Genetics Lab APC"; - pixel_x = -24 +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/aft) +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) "cHW" = ( /obj/machinery/rnd/production/circuit_imprinter, /obj/item/reagent_containers/glass/beaker, @@ -68061,21 +68304,14 @@ /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "cKj" = ( -/obj/structure/table/reinforced, +/obj/structure/closet/secure_closet/CMO, +/obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/tile/blue, -/obj/machinery/door/window/northright{ - name = "Medbay Desk"; - req_access_txt = "5" - }, -/obj/item/clipboard, -/obj/item/pen, -/obj/item/clothing/glasses/hud/health, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/item/paper/guides/cogstation/letter_cmo, /turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) +/area/crew_quarters/heads/cmo) "cKk" = ( /obj/structure/chair/office/light{ dir = 1; @@ -68258,20 +68494,22 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "cKC" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/landmark/start/chief_medical_officer, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /obj/structure/cable{ icon_state = "1-8" }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/science/xenobiology) +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) "cKD" = ( /obj/machinery/atmospherics/pipe/manifold/orange/hidden{ dir = 8 @@ -68550,7 +68788,7 @@ dir = 8 }, /obj/structure/closet/secure_closet/engineering_personal, -/obj/item/clothing/under/overalls, +/obj/item/clothing/under/misc/overalls, /turf/open/floor/plasteel, /area/storage/primary) "cLo" = ( @@ -68633,7 +68871,7 @@ "cLz" = ( /obj/effect/turf_decal/bot, /obj/structure/closet/secure_closet/engineering_personal, -/obj/item/clothing/under/overalls, +/obj/item/clothing/under/misc/overalls, /turf/open/floor/plasteel, /area/storage/primary) "cLA" = ( @@ -70405,6 +70643,1036 @@ }, /turf/open/floor/plating, /area/maintenance/aft) +"cPz" = ( +/obj/structure/lattice, +/obj/structure/transit_tube/curved{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cPA" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/obj/structure/transit_tube/horizontal, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cPB" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/transit_tube/crossing/horizontal, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cPC" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/transit_tube/horizontal, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cPD" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cPE" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/space/basic, +/area/space/nearstation) +"cPF" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/space/basic, +/area/space/nearstation) +"cPG" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Supply - Warehouse Exterior"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/space/basic, +/area/space/nearstation) +"cPH" = ( +/obj/machinery/conveyor_switch{ + id = "EngiCargoConveyer" + }, +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/sorting"; + dir = 8; + name = "Delivery Office APC"; + pixel_x = -26 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"cPI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Foyer"; + req_one_access_txt = "10;24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cPJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Foyer"; + req_one_access_txt = "10;24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cPK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Access"; + req_one_access_txt = "10;24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cPL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Access"; + req_one_access_txt = "10;24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cPM" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/table, +/obj/machinery/recharger, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Security RC"; + pixel_x = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"cPN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cPO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cPP" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus{ + pixel_y = 8 + }, +/obj/item/stock_parts/cell/high/plus{ + pixel_y = 8 + }, +/obj/item/assembly/flash/handheld{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/flash/handheld{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/flash/handheld{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/flash/handheld{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/flash/handheld{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/flash/handheld{ + pixel_x = -8; + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"cPQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/genetics"; + dir = 8; + name = "Genetics Lab APC"; + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cPR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) +"cPS" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "CMO's Office"; + req_access_txt = "40" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"cPT" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) +"cPU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cPV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/holopad, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cPW" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cPX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cPY" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cPZ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cQa" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"cQb" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cQc" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cQd" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cQe" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "xenobio2"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cQf" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"cQg" = ( +/obj/machinery/door/window/westright{ + name = "Containment Pen"; + req_one_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"cQh" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cQi" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cQj" = ( +/obj/machinery/door/window/eastleft{ + name = "Containment Pen"; + req_one_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"cQk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/science/xenobiology) +"cQl" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/north, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "xenobio1"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cQm" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cQn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cQo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/science/xenobiology) +"cQp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cQq" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cQr" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner, +/obj/machinery/button/door{ + id = "xenobio4"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cQs" = ( +/obj/machinery/door/window/westright{ + name = "Containment Pen"; + req_one_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"cQt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cQu" = ( +/obj/machinery/door/window/eastleft{ + name = "Containment Pen"; + req_one_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio4"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"cQv" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/button/door{ + id = "xenobio3"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cQw" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cQx" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner, +/obj/machinery/button/door{ + id = "xenobio6"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cQy" = ( +/obj/machinery/door/window/westright{ + name = "Containment Pen"; + req_one_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio5"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"cQz" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cQA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cQB" = ( +/obj/machinery/door/window/eastleft{ + name = "Containment Pen"; + req_one_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"cQC" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/button/door{ + id = "xenobio5"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cQD" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cQE" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cQF" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cQG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cQH" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "xenobio7"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cQI" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/clothing/mask/gas, +/obj/item/clothing/glasses/science, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cQJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"cQK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"cQL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"cQM" = ( +/obj/machinery/door/window/southright{ + name = "Secure Xenobiological Containment"; + req_one_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio7"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"cQN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"cQO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"cQP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"cQQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"cQR" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"cQS" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/bridge) +"cQT" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/bridge) +"cQU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/bridge) +"cQV" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-02" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"cQW" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/machinery/camera{ + c_tag = "Bridge - Port Quarter"; + dir = 1 + }, +/obj/machinery/keycard_auth{ + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"cQX" = ( +/obj/machinery/photocopier, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"cQY" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"cQZ" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"cRa" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "MiningConveyer" + }, +/obj/machinery/door/poddoor{ + id = "MiningConveyorBlastDoor"; + name = "Asteroid Mining Load Door" + }, +/turf/open/floor/plating/airless, +/area/quartermaster/miningoffice) +"cRb" = ( +/obj/machinery/computer/cloning, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/obj/item/paper/guides/jobs/medical/cloning{ + pixel_x = -4 + }, +/obj/item/paper/fluff/cogstation/cloner{ + pixel_x = 6 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"cRc" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/door/airlock/research{ + name = "Aft Observatory"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cRd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/door/airlock/research{ + name = "Aft Observatory"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cRe" = ( +/obj/machinery/computer/upload/ai{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"cRf" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/flasher{ + id = "ID"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cRg" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/white/corner, +/area/engine/atmos) +"cRh" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/turretid{ + control_area = "area/science/server"; + icon_state = "control_stun"; + name = "Computer Core turret control"; + pixel_x = -3; + pixel_y = -23; + req_access_txt = "65" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) "cVq" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 @@ -70697,16 +71965,6 @@ /obj/machinery/atmospherics/pipe/simple/violet/visible, /turf/open/space/basic, /area/space) -"kxL" = ( -/obj/structure/lattice, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/violet/visible{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) "kzb" = ( /obj/machinery/atmospherics/pipe/manifold/orange/hidden{ dir = 4 @@ -70881,17 +72139,6 @@ /obj/machinery/atmospherics/pipe/simple/supplymain/visible, /turf/open/space/basic, /area/space/nearstation) -"qnM" = ( -/obj/structure/lattice, -/obj/structure/sign/warning{ - name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES"; - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/violet/visible{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) "qvB" = ( /obj/machinery/atmospherics/components/unary/thermomachine/heater{ dir = 8 @@ -70911,14 +72158,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"rbJ" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/violet/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/space/basic, -/area/space/nearstation) "rdF" = ( /obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 6 @@ -71123,13 +72362,6 @@ /obj/item/pen, /turf/open/floor/plasteel, /area/engine/atmos) -"xqa" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/violet/visible{ - dir = 5 - }, -/turf/open/space/basic, -/area/space/nearstation) "xCy" = ( /obj/machinery/atmospherics/components/binary/pump, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ @@ -84607,7 +85839,7 @@ aaU aaa aaU aEa -aTH +aHE bab aaa aaa @@ -84864,7 +86096,7 @@ aaU aaU aaU aEb -bRD +aPT aaU aaU aye @@ -85121,7 +86353,7 @@ aaU aaa aaU aEa -bRD +aPT aaU aaa aaa @@ -85378,7 +86610,7 @@ aaa aaa aaU aEa -bRD +aPT aaU aaa aaa @@ -85635,7 +86867,7 @@ aaa aaa aaU aEa -bRD +aPT aaU aaa aaa @@ -85892,7 +87124,7 @@ aaa aaa aaU aEa -bRD +aPT aaU aaa aaa @@ -86149,7 +87381,7 @@ aaa aaa aaU aEa -bRD +aPT aaU aaa aaa @@ -86406,7 +87638,7 @@ aaa aaa aaU aEa -bRD +aPT aaU aaa aaa @@ -86663,7 +87895,7 @@ aaa aaa aaU aEa -bRD +aPT aaU aaa aaa @@ -86920,7 +88152,7 @@ aaa aaa aaU aEb -bRD +aPT aaU aaa aaa @@ -87177,7 +88409,7 @@ aaa aaa aaU aEa -bRD +aPT aaU aaa aaa @@ -87434,7 +88666,7 @@ aaa aaa aaU aEa -bRD +aPT aaU aaa aaa @@ -87691,7 +88923,7 @@ aaa aaa aaU aEa -bRD +aPT aaU aaa aaa @@ -87948,7 +89180,7 @@ aaa aaa aaU aEa -bRD +aPT aaU aaa aaa @@ -88205,7 +89437,7 @@ aaa aaa aaU aEa -bRD +aPT aaU aaa aaa @@ -88462,19 +89694,19 @@ aaa aaa aaU aEa -bRD +aPT aaU aaU aaa aaU -aGn -aGn -aGn -aGn -aGn -aGn -aGn -aGn +aPV +bik +bik +bik +bik +bik +bik +cQT aaU aaa aaU @@ -88547,22 +89779,22 @@ bFt bJs bJV bxT -bKG -bLe -bFl +cQa +cQg +cQk bxT -bKG -bLe -bFl +cQa +cQs +cQk bxT -bKG -bLe -bFl +cQa +cQy +cQk bxT cvz cKA bOH -bFl +cQJ bxT bKM bKM @@ -88719,21 +89951,21 @@ aaU aaU aaU aEa -bRD +aPT aaU aaU -aGn -aGn -aGn +aPV +bik +cQS aIA aJe aLE aLy aMQ aNF -aGn -aGn -aGn +cQU +bik +cQT aaU aaa aaa @@ -88806,20 +90038,20 @@ bJW bxT cbo bLf -cjZ +cQl bxT cbo bLf -cjZ +cQv bxT cbo bLf -cjZ +cQC bxT ctT cKB bOI -bOQ +cQK bOT bKM bKM @@ -88976,10 +90208,10 @@ abh abh abh aEb -bRD +aPT aaU aaU -aGn +aPW aHD aIg aHF @@ -88989,8 +90221,8 @@ aHF aJn aHF aPp -aPT -aGn +cQV +cQS aaU aaa aaa @@ -89058,25 +90290,25 @@ bxT bFo bHV bYz -cbi -cbp -cbA -cbH -cjP -cjP -ckg -cjP -cjP -cjP -ckg -cjP -ckY -cjP +cPU +cPW +cPY +cQb +cQh +cQm +cQh +cQh +cQh +cQh +cQw +cQh +cQz +cQD cjP ctR -cKC -bOJ -bFl +cQF +cQH +cQL bKM bKM bKM @@ -89233,11 +90465,11 @@ aaU aaU aaU aEa -bRD +aPT aaU -aGn -aGn -aHE +aPU +aTH +bRD aHF aHF aIE @@ -89246,7 +90478,7 @@ aIE aIE csD aHF -aPU +cQW aGq aaU aaa @@ -89315,25 +90547,25 @@ bxT cdD bHW bIG -csl -bzy -bKp -bKJ -bLh -bLh -bLh -bLh -bMh -bLh -bLh -bLh -ckZ -bLh +cPV +cPX +cPZ +cQc +cQi +cQn +cQi +cQp +cQt +cQi +cQi +cQp +cQA +cQE cbF cnl cla bOK -bOR +cQM bKM bKM bPa @@ -89494,21 +90726,21 @@ aLK aGq aGq aKH -aHF +cQQ aHF aIE aJu aKA -aZT +bhB aMX aIE aHF -aPV +cQX aQW -aSJ -aSJ +bkC +bkC aQW -aSJ +bkC aQW aaU aaa @@ -89575,22 +90807,22 @@ bIH cGA bJX bKq -bKK +cQd bLi bLi bLF -bLi +cQq bMi bLi -bLF bLi +cQq bLi bLi cvV ckS -cla -bOL -bFl +cQG +cQI +cQN bKM bKM bKM @@ -89751,7 +90983,7 @@ aUz bDP aGq aGL -aHF +cQQ aHF aIH aJz @@ -89760,16 +90992,16 @@ aLI aMX aIE aHF -aPW +cQY aQW -cDv -cjQ +bmj +bBt cDB -cDD +bLh aQW aQW -aSJ -aSJ +bkC +bVN aaa aaa aaa @@ -89804,7 +91036,7 @@ aaa bcw bde bcw -cmT +bYg bcy bfp cwY @@ -89832,22 +91064,22 @@ bII cGB bFw bxT -cjG +cQe bLj ckN bxT -cjG +cQr bLj ckN bxT -cjG +cQx bLj ckN bxT bOy cla bOM -bOS +cQO bOU bKM bKM @@ -90008,7 +91240,7 @@ aZq bDQ hcR aGM -aHF +cQQ aHF aII aJu @@ -90017,16 +91249,16 @@ aRe aXS bbb aHF -aHF +cQQ aQW baP -aTo +bCd cjQ -cDE +bLk aVP cpt -aWw -aSJ +bOR +bXI aaa aaa aaa @@ -90073,7 +91305,7 @@ bAN bKH cbh clc -csR +cGJ cGJ cGO cGU @@ -90089,22 +91321,22 @@ bIJ cGC bXO bxT -bFl -bLk -bKG +cQf +cQj +cQo bxT -bFl -bLk -bKG +cQf +cQu +cQo bxT -bFl -bLk -bKG +cQf +cQB +cQo bxT ctU ckX bON -bFl +cQP bxT bKM bKM @@ -90265,7 +91497,7 @@ bdz bDR aKF aLm -aMi +cQR aMi aQh aQN @@ -90274,16 +91506,16 @@ aRl aXT bbc bbD -bik +cQZ cDt cDw -cDy +bEq cps -cDF +bMh bRb -bRc -aWx -aSJ +bOQ +bOS +cbi aaa aaa aaa @@ -90534,13 +91766,13 @@ bbG bit cDu cDx -cDz +bFy cDC -cDG +bOJ aVR bBj -aWy -aSJ +bRc +bXI aaa aaa aaa @@ -90790,14 +92022,14 @@ aSW aHM biF aQW -aTr -cDA +buM +bAX bEN -bjw +bOL aQW aQW -aSJ -aSJ +buO +cbp aaa aaa aaa @@ -90845,7 +92077,7 @@ bcy cbC cnO cnO -cnO +csR cGQ cGW cGV @@ -91047,10 +92279,10 @@ aSW aHM bju aQW -aSJ -aSJ +buO +buO aQW -aSJ +buO aQW aaU aaa @@ -91818,9 +93050,9 @@ csr aNR blf aNR -aTt -aTt -aTt +buR +bKp +bKJ aaa bdg bdg @@ -92074,10 +93306,10 @@ aGq aNR aNR bly -bFy -aTJ +bjF +byd aUB -aTt +bKK aaa bdg beN @@ -92329,12 +93561,12 @@ aKS aSW cDs aNR -aPs +biq blA bqh buG bIW -aTt +bKK aaa bdg beR @@ -92591,7 +93823,7 @@ aYR csE bvJ aUF -aTt +bKK aaa bdg beJ @@ -92832,7 +94064,7 @@ aAv aOO aCl aFj -ciC +aZT aGv bLp bEV @@ -92846,9 +94078,9 @@ bbf bsf bnI aRo -bBt -biq -aTt +bAn +bKG +bLe aaa bdg beJ @@ -93696,7 +94928,7 @@ ckT ckT ckT ckV -cHK +cRc clg ctc cua @@ -93921,8 +95153,8 @@ csN biA biA csL -cDZ -bgX +cDj +cDy bPl bXx bXT @@ -93953,7 +95185,7 @@ ckQ ckU ckQ ckW -cHL +cRd csX ctP cuk @@ -94178,8 +95410,8 @@ cve bky biA biA -cDZ -bgX +cDj +cDy bWT bXh bYa @@ -94431,11 +95663,11 @@ aaU aaU bgW biI -cvM -bkC -bVN -bmj -cEa +cqB +czA +cBt +csx +cDv bgW bWU bXl @@ -94688,8 +95920,8 @@ aaU aUk bgW bgW -cDj -bgX +csl +cAQ bgW bgW cEb @@ -96426,10 +97658,10 @@ aQg akv aew azf -bpW -aAP -aEc +aCb aFT +bjV +bpW aZO aXu aZX @@ -96487,8 +97719,8 @@ aaU aTV aVk bfu -bAn -bFz +csu +cAS cDV cDX cEg @@ -96682,9 +97914,9 @@ alU aQA aSZ aew -abS -bEL -aCb +aAP +aEc +bjB asL asL bfm @@ -96729,7 +97961,7 @@ aZy beJ bfd bjg -aYI +bUt bai baV cKF @@ -96744,7 +97976,7 @@ aaU aTV aVq bfx -bCd +cuQ cpP aTV bVR @@ -96999,9 +98231,9 @@ aaa aaa aaU aUi -aVq +ciC bzz -cuQ +cvM cts aTV bVM @@ -97258,7 +98490,7 @@ aaU aTV aYf beo -bCd +cuQ cwe aTV bVS @@ -97453,7 +98685,7 @@ awS azB aBC atc -aLX +aIF aJv aJZ aLY @@ -97515,7 +98747,7 @@ aaU aTV bHH aWp -cDJ +czf coI aTV bVT @@ -97710,10 +98942,10 @@ awT aAk cjN atc -aDF +aIG aRU aDX -bAX +aYI atc aVQ aWa @@ -97771,8 +99003,8 @@ aaa aaU aUk aUk -aUi -cDK +cnm +czz aUk aUk bWa @@ -97966,9 +99198,9 @@ bGf bHh cqd cBb -cBt +aFP +aKi aMN -cCO aQw coU atc @@ -98223,9 +99455,9 @@ avL axw cqH bhN -aDb +aIC aDP -aFk +aPs aGh csn atc @@ -98303,7 +99535,7 @@ bRJ bth bTB cek -cKj +cAo cKk cKl cKm @@ -98480,9 +99712,9 @@ avM avL csw aBK -aCa -aCa -aAQ +aID +aLX +aSJ aHZ atc atc @@ -98808,7 +100040,7 @@ cEn bWR bSH bSG -cEE +cij bSG bSC bSC @@ -100054,9 +101286,9 @@ aWB bsl cjJ aXH -aYm -aYm -aYm +cbA +cbH +ckZ aZv bRP aWB @@ -100101,9 +101333,9 @@ ceY bst cyG bst -buM -buM -buM +cDE +cDG +cEa buS buS bFX @@ -100312,7 +101544,7 @@ aWK aXo aXI aYn -aYD +cda aZj aZw bRQ @@ -100358,11 +101590,11 @@ bqm cdW cyG cdY -buM -byd -czf -csv -buM +cDF +cDJ +cKC +cDh +cPR bFJ cFa cFk @@ -100569,7 +101801,7 @@ aWM aXr aXJ aXr -aXr +cjG aXr aXr bRU @@ -100616,10 +101848,10 @@ cmU cyG cdX buS -csu +cDZ czg czt -czz +cPS czD cFb bEl @@ -100826,7 +102058,7 @@ aWO bPz bQf aYs -aYE +cjZ aYs aYs bSV @@ -100876,7 +102108,7 @@ buS bAJ czh czu -czA +cPT czE cFc bEl @@ -101083,7 +102315,7 @@ aWP aXy aXN aXy -cda +ckg aXy aXy aXy @@ -101132,7 +102364,7 @@ bqm buS caR czi -cdm +cKj buS bFY cEX @@ -101340,7 +102572,7 @@ aWQ aXz aXU aYu -aYF +ckY aZn aZx bEs @@ -102380,7 +103612,7 @@ ajO ajO ajO ajO -ajO +aQa ajO ajO aRy @@ -102633,13 +103865,13 @@ ajO aGi axI axI -axI aGi -aNo -aPE -beu ajO +bFf +aPE baW +aYZ +beu beK bTX bWI @@ -102889,10 +104121,10 @@ avv ajO bCv axI -bCF -axI -axI -aNr +aNh +aNz +bDw +bFv bHp bLm ajO @@ -103144,12 +104376,12 @@ aSt brs avv ajO -axI avY -bDw -bEZ -bFv -bGB +ajO +ajO +aOI +bDU +bGg bIF bLz bNe @@ -103193,7 +104425,7 @@ bqq cPx cFh bJe -cea +cRb cHP bKA bKV @@ -103401,12 +104633,12 @@ bns aya avy alo -axZ awn aIS -awn +aNo aJp -aNz +bDW +bGB aHq bki bPp @@ -103423,11 +104655,11 @@ cwd bYZ bZc cgQ -bUt -bUt -bUt -bUt bZe +bZe +bZe +bZe +cjr brL brL bVW @@ -103658,19 +104890,19 @@ aSt brs avv ajO -axI -avY -bDU -bFf -bGg +axZ +ajO +ajO +aPf +bEZ bGD bJk bLC -bPK +cRf bPV bQT bVq -cpM +cRh bfh cbY cdn @@ -103917,10 +105149,10 @@ avv ajO aze azJ -bDW -azJ -aNh -aOI +aNr +bCF +bDw +bPK bKx bmv ajO @@ -103958,7 +105190,7 @@ cpI csK cKi cvR -bzH +cPP bts bCY bHJ @@ -104175,9 +105407,9 @@ ajO aGi axI aIX -axI aGi -aPf +ajO +cRe aZP bmH aYZ @@ -104481,7 +105713,7 @@ bJi bDa czw byQ -cHV +cPQ cIc cIc cIp @@ -104986,7 +106218,7 @@ bpE bpE cyQ byQ -cjr +cCO czx czC czG @@ -105196,19 +106428,19 @@ bUp cci btZ aSq -rTW -kxw -kxw -tpQ -kxw -tpQ -kxw -kxw -kxw -kxw -kxw -kxw -xqa +bgh +bIY +bIY +bRo +bIY +bRo +bIY +bIY +bIY +bIY +bIY +bIY +bRp aaa aaU bWv @@ -105453,7 +106685,7 @@ bUL btT btT cjE -opd +bsz aaU aaU cdV @@ -105495,7 +106727,7 @@ bZk bZn bZq bZh -bIC +cEE bpD cmL cyS @@ -105710,7 +106942,7 @@ bUY ccj aSw aaW -opd +bsz aaa aaa aaa @@ -105967,7 +107199,7 @@ bVa btT aaU aby -opd +bsz aaa aaa aaa @@ -106224,7 +107456,7 @@ bVu bvB aaU aby -opd +bsz aaa aaa aaa @@ -106481,7 +107713,7 @@ bVA btT aaU aby -opd +bsz aaa aaa aaa @@ -106738,8 +107970,8 @@ bXp btT aaU abH -aZp -kxL +bAA +bMK aZp ceq cet @@ -106996,7 +108228,7 @@ bvB bWq acY adz -opd +bsz aaa aaU cdt @@ -107253,7 +108485,7 @@ btT btT btT cjF -qnM +bMX cdt cdt cdt @@ -107510,7 +108742,7 @@ ccn ccA ccy aTl -opd +bsz cdG cer cew @@ -107767,7 +108999,7 @@ cco ccE btZ aTl -opd +bsz cdU ces ces @@ -107792,7 +109024,7 @@ csQ cqs cqG crt -csx +cdm ctl cuL cvd @@ -108024,7 +109256,7 @@ btT btT btT cjF -qnM +bMX cdt cdt cdt @@ -108281,7 +109513,7 @@ btT aaU aVt adN -opd +bsz aaa aaU cdt @@ -108538,7 +109770,7 @@ aaU aaU aTl qeq -rbJ +bPh guK hXk hXk @@ -108742,11 +109974,11 @@ aFr aKg ahO aml -aoy -aoy +abX +akd aoA awt -aoy +aDb aqL anB alS @@ -108795,7 +110027,7 @@ cuy cuD cuG eUF -opd +bsz aej agc agT @@ -108822,12 +110054,12 @@ bwR cBx cCR cdz -bPX +cPI cdJ cdM cdJ cdO -bRA +cPK bbY cIM bZl @@ -109000,10 +110232,10 @@ apv aiF amr aqL -abX +aoy aoD aoj -bEq +aDm aqL aji aKs @@ -109052,7 +110284,7 @@ aQJ aRZ aVK cxa -bsz +bPr sVC aNH bbQ @@ -109257,11 +110489,11 @@ apv ajb amt anH -akd +aAQ aoG bvp -aDm -aFP +aDF +aFk aHh aKB aNu @@ -109309,7 +110541,7 @@ aaU aSu aYU cxb -opd +bsz aej agC aoJ @@ -109336,12 +110568,12 @@ bEW bQF cah cdA -bRn +cPJ cdL cmv cdL cdQ -bVb +cPL bUD cIV coN @@ -109563,10 +110795,10 @@ aaa aaa aaa aaa -rTW -aTl -cdp -wPS +bgh +bGQ +bIT +bPX aaU atF atF @@ -109820,7 +111052,7 @@ aaa aaa aaa aaa -opd +bsz aTl cxc aaa @@ -110077,7 +111309,7 @@ aaa aaa aaa aaa -opd +bsz aTl cxc aaa @@ -110334,7 +111566,7 @@ aaa aWR aaa aaU -opd +bsz aTl cxc atF @@ -110591,7 +111823,7 @@ cgd bwW beE bwW -opd +bsz aTl cxc atF @@ -110625,7 +111857,7 @@ biQ bXf bkG cwP -cDh +ctn bob bib bXX @@ -110824,9 +112056,9 @@ aIN aMK aOc aSA -aVa -aWn -bsR +aTo +aTt +aTJ bsR bCG bCK @@ -110848,7 +112080,7 @@ cgX chC cik bwW -bGh +bsT bGQ bHe bHA @@ -111081,9 +112313,9 @@ aKj aVy aRx aSF -aHA +aTr arH -aIC +aVa aIK aKk aTU @@ -111340,7 +112572,7 @@ aND aWH aHx asc -aID +aWn bvG aKl bCQ @@ -111597,7 +112829,7 @@ bkT aWJ aHz btb -aID +aWn bvR bCI bDJ @@ -111854,14 +113086,14 @@ aci aXQ aHy bDc -aIF -aKi +aWw +aWy +aYm +aYD +aYE +aYF beQ -cnm -cAQ -cAS -buO -buR +bjw bwu bAd aMo @@ -112111,8 +113343,8 @@ aWX aZF anK aHz -aIG -aHA +aWx +aTr boA cAF bCL @@ -112136,7 +113368,7 @@ aMD arp bCk aqk -bIT +bRn qlJ qlJ bcG @@ -112393,9 +113625,9 @@ bwW ciV bwW aaU -bIY -bHg -bMK +bsT +bRo +bRp anr bcI bgw @@ -112652,10 +113884,10 @@ bwW aaU aaa aaa -bJv +bsz cJx cJF -bPh +bRA cJJ bsX cJM @@ -112909,11 +114141,11 @@ bwW aaU aaa aaa -bJv +bsz anr bcI sdp -bgw +bUX bgw uwK bhm @@ -113166,12 +114398,12 @@ bwW aaU aaa aaa -bJv +bsz anr bcI aXp -cwx -bTJ +bVb +cfx bhs bmm bcI @@ -113397,7 +114629,7 @@ aCJ bFn bFn aJd -aJj +bfH bdq bet bmu @@ -113423,7 +114655,7 @@ bwW aaU aaa aaa -bJv +bsz anr bcI bcI @@ -113680,13 +114912,13 @@ bwW aaU aaa aaa -bJv +bsz anr aaU aaa cwz aaa -bfW +jyu aaa aaa aaU @@ -113937,13 +115169,13 @@ bwW aMD bwW aaa -bIY -bMX -tpQ -xqa +bsT +bHe +bRo +bRp aaa cwD -bfW +jyu aaa aaa aaU @@ -114197,10 +115429,10 @@ bwW aaU bdR cJr -opd +bTJ aaa aaa -cwF +cPz aaa aaa aaU @@ -114222,11 +115454,11 @@ bUR cfO cja cja -cgt +boj cxq cxv bgf -bVj +brQ cxC bgq bhX @@ -114423,7 +115655,7 @@ aNy aSd aTq aVY -bfH +aJj aJd btm bdo @@ -114454,10 +115686,10 @@ cwv bAQ bAQ cJs -bPr -bRo +bUV +caf bam -cwG +cPA bam bYl bam @@ -114479,7 +115711,7 @@ cdx cga cgq cgq -cjb +bzw cxr cxw cxx @@ -114712,9 +115944,9 @@ bsu bsx cJt sVC -bRp +cdp sVC -bsT +cPB sVC bZp sVC @@ -114738,7 +115970,7 @@ bZd cfX ciP cjB -boj +cgt bcl bfc bgs @@ -114952,7 +116184,7 @@ aMA czU czY cAe -cAo +bFz cAs cAx bhU @@ -114973,11 +116205,11 @@ bRv bsD bww bsD -caf -bsD -bsD -bsD -bAA +cPE +cPF +cPF +cPF +cPG bBL bBL bCm @@ -115003,7 +116235,7 @@ cxC bhX biJ bjQ -cxT +ctu biZ btz bPm @@ -115263,7 +116495,7 @@ cxQ cxU cxW cxX -bPm +cPN clX bZu cmM @@ -115473,7 +116705,7 @@ aMB bzn bjz cgZ -bmS +bzH bJS bmW bmW @@ -115499,7 +116731,7 @@ bbT bbT bkm brV -bgh +cPH bfU bFD bgO @@ -115988,7 +117220,7 @@ bzn bwW bxF aMD -cih +bEL bAK bjz aMI @@ -116034,7 +117266,7 @@ bGC bpQ bpQ cOa -bYg +cPO cya cya cya @@ -116245,8 +117477,8 @@ bzn bwW byW bCB -ciX -cij +bIC +bVj cip cpE aaa @@ -116502,7 +117734,7 @@ bzn aMD bzh bwW -ciV +cih aMI aMI aMI @@ -116534,7 +117766,7 @@ bLu bVr cth cje -ctn +csv bcV bby bck @@ -117044,7 +118276,7 @@ bgk bbT bkd bbT -bUS +cea bVG cgn cje @@ -117055,13 +118287,13 @@ bcA bdM bdM cNA -bhP -biv -bjB -bjV +bhb +ciE +cmT cnB csh -ciE +cHV +cPM bjn btI buc @@ -117283,8 +118515,8 @@ bMY bMY bPB xoj -cwB -cwM +cwx +cPC cww cbN cww @@ -117314,9 +118546,9 @@ bdM bdM bhP biv -bjF -cqB -bXI +cDz +cDA +cDD bnX bjn bjn @@ -117540,8 +118772,8 @@ bMZ bMZ bPC uAY -cwB -bUV +cwF +cwM cww cge cww @@ -117793,12 +119025,12 @@ aaa bJv bMp cww -bNa +cpM bNa bPJ bRC -cfx -bUX +cwG +cPD bVE cbT cww @@ -117830,7 +119062,7 @@ ccv boS boI bqZ -ctu +cxT bMH btN buy @@ -118090,7 +119322,7 @@ cxR cxV cxV cxV -cxZ +cjb cxV cyb cyc @@ -118314,7 +119546,7 @@ qgO chO cpN bWG -cJo +cRg jiZ bhI cLY @@ -118349,7 +119581,7 @@ btd btd bDy bxR -btS +cxZ boI bBA bFh @@ -118582,7 +119814,7 @@ anr aaa aaU bfC -bhB +bUS bAv bPW cBz @@ -119377,7 +120609,7 @@ boI cre cow boI -bzw +cRa boI aaa aaa diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 713c5fe341..868ded69ed 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -52240,6 +52240,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/cable/white{ + icon_state = "0-4" + }, /turf/open/floor/plasteel/dark, /area/engine/transit_tube) "bLJ" = ( @@ -52257,6 +52260,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, /turf/open/floor/plasteel/dark, /area/engine/transit_tube) "bLK" = ( @@ -53546,9 +53552,6 @@ /turf/open/floor/plasteel/dark, /area/aisat) "bND" = ( -/obj/structure/cable/white{ - icon_state = "0-4" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -53562,6 +53565,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/cable/white{ + icon_state = "0-4" + }, /turf/open/floor/plasteel/dark, /area/aisat) "bNE" = ( @@ -56011,27 +56017,33 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "bRB" = ( -/obj/machinery/power/port_gen/pacman, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, /obj/structure/sign/warning/electricshock{ pixel_y = 32 }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "bRC" = ( -/obj/machinery/cell_charger, -/obj/structure/table/reinforced, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) @@ -57108,10 +57120,16 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "bTr" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, /obj/effect/turf_decal/stripes/line, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "bTs" = ( @@ -57123,6 +57141,9 @@ start_active = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "bTt" = ( diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm new file mode 100644 index 0000000000..a18d3ab68e --- /dev/null +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -0,0 +1,127550 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aab" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aac" = ( +/obj/machinery/camera{ + c_tag = "Bar"; + dir = 8 + }, +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aad" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"aaf" = ( +/obj/docking_port/stationary{ + dheight = 1; + dir = 8; + dwidth = 12; + height = 17; + id = "syndicate_ne"; + name = "northeast of station"; + width = 23 + }, +/turf/closed/mineral/random/snow/more_caves, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +"aah" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aai" = ( +/turf/closed/wall/r_wall, +/area/security/prison) +"aaj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/security/prison) +"aak" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/prison) +"aal" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/prison) +"aam" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/prison) +"aan" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/ambrosia, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/grass, +/area/security/prison) +"aao" = ( +/obj/machinery/hydroponics/soil, +/obj/item/plant_analyzer, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/turf/open/floor/grass, +/area/security/prison) +"aap" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/carrot, +/turf/open/floor/grass, +/area/security/prison) +"aaq" = ( +/obj/machinery/camera{ + c_tag = "Prison Common Room"; + network = list("ss13","prison") + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/sink{ + pixel_y = 20 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aar" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/glowshroom, +/turf/open/floor/grass, +/area/security/prison) +"aas" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aat" = ( +/turf/open/floor/plasteel, +/area/security/prison) +"aau" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel, +/area/security/prison) +"aav" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aaw" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/grass, +/area/security/prison) +"aax" = ( +/mob/living/simple_animal/mouse/brown/Tom, +/turf/open/floor/grass, +/area/security/prison) +"aay" = ( +/turf/open/floor/plating, +/area/security/prison) +"aaz" = ( +/obj/machinery/disposal/bin, +/obj/structure/sign/plaques/deempisi{ + pixel_x = -28; + pixel_y = -4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "barShutters"; + name = "bar shutters"; + pixel_x = 4; + pixel_y = 28 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/light_switch{ + name = "Bar Lights"; + pixel_x = -6; + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aaA" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel, +/area/security/prison) +"aaB" = ( +/obj/structure/window/reinforced, +/obj/machinery/hydroponics/soil, +/obj/item/seeds/potato, +/turf/open/floor/grass, +/area/security/prison) +"aaC" = ( +/obj/machinery/hydroponics/soil, +/obj/structure/window/reinforced, +/obj/item/seeds/tower, +/turf/open/floor/grass, +/area/security/prison) +"aaD" = ( +/obj/structure/window/reinforced, +/obj/machinery/hydroponics/soil, +/obj/item/seeds/grass, +/turf/open/floor/grass, +/area/security/prison) +"aaE" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aaF" = ( +/obj/structure/window/reinforced, +/obj/machinery/hydroponics/soil, +/obj/item/cultivator, +/turf/open/floor/grass, +/area/security/prison) +"aaG" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/vr_sleeper{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aaI" = ( +/obj/structure/bookcase, +/turf/open/floor/plasteel, +/area/security/prison) +"aaJ" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/security/prison) +"aaK" = ( +/obj/machinery/computer/arcade/battle{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aaL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"aaM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"aaN" = ( +/obj/structure/chair/sofa/right, +/turf/open/floor/plasteel, +/area/security/prison) +"aaO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"aaP" = ( +/obj/machinery/computer/cryopod{ + dir = 8; + pixel_x = 26 + }, +/obj/machinery/cryopod{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aaQ" = ( +/turf/closed/wall, +/area/security/warden) +"aaU" = ( +/obj/machinery/computer/arcade/orion_trail{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aaV" = ( +/obj/structure/table/wood, +/obj/item/storage/pill_bottle/dice, +/turf/open/floor/plasteel, +/area/security/prison) +"aaW" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/chair/comfy/brown{ + color = "#596479"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aaX" = ( +/obj/structure/window/reinforced, +/obj/machinery/cryopod{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aaY" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate/secure/weapon{ + desc = "A secure clothing crate."; + name = "formal uniform crate"; + req_access = "3" + }, +/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/warden/formal, +/obj/item/clothing/under/rank/security/head_of_security/formal, +/obj/item/clothing/suit/armor/navyblue, +/obj/item/clothing/suit/armor/navyblue, +/obj/item/clothing/suit/armor/navyblue, +/obj/item/clothing/suit/armor/navyblue, +/obj/item/clothing/suit/armor/navyblue, +/obj/item/clothing/suit/armor/vest/warden/navyblue, +/obj/item/clothing/suit/armor/hos/navyblue, +/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, +/obj/item/clothing/head/beret/sec/navyhos, +/turf/open/floor/plasteel/dark, +/area/security/main) +"aaZ" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/security/armory) +"abb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/security/execution/transfer) +"abc" = ( +/turf/closed/wall, +/area/security/execution/transfer) +"abd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/security/execution/transfer) +"abe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/execution/transfer) +"abf" = ( +/obj/machinery/vending/sustenance, +/turf/open/floor/plasteel, +/area/security/prison) +"abg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/security/execution/transfer) +"abh" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/security/prison) +"abi" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/item/soap/nanotrasen, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"abj" = ( +/obj/structure/bedsheetbin/color, +/obj/structure/table, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"abk" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"abl" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"abm" = ( +/turf/open/floor/plasteel/dark, +/area/security/main) +"abn" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/main) +"abo" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/main) +"abp" = ( +/turf/closed/wall, +/area/security/main) +"abq" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hos) +"abr" = ( +/obj/machinery/computer/security/hos, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"abt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"abu" = ( +/obj/machinery/door/poddoor{ + id = "executionspaceblast" + }, +/turf/open/floor/plating, +/area/security/execution/transfer) +"abv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"abw" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/flasher{ + id = "executionflash"; + pixel_y = 25 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"abx" = ( +/obj/machinery/camera/motion{ + c_tag = "Armory External Motion Sensor"; + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ai_monitored/security/armory) +"aby" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/security/execution/transfer) +"abz" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"abA" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"abB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"abC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"abD" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"abE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"abF" = ( +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"abG" = ( +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ai_monitored/security/armory) +"abH" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"abI" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"abJ" = ( +/obj/machinery/vending/wardrobe/sec_wardrobe, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"abK" = ( +/obj/structure/chair/stool, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "permabolt3"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_y = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/security/prison) +"abL" = ( +/obj/structure/chair/stool, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "permabolt2"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_y = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"abM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"abN" = ( +/obj/effect/landmark/secequipment, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/main) +"abO" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"abP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/security/main) +"abQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"abR" = ( +/obj/machinery/vending/security, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/main) +"abS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/main) +"abT" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"abU" = ( +/obj/item/book/manual/wiki/security_space_law, +/obj/structure/table/wood, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"abV" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Brig Equipment Room"; + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"abW" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"abX" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/tracker, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"abY" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aca" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"acb" = ( +/obj/machinery/sparker{ + id = "executionburn"; + pixel_x = 25 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"acc" = ( +/obj/structure/bed, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"acd" = ( +/turf/closed/wall, +/area/security/prison) +"ace" = ( +/obj/machinery/door/poddoor/preopen{ + id = "permacell3"; + name = "cell blast door" + }, +/obj/machinery/door/airlock/public/glass{ + id_tag = "permabolt3"; + name = "Cell 3" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel, +/area/security/prison) +"acf" = ( +/obj/machinery/door/poddoor/preopen{ + id = "permacell2"; + name = "cell blast door" + }, +/obj/machinery/door/airlock/public/glass{ + id_tag = "permabolt2"; + name = "Cell 2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel, +/area/security/prison) +"acg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "permacell1"; + name = "cell blast door" + }, +/obj/machinery/door/airlock/public/glass{ + id_tag = "permabolt1"; + name = "Cell 1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel, +/area/security/prison) +"ach" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restroom" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"aci" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"acj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"ack" = ( +/obj/structure/table/reinforced, +/obj/item/grenade/barrier{ + pixel_x = 4 + }, +/obj/item/grenade/barrier, +/obj/item/grenade/barrier{ + pixel_x = -4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/ai_monitored/security/armory"; + dir = 8; + name = "Armory APC"; + pixel_x = -24 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"acl" = ( +/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/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"acm" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"acn" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aco" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"acp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"acq" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"acr" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"acs" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/hos"; + dir = 8; + name = "Head of Security's Office APC"; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/bed/dogbed{ + desc = "A comfy-looking pet bed. You can even strap your pet in, in case the gravity turns off."; + name = "pet bed" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/mob/living/simple_animal/hostile/retaliate/bat/secbat{ + desc = "An adorable fruit bat with a cute little hat, may or may not have a reputation for biting out eyeballs, or at least that's what the HoS'd tell you."; + name = "Colonel Chomps" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"act" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"acu" = ( +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"acv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"acz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"acA" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"acB" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"acC" = ( +/obj/structure/bed, +/obj/machinery/camera{ + c_tag = "Prison Cell 3"; + network = list("ss13","prison") + }, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_y = 24; + prison_radio = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"acD" = ( +/obj/structure/chair/stool, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "permabolt1"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_y = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/security/prison) +"acE" = ( +/obj/structure/bed, +/obj/machinery/camera{ + c_tag = "Prison Cell 2"; + network = list("ss13","prison") + }, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_y = 24; + prison_radio = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"acF" = ( +/obj/machinery/light_switch{ + pixel_y = -23 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"acG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"acH" = ( +/obj/structure/bed, +/obj/machinery/camera{ + c_tag = "Prison Cell 1"; + network = list("ss13","prison") + }, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_y = 24; + prison_radio = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"acI" = ( +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast"; + name = "blast door" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/westright{ + dir = 1; + name = "Transfer Room"; + req_access_txt = "2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"acJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"acK" = ( +/obj/structure/mirror{ + pixel_x = 25 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"acL" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"acM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"acN" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"acO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"acP" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 30 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/main) +"acQ" = ( +/obj/structure/table/wood, +/obj/item/folder/red, +/obj/item/stamp/hos, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"acR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"acS" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"acT" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"acU" = ( +/obj/machinery/door/airlock/external{ + name = "Security External Airlock"; + req_access_txt = "63" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"acX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast"; + name = "blast door" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/security/execution/transfer) +"acY" = ( +/obj/structure/table, +/obj/item/paper, +/obj/item/pen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"acZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast"; + name = "blast door" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/security/execution/transfer) +"ada" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/flasher{ + id = "PCell 3"; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"adb" = ( +/obj/structure/table, +/obj/item/paper, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/security/prison) +"adc" = ( +/obj/machinery/flasher{ + id = "PCell 1"; + pixel_x = -28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"add" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/flasher{ + id = "PCell 2"; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ade" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"adf" = ( +/obj/structure/toilet/secret/prison{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"adg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"adh" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"adi" = ( +/obj/structure/rack, +/obj/item/gun/ballistic/shotgun/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/ballistic/shotgun/riot, +/obj/item/gun/ballistic/shotgun/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"adj" = ( +/obj/machinery/recharger, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"adk" = ( +/obj/machinery/recharger, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"adl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/dark, +/area/security/main) +"adm" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/secequipment, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/main) +"adn" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"ado" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"adp" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/item/radio/headset{ + desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; + name = "prisoner headset"; + prison_radio = 1 + }, +/obj/item/radio/headset{ + desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; + name = "prisoner headset"; + prison_radio = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"adq" = ( +/obj/machinery/computer/slot_machine{ + balance = 15; + money = 500; + pixel_x = -5 + }, +/obj/structure/sign/poster/contraband/robust_softdrinks{ + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"adr" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"ads" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Port Auxiliary Solar Array" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"adu" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"adB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"adC" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/razor, +/obj/item/toy/plush/borgplushie{ + desc = "A horrible abomination to God in plushie form. Legends say this is used to torture prisoners by repeatedly beating them in the head with it.. ..It feels sorta heavy."; + force = 1; + name = "dogborg plushie"; + throwforce = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"adD" = ( +/obj/machinery/button/flasher{ + id = "executionflash"; + pixel_x = 24; + pixel_y = 5 + }, +/obj/machinery/button/door{ + id = "executionspaceblast"; + name = "Vent to Space"; + pixel_x = 25; + pixel_y = -5; + req_access_txt = "7" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"adE" = ( +/obj/structure/table, +/obj/item/folder/red{ + pixel_x = 3 + }, +/obj/item/taperecorder{ + pixel_x = -3 + }, +/obj/item/assembly/flash/handheld, +/obj/item/reagent_containers/spray/pepper, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"adF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/security/prison) +"adG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/prison) +"adH" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Long-Term Cell 3"; + req_access_txt = "2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"adI" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Long-Term Cell 2"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"adJ" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Long-Term Cell 1"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"adK" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/machinery/camera{ + c_tag = "Brig EVA Storage"; + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"adL" = ( +/obj/machinery/suit_storage_unit/security, +/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/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"adM" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"adN" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Security's Desk"; + departmentType = 5; + name = "Head of Security RC"; + pixel_y = 30 + }, +/obj/item/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = -31 + }, +/obj/structure/table/wood, +/obj/item/storage/box/seccarts{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/item/storage/box/deputy, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"adO" = ( +/obj/machinery/computer/secure_data, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"adP" = ( +/obj/structure/rack, +/obj/item/gun/energy/e_gun{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/e_gun, +/obj/item/gun/energy/e_gun{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"adQ" = ( +/obj/machinery/computer/card/minor/hos, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"adR" = ( +/turf/closed/wall/r_wall, +/area/security/main) +"adS" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"adT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"adW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aea" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating, +/area/security/execution/transfer) +"aeb" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"aec" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/security/execution/transfer) +"aed" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/button/ignition{ + id = "executionburn"; + pixel_x = 24; + pixel_y = 5 + }, +/obj/machinery/button/door{ + id = "executionfireblast"; + name = "Transfer Area Lockdown"; + pixel_x = 25; + pixel_y = -5; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"aee" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"aef" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/table, +/obj/item/restraints/handcuffs, +/turf/open/floor/plasteel, +/area/security/prison) +"aeg" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/security/execution/transfer) +"aeh" = ( +/obj/machinery/button/door{ + id = "permacell3"; + name = "Cell 3 Lockdown"; + pixel_x = -4; + pixel_y = 25; + req_access_txt = "2" + }, +/obj/machinery/button/flasher{ + id = "PCell 3"; + pixel_x = 6; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aei" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aej" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aek" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen/prison{ + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ael" = ( +/obj/machinery/button/door{ + id = "permacell2"; + name = "Cell 2 Lockdown"; + pixel_x = -4; + pixel_y = 25; + req_access_txt = "2" + }, +/obj/machinery/button/flasher{ + id = "PCell 2"; + pixel_x = 6; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aem" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"aen" = ( +/obj/machinery/computer/security/telescreen/prison{ + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Prison Hallway"; + network = list("ss13","prison") + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aeo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aep" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"aeq" = ( +/obj/machinery/button/door{ + id = "permacell1"; + name = "Cell 1 Lockdown"; + pixel_x = -4; + pixel_y = 25; + req_access_txt = "2" + }, +/obj/machinery/button/flasher{ + id = "PCell 1"; + pixel_x = 6; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aer" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/power/apc{ + areastring = "/area/security/prison"; + dir = 4; + name = "Prison Wing APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aes" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 30 + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = -5 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"aet" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Equipment Room"; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"aeu" = ( +/obj/machinery/newscaster/security_unit{ + pixel_x = -30 + }, +/obj/machinery/camera{ + c_tag = "Head of Security's Office"; + dir = 4 + }, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"aev" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aew" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aex" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"aey" = ( +/obj/machinery/keycard_auth{ + pixel_x = 24; + pixel_y = 10 + }, +/obj/structure/table/wood, +/obj/item/radio/off, +/obj/item/taperecorder, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"aez" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/flashlight/lamp/green{ + on = 0; + pixel_x = -3; + pixel_y = 8 + }, +/obj/item/pen/fountain, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"aeA" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aeB" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/turf/open/floor/plasteel, +/area/security/main) +"aeC" = ( +/obj/machinery/camera{ + c_tag = "Security Escape Pod"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aeD" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/suit_storage_unit/hos, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"aeE" = ( +/obj/structure/closet/secure_closet/lethalshots, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aeF" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/firingpins{ + pixel_x = 6 + }, +/obj/item/storage/box/firingpins{ + pixel_x = -3 + }, +/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/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aeG" = ( +/obj/structure/cable, +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Port Auxiliary Solar Array" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"aeH" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/security/execution/transfer) +"aeI" = ( +/obj/structure/rack, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/item/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/tank/internals/anesthetic{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/tank/internals/oxygen/red{ + pixel_x = 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 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"aeJ" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plating, +/area/security/execution/transfer) +"aeK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"aeL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"aeM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aeN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + aiControlDisabled = 1; + name = "Prisoner Transfer Centre"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"aeO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aeP" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aeQ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aeR" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"aeS" = ( +/obj/structure/closet/secure_closet/brig, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/item/radio/headset{ + desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; + name = "prisoner headset"; + prison_radio = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aeT" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aeU" = ( +/obj/effect/landmark/start/security_officer, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aeV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aeW" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/chemimp{ + pixel_x = 6 + }, +/obj/item/storage/box/trackimp{ + pixel_x = -3 + }, +/obj/item/storage/lockbox/loyalty, +/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/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aeX" = ( +/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/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aeY" = ( +/obj/vehicle/ridden/secway, +/obj/item/key/security, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aeZ" = ( +/obj/structure/rack, +/obj/item/gun/energy/ionrifle, +/obj/item/gun/energy/temperature/security, +/obj/item/clothing/suit/armor/laserproof, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"afb" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"afc" = ( +/obj/structure/closet/secure_closet/contraband/armory, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"afd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"afe" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aff" = ( +/obj/effect/landmark/start/security_officer, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"afg" = ( +/obj/effect/landmark/start/security_officer, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"afh" = ( +/obj/effect/landmark/start/security_officer, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"afi" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/landmark/start/security_officer, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"afj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"afk" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/landmark/start/security_officer, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"afl" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"afm" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"afn" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"afo" = ( +/obj/structure/noticeboard{ + dir = 1; + pixel_y = -27 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"afq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/brig) +"afr" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel, +/area/security/main) +"afs" = ( +/obj/item/storage/secure/safe/HoS{ + pixel_x = 35 + }, +/obj/structure/closet/secure_closet/hos, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"aft" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating, +/area/security/execution/transfer) +"afu" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/execution/transfer) +"afv" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"afw" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + layer = 2.4 + }, +/obj/machinery/door/window/southleft{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Armory"; + req_access_txt = "2" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/security/execution/transfer) +"afx" = ( +/obj/machinery/light_switch{ + pixel_x = 25 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"afy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"afz" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"afA" = ( +/turf/closed/wall/r_wall, +/area/security/execution/transfer) +"afB" = ( +/obj/item/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"afC" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"afD" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel, +/area/security/main) +"afE" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"afF" = ( +/obj/structure/table, +/obj/item/assembly/signaler, +/obj/item/clothing/suit/straight_jacket, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"afG" = ( +/obj/structure/table, +/obj/item/storage/box/hug, +/obj/item/razor{ + pixel_x = -6 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"afH" = ( +/obj/structure/table/glass, +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/regular, +/obj/item/reagent_containers/glass/bottle/charcoal{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/reagent_containers/glass/bottle/epinephrine{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/reagent_containers/syringe{ + name = "steel point" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"afI" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"afJ" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 1; + pixel_y = -27 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"afK" = ( +/obj/structure/table/glass, +/obj/machinery/computer/med_data/laptop, +/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/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"afL" = ( +/obj/machinery/computer/operating, +/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/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"afM" = ( +/turf/open/floor/plasteel, +/area/security/brig) +"afN" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"afO" = ( +/obj/machinery/door/airlock/command{ + name = "Command Tool Storage"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"afP" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/command{ + name = "Command Tool Storage"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"afQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/security/main) +"afR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/main) +"afS" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Brig EVA Storage"; + req_access_txt = "3" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"afT" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"afU" = ( +/turf/open/floor/plasteel, +/area/security/main) +"afV" = ( +/obj/structure/table, +/obj/item/restraints/handcuffs, +/obj/item/assembly/timer, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"afW" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/main) +"afX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/start/head_of_security, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"afY" = ( +/obj/effect/landmark/start/security_officer, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"afZ" = ( +/obj/structure/table, +/obj/item/radio/off, +/obj/item/screwdriver{ + pixel_y = 10 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aga" = ( +/obj/structure/sign/warning/pods{ + pixel_x = 32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/main) +"agb" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"agc" = ( +/obj/structure/closet/emcloset, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"agd" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -30 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"age" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/range) +"agf" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal, +/obj/item/storage/box/bodybags, +/obj/item/pen, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"agg" = ( +/obj/structure/closet/secure_closet/injection, +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/security/execution/transfer"; + name = "Prisoner Transfer Centre"; + pixel_y = -27 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"agh" = ( +/obj/structure/table, +/obj/item/electropack, +/obj/item/screwdriver, +/obj/item/wrench, +/obj/item/clothing/head/helmet, +/obj/item/assembly/signaler, +/obj/machinery/light/small, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"agi" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"agj" = ( +/turf/closed/wall, +/area/security/brig) +"agk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"agl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/chair/sofa/right{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"agm" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"agn" = ( +/turf/closed/wall/r_wall, +/area/security/warden) +"ago" = ( +/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/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"agp" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel, +/area/security/brig) +"agq" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters/window{ + id = "armory1" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/processing) +"ags" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"agt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"agu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"agv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/processing) +"agw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "hos"; + name = "HoS Office Shutters"; + pixel_y = -25 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"agx" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"agy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"agz" = ( +/obj/structure/closet/secure_closet{ + name = "nonlethal ammunition"; + req_access = "list(3)" + }, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agA" = ( +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = 30 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"agB" = ( +/obj/structure/table, +/obj/item/assembly/flash/handheld, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"agC" = ( +/obj/machinery/holopad, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"agD" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"agE" = ( +/obj/structure/table, +/obj/item/storage/fancy/donut_box{ + pixel_y = 10 + }, +/obj/item/storage/fancy/donut_box, +/obj/item/storage/fancy/donut_box{ + pixel_y = -10 + }, +/turf/open/floor/plasteel, +/area/security/main) +"agF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"agG" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"agH" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agI" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agJ" = ( +/obj/machinery/flasher/portable, +/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/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agK" = ( +/obj/machinery/flasher/portable, +/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/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"agM" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/security/brig"; + dir = 1; + name = "Brig APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"agN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/courtroom) +"agO" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Brig Infirmary"; + req_access_txt = "2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"agP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"agQ" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/structure/closet/secure_closet/courtroom, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/item/gavelhammer, +/obj/machinery/atmospherics/pipe/simple/scrubbers, +/turf/open/floor/plasteel, +/area/security/courtroom) +"agR" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4; + pixel_x = -3 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agS" = ( +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"agU" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agV" = ( +/obj/machinery/button/door{ + id = "armory1"; + name = "Armory Shutters"; + pixel_y = -26; + req_access_txt = "3" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters/window{ + id = "armory1" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agW" = ( +/obj/structure/rack, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/item/storage/box/handcuffs{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/storage/box/handcuffs{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/camera/motion{ + c_tag = "Armory Motion Sensor"; + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agX" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters/window{ + id = "armory2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agY" = ( +/obj/structure/table/glass, +/obj/item/storage/box/bodybags, +/obj/item/reagent_containers/blood, +/obj/item/reagent_containers/spray/cleaner, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"agZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"aha" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"ahb" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"ahc" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahd" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/book/manual/wiki/security_space_law, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"ahe" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortType = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"ahg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start/security_officer, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahh" = ( +/obj/item/paper_bin/bundlenatural{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/paper_bin{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/pen/fountain, +/obj/item/folder/red, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/pen, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/security/main) +"ahi" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortType = 7 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahj" = ( +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Security Delivery"; + req_access_txt = "1" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/security/main) +"ahk" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"ahl" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "Security" + }, +/obj/structure/plasticflaps/opaque, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/security/main) +"ahm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"ahn" = ( +/turf/closed/wall, +/area/maintenance/fore/secondary) +"aho" = ( +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ahp" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ahq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/storage/box/prisoner, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"ahr" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"ahs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/effect/landmark/start/assistant, +/obj/structure/chair/sofa/right, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aht" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"ahu" = ( +/obj/structure/table/optable, +/obj/item/storage/backpack/duffelbag/sec/surgery, +/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/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"ahv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/brig) +"ahw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/brig) +"ahx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/brig) +"ahy" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"ahz" = ( +/obj/structure/tank_dispenser/oxygen, +/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/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"ahA" = ( +/obj/structure/rack, +/obj/structure/window/reinforced, +/obj/item/storage/box/teargas{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/storage/box/flashbangs{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ahB" = ( +/obj/structure/rack, +/obj/item/gun/energy/e_gun/dragnet{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/gun/energy/e_gun/dragnet{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ahC" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/closet/wardrobe/white, +/obj/item/clothing/under/suit/waiter, +/obj/item/clothing/under/suit/waiter, +/obj/item/clothing/under/suit/waiter, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"ahD" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/processing) +"ahE" = ( +/obj/structure/closet/secure_closet/brig, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/item/radio/headset{ + desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; + name = "prisoner headset"; + prison_radio = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ahF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahG" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/window/westright{ + name = "Brig Operations"; + req_one_access_txt = "4; 1" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ahH" = ( +/obj/structure/disposalpipe/junction/yjunction{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahK" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ahL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahM" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahN" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/main"; + dir = 4; + name = "Security Office APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4; + pixel_y = 5 + }, +/obj/structure/chair/sofa/left{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"ahP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/wardrobe/mixed, +/obj/item/clothing/under/costume/kilt, +/obj/item/clothing/under/costume/kilt, +/obj/item/clothing/under/dress/skirt/purple, +/obj/item/clothing/head/beret, +/obj/item/clothing/head/beret, +/obj/item/clothing/head/beret, +/obj/structure/sign/poster/official/fashion{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"ahQ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ahR" = ( +/obj/structure/rack, +/obj/item/gun/energy/laser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/laser, +/obj/item/gun/energy/laser{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ahS" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/machinery/camera{ + c_tag = "Brig Infirmary"; + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"ahT" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"ahU" = ( +/obj/machinery/computer/shuttle/labor{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"ahV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/computer/security/labor{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/processing) +"ahW" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/head/helmet/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/shield/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/shield/riot, +/obj/item/shield/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ahX" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ahY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/mob/living/simple_animal/bot/secbot{ + arrest_type = 1; + health = 45; + icon_state = "secbot1"; + idcheck = 1; + name = "Sergeant-at-Armsky"; + weaponscheck = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ahZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"aia" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/secure_closet/hydroponics, +/obj/structure/sign/poster/official/hydro_ad{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aib" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aic" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aid" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"aie" = ( +/obj/structure/bed, +/obj/machinery/iv_drip, +/obj/item/bedsheet/medical, +/obj/effect/turf_decal/tile/neutral, +/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/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aif" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aig" = ( +/obj/structure/table, +/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/storage/toolbox/electrical{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/storage/toolbox/drone{ + pixel_x = 2; + pixel_y = -2 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aih" = ( +/obj/machinery/button/door{ + id = "armory2"; + name = "Armory Shutters"; + pixel_y = -26; + req_access_txt = "3" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters/window{ + id = "armory2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aii" = ( +/obj/machinery/rnd/production/techfab/department/security, +/obj/effect/turf_decal/delivery, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aij" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/brig) +"aik" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/table, +/obj/item/gun/energy/laser/practice, +/obj/machinery/syndicatebomb/training, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ail" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/range) +"aim" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/brig) +"ain" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001; + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aio" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aip" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aiq" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"air" = ( +/obj/structure/chair, +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"ais" = ( +/obj/structure/filingcabinet, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ait" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aiu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aiv" = ( +/obj/structure/rack, +/obj/item/gun/energy/e_gun/advtaser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/e_gun/advtaser, +/obj/item/gun/energy/e_gun/advtaser{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aiw" = ( +/obj/machinery/light_switch{ + pixel_y = -23 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/chair/sofa/left{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aix" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aiy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aiz" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/chair/sofa{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aiA" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aiB" = ( +/obj/machinery/vending/kink, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/poster/official/fashion{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aiC" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel, +/area/security/main) +"aiD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"aiE" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/radio/intercom{ + pixel_y = 20 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"aiF" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/gulag_item_reclaimer{ + pixel_x = 32 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#d1dfff" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/camera{ + c_tag = "Security Docking"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"aiG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aiH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Brig Central"; + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aiI" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aiJ" = ( +/obj/structure/reagent_dispensers/watertank/high, +/obj/structure/sign/poster/official/hydro_ad{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aiK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"aiL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"aiM" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"aiN" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"aiO" = ( +/obj/machinery/shower{ + dir = 1 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/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/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aiP" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/obj/structure/sign/poster/official/medical_green_cross{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"aiQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/brig) +"aiR" = ( +/obj/structure/closet/l3closet/security, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aiS" = ( +/obj/structure/sign/warning/securearea{ + pixel_y = -32 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aiT" = ( +/turf/closed/wall, +/area/security/processing) +"aiU" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/processing) +"aiV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aiW" = ( +/obj/structure/closet/bombcloset/security, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aiX" = ( +/turf/closed/wall/r_wall, +/area/security/brig) +"aiY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aiZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"aja" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/shutters/window{ + id = "armory3" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ajb" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/shutters/window{ + id = "armory3" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ajc" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajd" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel, +/area/security/vacantoffice/b) +"aje" = ( +/obj/machinery/door/airlock/security{ + name = "Armory"; + req_access_txt = "3" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ajf" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"ajg" = ( +/obj/machinery/computer/secure_data, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"ajh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/sign/poster/official/pda_ad800{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aji" = ( +/obj/structure/chair{ + name = "Judge" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ajj" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/obj/machinery/camera{ + c_tag = "Courtroom North" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ajk" = ( +/obj/structure/chair{ + name = "Judge" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ajl" = ( +/obj/structure/chair{ + name = "Judge" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ajm" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"ajn" = ( +/turf/open/floor/plasteel, +/area/security/courtroom) +"ajo" = ( +/turf/closed/wall, +/area/security/courtroom) +"ajp" = ( +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"ajr" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"ajs" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sign/poster/official/pda_ad600{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"ajt" = ( +/obj/machinery/camera{ + c_tag = "Vacant Office B"; + dir = 1 + }, +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel, +/area/security/vacantoffice/b) +"aju" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ajv" = ( +/obj/machinery/computer/med_data{ + dir = 3 + }, +/obj/structure/sign/poster/official/medical_green_cross{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"ajw" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ajx" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ajy" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ajz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/brig) +"ajA" = ( +/obj/effect/landmark/start/security_officer, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ajB" = ( +/obj/structure/sign/poster/official/medical_green_cross{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ajC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajD" = ( +/obj/effect/spawner/lootdrop/keg, +/obj/structure/sign/poster/contraband/scum{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"ajE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ajF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajG" = ( +/obj/structure/table, +/obj/item/kitchen/rollingpin, +/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/food/condiment/sugar, +/obj/structure/sign/poster/contraband/scum{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"ajH" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ajI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajL" = ( +/obj/machinery/computer/security, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"ajM" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/structure/sign/poster/contraband/scum{ + pixel_y = 32 + }, +/obj/structure/sign/poster/contraband/scum{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ajN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajO" = ( +/obj/structure/table/wood, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (Court)" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ajP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ajQ" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ajR" = ( +/obj/structure/table/wood, +/obj/item/gavelblock, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ajS" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"ajT" = ( +/obj/structure/chair{ + dir = 8; + name = "Defense" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ajU" = ( +/obj/machinery/door/window/southleft{ + name = "Court Cell"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"ajV" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"ajW" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"ajX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajY" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/window/westleft{ + name = "Brig Operations"; + req_one_access_txt = "4; 1" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"aka" = ( +/obj/structure/closet/secure_closet/bar{ + req_access_txt = "25" + }, +/obj/item/clothing/under/suit/waiter, +/obj/item/clothing/under/suit/waiter, +/obj/item/clothing/under/suit/waiter, +/obj/item/gun/ballistic/revolver/doublebarrel, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"akb" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"akc" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"akd" = ( +/obj/effect/landmark/start/security_officer, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ake" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/security/brig) +"akg" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/security/brig) +"akh" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/table, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel, +/area/security/main) +"aki" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/main) +"akj" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Security Office"; + req_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/main) +"akl" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akm" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"akn" = ( +/obj/structure/table/wood, +/obj/item/folder/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ako" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akp" = ( +/obj/machinery/door_timer{ + id = "Cell 1"; + name = "Cell 1"; + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Brig West"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/brig) +"akr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/computer/security/telescreen/interrogation{ + dir = 1; + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aks" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"akt" = ( +/obj/machinery/chem_master/condimaster{ + name = "HoochMaster 2000" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aku" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"akx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aky" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"akz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akA" = ( +/obj/structure/chair{ + dir = 8; + name = "Defense" + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"akB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"akC" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/security/brig) +"akE" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/crew_quarters/fitness/pool) +"akF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akG" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/processing) +"akH" = ( +/obj/machinery/holopad, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"akI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"akJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Brig"; + req_access_txt = "63; 42" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"akK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/engine, +/area/science/xenobiology) +"akL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/fore) +"akM" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"akN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 6 + }, +/turf/open/floor/plasteel, +/area/security/main) +"akP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/engine, +/area/science/xenobiology) +"akQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall, +/area/security/brig) +"akR" = ( +/obj/machinery/camera{ + c_tag = "Security Office"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/table, +/obj/item/storage/box/donkpockets, +/turf/open/floor/plasteel, +/area/security/main) +"akS" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/security/main) +"akT" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"akU" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/security/brig) +"akV" = ( +/obj/machinery/door/window/southleft{ + dir = 1; + name = "Test Chamber"; + req_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/engine, +/area/science/xenobiology) +"akW" = ( +/obj/machinery/door/window/southleft{ + name = "Test Chamber"; + req_access_txt = "55" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"akX" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/warden) +"akZ" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Brig Control"; + req_access_txt = "3" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ala" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/warden) +"alb" = ( +/obj/structure/chair{ + dir = 4; + name = "Prosecution" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"alc" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ald" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ale" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"alf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"alg" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"alh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"ali" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"alj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"alk" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"all" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"alm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"aln" = ( +/obj/effect/landmark/start/scientist, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/black, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"alo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/warden) +"alp" = ( +/turf/open/floor/plating, +/area/security/processing) +"alq" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Evidence Storage"; + req_access_txt = "4" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"alr" = ( +/obj/machinery/computer/camera_advanced/xenobio{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"als" = ( +/obj/machinery/door_timer{ + id = "Cell 3"; + name = "Cell 3"; + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"alt" = ( +/obj/machinery/door/airlock/security/glass{ + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"alu" = ( +/obj/machinery/nuclearbomb/selfdestruct, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"alv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/brig) +"alw" = ( +/obj/machinery/door/airlock/security/glass{ + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"alx" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_y = 4 + }, +/obj/item/folder/white{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"aly" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"alz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"alA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"alB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"alC" = ( +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/security/brig) +"alD" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/courtroom) +"alE" = ( +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_x = -30 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/computer/security{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24; + pixel_y = 28 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"alF" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"alG" = ( +/obj/structure/chair{ + dir = 4; + name = "Prosecution" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"alH" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"alI" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"alJ" = ( +/obj/item/beacon, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"alK" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"alL" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/power/apc{ + areastring = "/area/security/courtroom"; + dir = 8; + name = "Courtroom APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"alM" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"alN" = ( +/obj/machinery/computer/prisoner/management, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"alO" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"alP" = ( +/turf/closed/wall, +/area/maintenance/starboard/fore) +"alQ" = ( +/obj/machinery/power/solar_control{ + id = "auxsolareast"; + name = "Port Bow Solar Control" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"alR" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/port/fore) +"alS" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"alT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"alU" = ( +/turf/closed/wall, +/area/maintenance/port/fore) +"alV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"alW" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"alX" = ( +/obj/machinery/button/door{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_x = 24; + pixel_y = 4; + req_access_txt = "24" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"alY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"alZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/brig) +"ama" = ( +/mob/living/simple_animal/sloth/paperwork, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"amb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/warden) +"amc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"amd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"ame" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"amf" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/brig) +"amg" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"amh" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"ami" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"amj" = ( +/obj/machinery/door_timer{ + id = "Cell 2"; + name = "Cell 2"; + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"amk" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aml" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"amm" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/brig) +"amn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Cell Interior Shutters"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/brig) +"amo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"amp" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"amq" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"amr" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/courtroom) +"ams" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/courtroom) +"amt" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Courtroom"; + req_access_txt = "42" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"amu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"amv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"amw" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"amx" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/brig) +"amy" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"amz" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/terminal, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"amA" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"amB" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Cell Interior Shutters"; + name = "brig shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/brig) +"amC" = ( +/turf/open/floor/plating, +/area/maintenance/port/fore) +"amD" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"amE" = ( +/obj/structure/bed, +/obj/effect/landmark/xeno_spawn, +/obj/item/bedsheet, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"amF" = ( +/obj/machinery/computer/slot_machine{ + balance = 15; + money = 500 + }, +/obj/item/coin/iron, +/obj/item/coin/diamond, +/obj/item/coin/diamond, +/obj/item/coin/diamond, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"amG" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"amH" = ( +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"amI" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"amJ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"amK" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall, +/area/security/processing) +"amL" = ( +/turf/open/floor/plasteel/dark, +/area/security/brig) +"amM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/security{ + name = "Labor Shuttle"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/security/processing) +"amN" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/machinery/door/window/brigdoor{ + dir = 4; + name = "Reception Desk"; + req_access_txt = "3" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Brig Control"; + name = "brig shutters" + }, +/obj/machinery/door/window/southright{ + dir = 8; + name = "Reception Desk"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amO" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"amP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"amQ" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"amR" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"amS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/security/brig) +"amT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"amU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amV" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amW" = ( +/obj/effect/landmark/start/warden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amX" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"amY" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"amZ" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"ana" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"anb" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"anc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"and" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"ane" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"anf" = ( +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ang" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/port/fore"; + dir = 8; + name = "Port Bow Solar APC"; + pixel_x = -25; + pixel_y = 3 + }, +/obj/machinery/camera{ + c_tag = "Fore Port Solar Control"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"anh" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"ani" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"anj" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ank" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"anl" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"anm" = ( +/obj/item/trash/sosjerky, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ann" = ( +/obj/item/electronics/airalarm, +/obj/item/circuitboard/machine/seed_extractor, +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ano" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"anp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"anq" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"anr" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/security/warden) +"ans" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ant" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Evidence Storage"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"anu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"anv" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"anw" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"anx" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"any" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"anz" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"anA" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"anB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 2"; + name = "Cell 2 Locker" + }, +/obj/item/radio/headset{ + desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; + name = "prisoner headset"; + prison_radio = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"anC" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/security/courtroom) +"anD" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"anE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"anF" = ( +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"anG" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/fitness/pool"; + name = "Pool APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"anH" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/maintenance/solars/port/fore) +"anI" = ( +/obj/machinery/door/airlock/engineering{ + name = "Port Bow Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"anJ" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"anK" = ( +/obj/effect/decal/cleanable/egg_smudge, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"anL" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"anM" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_x = -27; + pixel_y = -27; + prison_radio = 1 + }, +/obj/machinery/flasher{ + id = "Cell 2"; + pixel_x = -24; + pixel_y = -36 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/bed, +/obj/item/bedsheet/blue, +/turf/open/floor/plasteel, +/area/security/brig) +"anN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"anO" = ( +/obj/item/stack/cable_coil/random, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"anP" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/brig) +"anQ" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"anR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"anS" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"anT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"anU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Courtroom" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"anV" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"anW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"anX" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/obj/machinery/camera{ + c_tag = "Courtroom South"; + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"anY" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"anZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aoa" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aob" = ( +/obj/machinery/light_switch{ + pixel_x = -20 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/wood, +/area/lawoffice) +"aoc" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/wood, +/area/lawoffice) +"aod" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fore/secondary) +"aoe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/maintenance/fore/secondary) +"aof" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard/fore) +"aog" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"aoh" = ( +/obj/machinery/power/solar_control{ + id = "auxsolareast"; + name = "Starboard Bow Solar Control" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"aoi" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/item/multitool, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"aoj" = ( +/obj/machinery/camera{ + c_tag = "Fore Port Solar Access" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aok" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aol" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aom" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aon" = ( +/obj/structure/chair, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aoo" = ( +/obj/structure/rack, +/obj/item/circuitboard/machine/monkey_recycler, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aop" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/mob/living/simple_animal/slime, +/turf/open/floor/engine, +/area/science/xenobiology) +"aoq" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"aor" = ( +/obj/structure/table, +/obj/item/restraints/handcuffs, +/obj/item/taperecorder, +/obj/item/folder/red, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aos" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio7"; + name = "containment blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"aot" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aou" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/security/brig) +"aov" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aow" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aox" = ( +/obj/machinery/camera{ + c_tag = "Fore Primary Hallway West"; + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aoy" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=EVA"; + location = "Security" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aoz" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/sign/departments/security{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aoA" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aoB" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aoC" = ( +/obj/effect/turf_decal/tile/red, +/obj/item/storage/box/drinkingglasses, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aoD" = ( +/obj/machinery/camera{ + c_tag = "Fore Primary Hallway East"; + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aoE" = ( +/obj/effect/turf_decal/tile/red, +/obj/item/storage/box/cups, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aoF" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/chem_dispenser/drinks, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aoG" = ( +/obj/structure/table, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"aoH" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/security_space_law{ + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"aoI" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aoJ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aoK" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aoL" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Air Out" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aoM" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"aoN" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"aoO" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/terminal, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"aoP" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aoQ" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aoR" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aoS" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aoT" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aoU" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/obj/structure/bed, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aoV" = ( +/obj/structure/sign/warning/securearea{ + pixel_x = 32 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aoW" = ( +/obj/structure/table, +/obj/item/stamp, +/obj/item/poster/random_official, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aoX" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aoY" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24; + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aoZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Brig Control"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/warden) +"apa" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"apb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/mob/living/simple_animal/slime, +/turf/open/floor/engine, +/area/science/xenobiology) +"apc" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"apd" = ( +/turf/closed/wall, +/area/security/detectives_office) +"ape" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/abandoned{ + abandoned = 0; + name = "Vacant Office B"; + req_access_txt = "32" + }, +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"apf" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/security/detectives_office) +"apg" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aph" = ( +/turf/closed/wall, +/area/lawoffice) +"api" = ( +/obj/machinery/door/airlock{ + name = "Law Office"; + req_access_txt = "38" + }, +/turf/open/floor/plasteel, +/area/lawoffice) +"apj" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"apk" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"apl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/maintenance/fore/secondary) +"apm" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"apn" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/closed/wall, +/area/maintenance/fore/secondary) +"apo" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/maintenance/fore/secondary) +"app" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"apq" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"apr" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/fore/secondary"; + dir = 1; + name = "Fore Maintenance APC"; + pixel_y = 24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aps" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"apt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"apu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/fitness"; + name = "Fitness Room APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"apv" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/machinery/recharger{ + pixel_x = 6; + pixel_y = 3 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"apw" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"apx" = ( +/obj/machinery/door/airlock/atmos/abandoned{ + name = "Atmospherics Maintenance"; + req_access_txt = "12;24" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"apy" = ( +/obj/item/wrench, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"apz" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"apA" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/starboard/fore"; + dir = 8; + name = "Starboard Bow Solar APC"; + pixel_x = -25; + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"apB" = ( +/obj/machinery/camera{ + c_tag = "Fore Starboard Solars"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"apC" = ( +/turf/closed/wall/r_wall, +/area/maintenance/starboard/fore) +"apD" = ( +/obj/structure/closet/wardrobe/mixed, +/obj/item/clothing/shoes/jackboots, +/obj/item/coin/silver, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"apE" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"apF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"apG" = ( +/obj/machinery/portable_atmospherics/canister/water_vapor, +/turf/open/floor/plasteel, +/area/janitor) +"apH" = ( +/obj/machinery/computer/crew{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "outerbrig"; + name = "Brig Exterior Doors Control"; + normaldoorcontrol = 1; + pixel_x = -24; + pixel_y = -40; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "innerbrig"; + name = "Brig Interior Doors Control"; + normaldoorcontrol = 1; + pixel_x = -24; + pixel_y = -24; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"apI" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"apJ" = ( +/turf/closed/wall, +/area/construction/mining/aux_base) +"apK" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"apL" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"apM" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"apN" = ( +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"apO" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"apP" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"apQ" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"apR" = ( +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + 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/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"apS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"apT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/closed/wall/r_wall, +/area/security/warden) +"apU" = ( +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"apV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/construction) +"apW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"apX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Brig Control"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/warden) +"apY" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"apZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/wood, +/area/lawoffice) +"aqa" = ( +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"aqb" = ( +/obj/structure/rack, +/obj/item/storage/briefcase, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/wood, +/area/lawoffice) +"aqc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/fore/secondary) +"aqd" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aqe" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aqf" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aqg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aqh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aqi" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aqj" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aqk" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/dorms"; + name = "Dormitory APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aql" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aqm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aqn" = ( +/obj/structure/bed, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/button/door{ + id = "Dorm4"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"aqo" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"aqp" = ( +/obj/structure/rack, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/tank/internals/oxygen, +/obj/item/clothing/mask/gas, +/obj/item/extinguisher, +/obj/item/clothing/head/hardhat/red, +/obj/item/clothing/glasses/meson, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aqq" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aqr" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + dir = 1; + name = "Reception Desk"; + req_access_txt = "3" + }, +/obj/machinery/door/window/southleft{ + name = "Reception Desk"; + req_access_txt = "63" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Brig Control"; + name = "brig shutters" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aqs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Pool" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"aqt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Brig Control"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/warden) +"aqu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"aqv" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aqw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + name = "Starboard Bow Solar Access"; + req_access_txt = "10" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"aqx" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard/fore) +"aqy" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aqz" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aqA" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aqB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"aqC" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aqD" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#d1dfff" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aqE" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aqF" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aqG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"aqH" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#d1dfff" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aqI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"aqJ" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aqK" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"aqL" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aqM" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aqN" = ( +/obj/structure/closet/secure_closet/warden, +/obj/structure/sign/poster/official/ion_rifle{ + pixel_y = 32 + }, +/obj/structure/sign/poster/official/twelve_gauge{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom{ + pixel_x = 32; + pixel_y = 20 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aqO" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aqP" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/port/fore"; + dir = 1; + name = "Port Bow Maintenance APC"; + pixel_x = -1; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aqQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/fore) +"aqR" = ( +/turf/open/floor/plating, +/area/maintenance/fore) +"aqS" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"aqT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Security Maintenance"; + req_access_txt = "1" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aqU" = ( +/obj/item/paper/fluff/jobs/security/beepsky_mom, +/turf/open/floor/plating, +/area/maintenance/fore) +"aqV" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"aqW" = ( +/turf/open/floor/carpet, +/area/security/detectives_office) +"aqX" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/chair, +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"aqY" = ( +/obj/structure/table/wood, +/obj/item/pen, +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"aqZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"ara" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/requests_console{ + department = "Law office"; + pixel_x = -32 + }, +/obj/machinery/vending/wardrobe/law_wardrobe, +/turf/open/floor/wood, +/area/lawoffice) +"arb" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/pen/red, +/turf/open/floor/wood, +/area/lawoffice) +"arc" = ( +/obj/structure/plasticflaps, +/turf/open/floor/plating, +/area/maintenance/fore) +"ard" = ( +/obj/machinery/door/poddoor/preopen{ + id = "lawyer_blast"; + name = "privacy door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/lawoffice) +"are" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/lawoffice) +"arf" = ( +/turf/closed/wall, +/area/crew_quarters/dorms) +"arg" = ( +/obj/item/bedsheet/red, +/mob/living/simple_animal/bot/secbot/beepsky{ + name = "Officer Beepsky" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"arh" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Dormitories Maintenance"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"ari" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"arj" = ( +/turf/closed/wall, +/area/crew_quarters/fitness) +"ark" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"arl" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/potato{ + name = "\improper Beepsky's emergency battery" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"arm" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"arn" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/processing"; + dir = 8; + name = "Labor Shuttle Dock APC"; + pixel_x = -24 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aro" = ( +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/holodeck/rec_center) +"arp" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"arq" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"arr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ars" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"art" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Fore Starboard Solar Access" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aru" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"arv" = ( +/obj/structure/table, +/obj/item/pen, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"arw" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"arx" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ary" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/warden"; + name = "Brig Control APC"; + pixel_y = -24 + }, +/obj/machinery/button/door{ + id = "Secure Gate"; + name = "Cell Shutters"; + pixel_x = 6; + pixel_y = -40; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "Prison Gate"; + name = "Prison Wing Lockdown"; + pixel_x = -6; + pixel_y = -40; + req_access_txt = "2" + }, +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/light, +/obj/structure/cable, +/obj/machinery/camera{ + c_tag = "Brig Control"; + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"arz" = ( +/obj/item/coin/gold, +/obj/item/coin/iron, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"arA" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/coin/plasma, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"arB" = ( +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry) +"arC" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"arD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 3"; + name = "Cell 3 Locker" + }, +/obj/item/radio/headset{ + desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; + name = "prisoner headset"; + prison_radio = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"arE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"arF" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/port/fore) +"arG" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/port/fore) +"arH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"arI" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"arJ" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"arK" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"arL" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"arM" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"arN" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"arO" = ( +/obj/item/clothing/gloves/color/rainbow, +/obj/item/clothing/head/soft/rainbow, +/obj/item/clothing/shoes/sneakers/rainbow, +/obj/item/clothing/under/color/rainbow, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"arP" = ( +/turf/closed/wall, +/area/maintenance/fore) +"arQ" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"arR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"arS" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"arT" = ( +/turf/open/floor/plasteel, +/area/security/vacantoffice/b) +"arU" = ( +/obj/structure/rack, +/turf/open/floor/plasteel, +/area/security/vacantoffice/b) +"arV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/filingcabinet/employment, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/wood, +/area/lawoffice) +"arW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/lawoffice) +"arX" = ( +/obj/structure/table/wood, +/obj/item/folder/blue, +/obj/item/folder/blue, +/obj/item/folder/blue, +/obj/item/folder/blue, +/obj/item/stamp/law, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/lawoffice) +"arY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/lawoffice) +"arZ" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start/lawyer, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/wood, +/area/lawoffice) +"asa" = ( +/obj/machinery/status_display/evac{ + pixel_x = 32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"asb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Brig Evidence Storage"; + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"asc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"asd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/dorms) +"ase" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"asf" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"asg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/warning/fire{ + desc = "A sign that states the labeled room's number."; + dir = 4; + icon_state = "roomnum"; + name = "Room Number 3"; + pixel_x = -30; + pixel_y = -7 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"ash" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"asi" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"asj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"ask" = ( +/obj/item/flashlight/lamp/green{ + pixel_x = -2; + pixel_y = 15 + }, +/obj/structure/dresser, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"asl" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"asm" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"asn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"aso" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Law Office Maintenance"; + req_access_txt = "38" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"asp" = ( +/obj/machinery/camera{ + c_tag = "Brig Interrogation"; + dir = 8; + network = list("interrogation") + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"asq" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light_switch{ + pixel_y = -23 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/machinery/button/door{ + id = "Secure Brig Control"; + name = "Brig Control Shutters"; + pixel_x = 6; + pixel_y = -40; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "Cell Interior Shutters"; + name = "Cell Interior Shutters"; + pixel_x = -6; + pixel_y = -40; + req_access_txt = "2" + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"asr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/science/xenobiology) +"ass" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Airlock" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/security/processing) +"ast" = ( +/obj/structure/bed, +/obj/item/bedsheet/random, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"asu" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"asv" = ( +/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{ + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"asw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"asx" = ( +/obj/structure/door_assembly/door_assembly_mai, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"asy" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Firefighting equipment"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"asz" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/donut, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"asA" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"asB" = ( +/turf/closed/wall, +/area/maintenance/department/electrical) +"asC" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/xenobiology) +"asD" = ( +/obj/structure/table/wood, +/mob/living/simple_animal/pet/fox/Renault, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"asE" = ( +/turf/closed/wall, +/area/hallway/secondary/entry) +"asF" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"asH" = ( +/obj/structure/closet/toolcloset, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"asI" = ( +/obj/structure/closet/toolcloset, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"asJ" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"asK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"asN" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"asO" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"asP" = ( +/obj/structure/chair/stool, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore) +"asQ" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/fore) +"asR" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/structure/closet/secure_closet/chemical, +/turf/open/floor/plating, +/area/maintenance/fore) +"asS" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/fore) +"asW" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"asX" = ( +/obj/structure/sign/warning/securearea{ + pixel_y = -32 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"asY" = ( +/obj/docking_port/stationary/random{ + dir = 4; + id = "pod_lavaland3"; + name = "lavaland" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"ata" = ( +/turf/open/floor/wood, +/area/lawoffice) +"atb" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/stack/rods/fifty, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"atc" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start/lawyer, +/turf/open/floor/wood, +/area/lawoffice) +"atd" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ate" = ( +/obj/effect/landmark/xeno_spawn, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"atf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"atg" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm4"; + name = "Room Three" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"ath" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"ati" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"atj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"atl" = ( +/obj/item/stack/rods, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"atm" = ( +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"atn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/maintenance/port/fore) +"ato" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 2; + height = 5; + id = "laborcamp_home"; + name = "fore bay 1"; + roundstart_template = /datum/map_template/shuttle/labour/box; + width = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"atp" = ( +/obj/machinery/door/airlock/external{ + name = "Construction Zone" + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"atq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/port/fore) +"atr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ats" = ( +/turf/open/floor/plating/airless, +/area/icemoon/surface/outdoors) +"att" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"atv" = ( +/obj/structure/table, +/obj/item/shard, +/obj/item/shard{ + icon_state = "medium" + }, +/obj/item/shard{ + icon_state = "small" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"atw" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"atx" = ( +/obj/machinery/button/door{ + id = "maint3"; + name = "Blast Door Control C"; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aty" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"atz" = ( +/turf/closed/wall, +/area/icemoon/surface/outdoors) +"atA" = ( +/obj/structure/table, +/obj/item/paicard, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"atB" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"atC" = ( +/obj/item/stack/rods/fifty, +/obj/structure/rack, +/obj/item/stack/cable_coil{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil{ + amount = 5 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 10 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"atD" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"atE" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"atF" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/maintenance/department/electrical) +"atG" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"atH" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/circuit, +/area/maintenance/department/electrical) +"atI" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"atJ" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"atK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"atL" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"atM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/maintenance/port/fore) +"atN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"atO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/port/fore) +"atP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/maintenance/port/fore) +"atQ" = ( +/turf/open/floor/plasteel/airless{ + icon_state = "damaged3" + }, +/area/icemoon/surface/outdoors) +"atR" = ( +/obj/item/paper/crumpled, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged2" + }, +/area/icemoon/surface/outdoors) +"atS" = ( +/obj/item/airlock_painter, +/obj/structure/closet, +/turf/open/floor/plating/airless, +/area/icemoon/surface/outdoors) +"atU" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"atV" = ( +/turf/open/floor/plasteel/airless{ + icon_state = "damaged5" + }, +/area/icemoon/surface/outdoors) +"atW" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"atY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/security/vacantoffice/b) +"atZ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aub" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"auc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"aud" = ( +/obj/docking_port/stationary/random{ + dir = 8; + id = "pod_lavaland2"; + name = "lavaland" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aue" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/port/fore) +"auf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/lawoffice) +"aug" = ( +/obj/structure/table/wood, +/obj/machinery/camera{ + c_tag = "Law Office"; + dir = 1 + }, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/obj/machinery/computer/security/telescreen/prison{ + dir = 1; + pixel_y = -27 + }, +/turf/open/floor/wood, +/area/lawoffice) +"auh" = ( +/obj/structure/table/wood, +/obj/item/taperecorder, +/obj/item/cartridge/lawyer, +/turf/open/floor/wood, +/area/lawoffice) +"aui" = ( +/obj/machinery/photocopier, +/obj/machinery/button/door{ + id = "lawyer_blast"; + name = "Privacy Shutters"; + pixel_x = 25; + pixel_y = 8 + }, +/turf/open/floor/wood, +/area/lawoffice) +"auj" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 1; + height = 4; + name = "escape pod loader"; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"auk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aul" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aum" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aun" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/dorms) +"auo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"auq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/vacantoffice/b) +"aur" = ( +/obj/machinery/button/door{ + id = "Room One"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -25; + specialfunctions = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"aus" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aut" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"auu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"auv" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"auw" = ( +/obj/structure/bed, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/button/door{ + id = "Dorm3"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"aux" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"auz" = ( +/obj/machinery/camera{ + c_tag = "Holodeck" + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"auA" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 3; + height = 15; + id = "arrivals_stationary"; + name = "arrivals"; + roundstart_template = /datum/map_template/shuttle/arrival/box; + width = 7 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"auB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"auC" = ( +/obj/docking_port/stationary/random{ + dir = 8; + id = "pod_lavaland1"; + name = "lavaland" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"auD" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"auE" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"auF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"auG" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"auH" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"auI" = ( +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"auJ" = ( +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"auK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"auL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"auM" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"auN" = ( +/obj/docking_port/stationary{ + dir = 4; + dwidth = 12; + height = 18; + id = "emergency_home"; + name = "BoxStation emergency evac bay"; + width = 32 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"auO" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"auP" = ( +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"auQ" = ( +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"auR" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/warning/fire{ + desc = "A sign that states the labeled room's number."; + dir = 1; + icon_state = "roomnum"; + name = "Room Number 2"; + pixel_x = -30; + pixel_y = -7 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"auS" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 2; + height = 13; + id = "ferry_home"; + name = "port bay 2"; + width = 5 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"auT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"auV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/port/fore) +"auX" = ( +/obj/structure/mirror{ + icon_state = "mirror_broke"; + pixel_y = 28 + }, +/obj/machinery/iv_drip, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"auY" = ( +/obj/structure/mirror{ + icon_state = "mirror_broke"; + pixel_y = 28 + }, +/obj/item/shard{ + icon_state = "medium" + }, +/obj/item/circuitboard/computer/operating, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"auZ" = ( +/obj/structure/frame/computer, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ava" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/chair, +/obj/item/reagent_containers/blood/random, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"avb" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 11; + height = 22; + id = "whiteship_home"; + name = "SS13: Auxiliary Dock, Station-Port"; + width = 35 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"avc" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"avd" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 5; + height = 7; + id = "supply_home"; + name = "Cargo Bay"; + width = 12 + }, +/turf/closed/mineral/random/snow/no_caves, +/area/icemoon/surface/outdoors) +"avf" = ( +/obj/structure/sign/warning/docking{ + pixel_y = 32 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"avg" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm5"; + name = "Room Four" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"avh" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/power/apc{ + areastring = "/area/security/vacantoffice/b"; + dir = 8; + name = "Vacant Office B APC"; + pixel_x = -24 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"avi" = ( +/obj/machinery/power/apc{ + areastring = "/area/lawoffice"; + dir = 1; + name = "Law Office APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"avj" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"avk" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"avl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"avm" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"avn" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm6"; + name = "Room Five" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"avo" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall, +/area/maintenance/department/electrical) +"avp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/shutters{ + id = "aux_base_shutters"; + name = "Auxillary Base Shutters" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"avq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"avr" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Detective's Office" + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"avs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"avt" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"avu" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"avv" = ( +/obj/machinery/camera{ + c_tag = "Dorms West" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"avw" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Dormitories Maintenance"; + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"avx" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"avy" = ( +/obj/machinery/door/airlock{ + id_tag = "Room One"; + name = "Room Six - Luxury Suite" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"avz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/structure/table, +/obj/structure/bedsheetbin/color, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"avA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/table, +/obj/structure/bedsheetbin/towel, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"avB" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"avC" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"avD" = ( +/obj/machinery/computer/holodeck{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"avE" = ( +/obj/machinery/door/poddoor/preopen{ + id = "maint3" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"avF" = ( +/obj/machinery/door/poddoor/preopen{ + id = "maint3" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"avG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"avH" = ( +/obj/structure/sign/warning/electricshock, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/department/electrical) +"avI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"avJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"avK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/department/electrical) +"avL" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/department/electrical"; + dir = 1; + name = "Electrical Maintenance APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"avM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"avN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"avO" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/multitool, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"avP" = ( +/obj/structure/sign/warning/pods, +/turf/closed/wall, +/area/hallway/secondary/entry) +"avQ" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Auxillary Base Construction"; + dir = 8 + }, +/obj/machinery/computer/camera_advanced/base_construction{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"avR" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/sign/warning/fire{ + desc = "A sign that states the labeled room's number."; + dir = 8; + icon_state = "roomnum"; + name = "Room Number 4"; + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"avS" = ( +/obj/item/wrench, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"avT" = ( +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"avU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"avV" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"avW" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"avX" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"avY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/fore) +"avZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fore) +"awa" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/maintenance/fore) +"awb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"awc" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"awd" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"awe" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"awg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"awh" = ( +/obj/effect/landmark/blobstart, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"awi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"awj" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"awk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"awl" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"awm" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"awn" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"awo" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm3"; + name = "Room Two" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"awp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"awq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"awr" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aws" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"awt" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/sign/warning/fire{ + desc = "A sign that states the labeled room's number."; + dir = 6; + icon_state = "roomnum"; + name = "Room Number 5"; + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"awu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"awv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aww" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"awx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"awy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"awz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"awA" = ( +/obj/machinery/holopad, +/obj/machinery/camera{ + c_tag = "Dorms Central" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"awB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet{ + name = "Holodeck Outfits" + }, +/obj/item/clothing/under/trek/Q, +/obj/item/clothing/under/trek/command/next, +/obj/item/clothing/under/trek/command/next, +/obj/item/clothing/under/trek/command/next, +/obj/item/clothing/under/trek/engsec/next, +/obj/item/clothing/under/trek/engsec/next, +/obj/item/clothing/under/trek/engsec/next, +/obj/item/clothing/under/trek/engsec/next, +/obj/item/clothing/under/trek/medsci/next, +/obj/item/clothing/under/trek/medsci/next, +/obj/item/clothing/under/trek/medsci/next, +/obj/item/clothing/under/misc/blue_camo, +/obj/item/clothing/under/misc/blue_camo, +/obj/item/clothing/under/costume/gladiator, +/obj/item/clothing/under/costume/gladiator, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"awC" = ( +/obj/structure/table, +/obj/item/paper/fluff/holodeck/disclaimer, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"awD" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"awE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"awF" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"awG" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"awH" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"awI" = ( +/obj/machinery/button/door{ + id = "maint2"; + name = "Blast Door Control B"; + pixel_x = -28; + pixel_y = 4 + }, +/obj/machinery/button/door{ + id = "maint1"; + name = "Blast Door Control A"; + pixel_x = -28; + pixel_y = -6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"awJ" = ( +/obj/structure/janitorialcart, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"awK" = ( +/obj/structure/table/glass, +/obj/item/coin/silver, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"awL" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"awM" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"awN" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"awO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"awP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"awQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering/abandoned{ + name = "Electrical Maintenance"; + req_access_txt = "11" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"awR" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"awS" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"awT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"awU" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"awV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"awW" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"awX" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"awY" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"awZ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"axa" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"axb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/hallway/secondary/entry) +"axc" = ( +/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, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"axe" = ( +/obj/machinery/sleeper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"axf" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"axg" = ( +/obj/structure/table/glass, +/obj/item/storage/bag/trash, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"axh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"axi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"axj" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Firefighting equipment"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"axk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"axl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"axm" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"axn" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"axo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"axp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"axq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"axr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"axs" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"axt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"axu" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"axv" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"axw" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"axy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"axz" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"axA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/ai_monitored/storage/eva) +"axB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"axC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/sign/poster/contraband/pwr_game{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"axD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fore/secondary) +"axE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/sign/poster/official/do_not_question{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"axF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"axG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"axH" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"axI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"axK" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/maintenance/port/fore) +"axL" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"axN" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"axO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/black, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"axP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/brown, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"axR" = ( +/obj/docking_port/stationary/random{ + dir = 4; + id = "pod_lavaland4"; + name = "lavaland" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"axS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"axT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"axW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"axX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"axY" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aya" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"ayb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"ayc" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ayd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aye" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ayf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ayg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ayh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ayi" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ayj" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"ayk" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ayl" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aym" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ayn" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ayo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ayp" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ayq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"ayr" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/entry) +"ays" = ( +/obj/structure/closet/wardrobe/white, +/obj/item/clothing/shoes/jackboots, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ayt" = ( +/obj/structure/table/glass, +/obj/item/hemostat, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ayu" = ( +/obj/structure/table/glass, +/obj/item/restraints/handcuffs/cable/zipties, +/obj/item/reagent_containers/blood/random, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ayv" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/item/radio/off, +/obj/item/assembly/timer, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"ayw" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ayx" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ayy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ayz" = ( +/turf/closed/wall/r_wall, +/area/maintenance/port/fore) +"ayA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ayB" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"ayC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/fore) +"ayD" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"ayE" = ( +/turf/closed/wall/r_wall, +/area/maintenance/fore) +"ayF" = ( +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"ayG" = ( +/turf/closed/wall/r_wall, +/area/gateway) +"ayH" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"ayI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/warning/securearea{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"ayJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"ayK" = ( +/obj/structure/closet/crate/rcd, +/obj/machinery/camera/motion{ + c_tag = "EVA Motion Sensor" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"ayL" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"ayM" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"ayN" = ( +/obj/structure/rack, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/hand_labeler, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/clothing/glasses/welding, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"ayO" = ( +/obj/structure/table, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/screwdriver{ + pixel_y = 16 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"ayP" = ( +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/storage/eva"; + dir = 1; + name = "EVA Storage APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"ayQ" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"ayR" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/multitool, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"ayS" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"ayT" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"ayU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"ayV" = ( +/obj/structure/bed, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/button/door{ + id = "Dorm2"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"ayW" = ( +/turf/closed/wall, +/area/ai_monitored/storage/eva) +"ayX" = ( +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/clothing/head/welding, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"ayY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/sign/poster/official/obey{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ayZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/sign/poster/official/obey{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aza" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"azb" = ( +/obj/structure/table/wood/poker, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"azc" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aze" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"azf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"azg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"azh" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"azi" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Garden Maintenance"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"azj" = ( +/obj/structure/transit_tube/curved/flipped{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"azk" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"azl" = ( +/turf/closed/wall/r_wall, +/area/icemoon/surface/outdoors) +"azm" = ( +/obj/structure/closet/secure_closet/personal, +/obj/item/toy/poolnoodle/blue, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"azn" = ( +/obj/structure/transit_tube/curved{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"azo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"azp" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"azq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/hydroponics/garden) +"azr" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"azs" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"azt" = ( +/obj/machinery/power/terminal, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"azu" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"azv" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"azw" = ( +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"azx" = ( +/obj/machinery/power/terminal, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"azy" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Port Docking Bay 1" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"azz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"azA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"azB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"azC" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"azD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/entry) +"azE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"azF" = ( +/turf/closed/wall, +/area/hydroponics/garden) +"azG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/port/fore) +"azH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/theatre) +"azI" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/instrument/eguitar, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"azJ" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/obj/effect/turf_decal/bot_white/right, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"azK" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"azL" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/obj/effect/turf_decal/bot_white/left, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"azM" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"azN" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"azO" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"azP" = ( +/obj/structure/transit_tube/crossing/horizontal, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"azQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "EVA Maintenance"; + req_access_txt = "18" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore) +"azR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"azS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "EVA Storage"; + req_access_txt = "18" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"azT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"azU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"azV" = ( +/obj/structure/transit_tube/horizontal, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"azW" = ( +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"azX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"azY" = ( +/obj/structure/table, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"azZ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aAa" = ( +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aAb" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm2"; + name = "Room One" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"aAc" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aAd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aAe" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aAf" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/transit_tube/crossing/horizontal, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aAg" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aAh" = ( +/turf/closed/wall, +/area/crew_quarters/toilet) +"aAi" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aAj" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/auxiliary"; + name = "Security Checkpoint APC"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aAk" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aAl" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aAm" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aAn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aAo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"aAp" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aAr" = ( +/obj/structure/closet, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aAs" = ( +/obj/structure/musician/piano{ + icon_state = "piano" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aAt" = ( +/obj/machinery/door/poddoor/preopen{ + id = "maint2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aAu" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aAv" = ( +/obj/structure/closet, +/obj/effect/landmark/blobstart, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aAw" = ( +/obj/machinery/power/apc{ + areastring = "/area/hydroponics/garden"; + dir = 4; + name = "Garden APC"; + pixel_x = 27; + pixel_y = 2 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aAx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aAy" = ( +/obj/machinery/power/smes, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"aAz" = ( +/obj/machinery/computer/monitor{ + dir = 1; + name = "backup power monitoring console" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"aAA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall, +/area/maintenance/department/electrical) +"aAB" = ( +/obj/machinery/power/smes, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"aAC" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry) +"aAD" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aAE" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aAF" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aAG" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aAH" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Bay 1 North"; + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aAI" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aAJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/entry) +"aAK" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/sink{ + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aAL" = ( +/obj/machinery/power/apc{ + areastring = "/area/storage/primary"; + name = "Primary Tool Storage APC"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aAM" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aAN" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aAO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aAP" = ( +/obj/machinery/hydroponics/soil, +/turf/open/floor/grass, +/area/hydroponics/garden) +"aAQ" = ( +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aAR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aAS" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aAT" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aAU" = ( +/obj/structure/sink{ + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aAV" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aAW" = ( +/obj/structure/rack, +/obj/item/tank/jetpack/carbondioxide/eva, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aAX" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aAY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aAZ" = ( +/obj/structure/table/wood, +/obj/item/paper_bin/bundlenatural{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/paper_bin{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/pen/fountain, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/pen/fourcolor, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aBa" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"aBb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"aBc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"aBd" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"aBe" = ( +/turf/open/floor/plasteel/dark, +/area/gateway) +"aBf" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"aBg" = ( +/obj/machinery/gateway/centerstation, +/turf/open/floor/plasteel/dark, +/area/gateway) +"aBh" = ( +/obj/machinery/camera{ + c_tag = "EVA Maintenance"; + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBi" = ( +/obj/machinery/power/apc{ + areastring = "/area/gateway"; + dir = 8; + name = "Gateway APC"; + pixel_x = -24; + pixel_y = -1 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBj" = ( +/obj/structure/rack, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/tank/jetpack/carbondioxide/eva, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aBk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"aBl" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Security Maintenance"; + req_access_txt = "1" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aBm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aBn" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aBo" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aBp" = ( +/obj/structure/rack, +/obj/item/clothing/shoes/magboots, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aBq" = ( +/obj/structure/rack, +/obj/item/clothing/shoes/magboots, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aBr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aBs" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"aBt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"aBu" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aBv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aBw" = ( +/obj/item/seeds/apple, +/obj/item/seeds/banana, +/obj/item/seeds/cocoapod, +/obj/item/seeds/grape, +/obj/item/seeds/orange, +/obj/item/seeds/sugarcane, +/obj/item/seeds/wheat, +/obj/item/seeds/watermelon, +/obj/structure/table/glass, +/obj/item/seeds/tower, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aBx" = ( +/obj/machinery/shower{ + dir = 8; + pixel_y = -4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aBy" = ( +/obj/machinery/door/airlock{ + desc = "A small bathroom with a sink, toilet and shower."; + id_tag = "Bath3"; + name = "Bathroom" + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"aBz" = ( +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aBA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/table/wood, +/obj/item/paicard, +/obj/item/clothing/mask/balaclava{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/toy/cards/deck{ + pixel_x = 2 + }, +/obj/item/storage/crayons, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aBB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/starboard/fore) +"aBC" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aBD" = ( +/obj/structure/grille, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aBE" = ( +/obj/item/clothing/under/misc/mailman, +/obj/item/clothing/head/mailman, +/obj/structure/closet, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aBF" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aBG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aBH" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aBI" = ( +/turf/closed/wall, +/area/security/checkpoint/auxiliary) +"aBJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/checkpoint/auxiliary) +"aBK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/security/checkpoint/auxiliary) +"aBL" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Tool Storage Maintenance"; + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aBM" = ( +/turf/closed/mineral/random/snow/no_caves, +/area/icemoon/surface/outdoors) +"aBN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/storage/primary) +"aBO" = ( +/obj/machinery/requests_console{ + department = "EVA"; + pixel_x = -32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aBP" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aBQ" = ( +/turf/closed/wall, +/area/storage/primary) +"aBR" = ( +/turf/closed/wall/r_wall, +/area/storage/primary) +"aBS" = ( +/obj/machinery/camera{ + c_tag = "MiniSat External NorthWest"; + dir = 8; + network = list("minisat"); + start_active = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aBT" = ( +/obj/machinery/computer/bank_machine, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aBU" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aBV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aBW" = ( +/obj/structure/filingcabinet, +/obj/item/folder/documents, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aBX" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/obj/effect/turf_decal/bot_white/left, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"aBY" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/obj/effect/turf_decal/bot_white/right, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"aBZ" = ( +/obj/machinery/gateway, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"aCa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aCb" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/item/pen{ + desc = "Writes upside down!"; + name = "astronaut pen" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aCc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aCd" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/cryopod, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/cryopod) +"aCe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/toilet) +"aCf" = ( +/obj/machinery/camera{ + c_tag = "MiniSat External NorthEast"; + dir = 4; + network = list("minisat"); + start_active = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aCg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aCh" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/theatre) +"aCi" = ( +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"aCj" = ( +/obj/machinery/camera{ + c_tag = "EVA East"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aCk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aCl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aCm" = ( +/obj/machinery/camera{ + c_tag = "MiniSat External SouthWest"; + dir = 8; + network = list("minisat"); + start_active = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aCn" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"aCo" = ( +/obj/machinery/camera{ + c_tag = "MiniSat External SouthEast"; + dir = 4; + network = list("minisat"); + start_active = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aCp" = ( +/obj/machinery/camera{ + c_tag = "Arrivals North"; + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/entry) +"aCq" = ( +/obj/machinery/camera{ + c_tag = "MiniSat External South"; + network = list("minisat"); + start_active = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aCr" = ( +/turf/closed/wall, +/area/crew_quarters/theatre) +"aCs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/vending/wardrobe/sec_wardrobe, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aCt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aCu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness) +"aCv" = ( +/obj/machinery/vr_sleeper{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/crew_quarters/fitness) +"aCw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"aCx" = ( +/turf/closed/mineral/random/snow/more_caves, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +"aCy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"aCz" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aCA" = ( +/obj/structure/grille/broken, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/window{ + dir = 4 + }, +/obj/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"aCB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/maintenance/starboard/fore) +"aCC" = ( +/obj/machinery/door/poddoor/preopen{ + id = "maint1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aCD" = ( +/obj/machinery/door/poddoor/preopen{ + id = "maint1" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aCE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/starboard/fore) +"aCF" = ( +/obj/structure/girder, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aCG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aCH" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aCI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aCJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aCK" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aCL" = ( +/obj/structure/closet/secure_closet/security, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aCM" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aCN" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aCO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aCP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aCQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aCR" = ( +/turf/closed/wall, +/area/chapel/main) +"aCT" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"aCW" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aCX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"aCY" = ( +/obj/machinery/computer/security, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 30 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aCZ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aDa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aDb" = ( +/obj/structure/table, +/obj/item/wirecutters, +/obj/item/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aDc" = ( +/obj/machinery/computer/card, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aDd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/storage/primary) +"aDe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/storage/primary) +"aDf" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = 30 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aDg" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aDh" = ( +/obj/machinery/vending/assist, +/obj/structure/sign/poster/contraband/grey_tide{ + desc = "A poster promoting a regression to ape-like intelligence for Assistants, suggesting they break, loot and murder enough to make even a caveman blush."; + pixel_x = -32; + poster_item_desc = "Nanotrasen does not condone such messages. Please don't regress to ape-level intelligence as this poster suggests." + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aDi" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/gateway) +"aDj" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/gateway) +"aDk" = ( +/obj/structure/table, +/obj/item/assembly/igniter{ + pixel_x = -8; + pixel_y = -4 + }, +/obj/item/assembly/igniter, +/obj/item/screwdriver{ + pixel_y = 16 + }, +/obj/machinery/camera{ + c_tag = "Primary Tool Storage" + }, +/obj/machinery/requests_console{ + department = "Tool Storage"; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aDl" = ( +/obj/structure/table, +/obj/item/t_scanner, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aDm" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plasteel, +/area/storage/primary) +"aDn" = ( +/obj/structure/table, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/obj/item/multitool, +/obj/item/multitool{ + pixel_x = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aDo" = ( +/turf/open/floor/plasteel, +/area/storage/primary) +"aDp" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aDq" = ( +/obj/machinery/vending/tool, +/turf/open/floor/plasteel, +/area/storage/primary) +"aDr" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/circuit, +/area/ai_monitored/nuke_storage) +"aDs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/turf_decal/bot_white/right, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aDt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/circuit, +/area/ai_monitored/nuke_storage) +"aDv" = ( +/obj/structure/window/reinforced, +/obj/structure/chair/stool, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aDw" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"aDx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/window{ + name = "Gateway Chamber"; + req_access_txt = "62" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"aDy" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"aDz" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aDA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aDB" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aDC" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aDD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aDE" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "EVA Storage"; + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aDF" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aDG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Dorms South"; + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aDH" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/pen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/folder/white, +/obj/item/pen/fountain, +/obj/item/stamp/rd{ + pixel_x = 3; + pixel_y = -2 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"aDI" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"aDK" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Cryogenics " + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/cryopod) +"aDL" = ( +/obj/structure/toilet/secret/low_loot{ + dir = 4 + }, +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink{ + dir = 1; + pixel_y = 25 + }, +/obj/machinery/button/door{ + id = "Bath1"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 14; + pixel_y = 38; + specialfunctions = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"aDM" = ( +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"aDN" = ( +/obj/machinery/camera{ + c_tag = "Bathrooms"; + dir = 1 + }, +/obj/structure/urinal{ + pixel_y = 32 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"aDP" = ( +/obj/machinery/shower{ + dir = 8; + pixel_y = -4 + }, +/obj/effect/landmark/xeno_spawn, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDQ" = ( +/obj/machinery/door/airlock{ + desc = "A small bathroom with a sink, toilet and shower."; + id_tag = "Bath1"; + name = "Bathroom" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"aDR" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aDT" = ( +/obj/item/soap, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDU" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDY" = ( +/obj/structure/window{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aDZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aEa" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aEc" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aEd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aEe" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aEf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aEg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/chapel/main"; + name = "Chapel APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aEh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aEi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Chapel Maintenance"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aEj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aEk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aEl" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aEm" = ( +/obj/machinery/door/window{ + dir = 8; + name = "Mass Driver"; + req_access_txt = "22" + }, +/obj/machinery/mass_driver{ + dir = 4; + id = "chapelgun"; + name = "Holy Driver" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/chapel/main) +"aEn" = ( +/obj/machinery/door/poddoor{ + id = "chapelgun"; + name = "Chapel Launcher Door" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/chapel/main) +"aEz" = ( +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/entry"; + dir = 4; + name = "Entry Hall APC"; + pixel_x = 24 + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/entry) +"aEA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 2; + sortType = 18 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aEB" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aEC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aED" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aEE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aEF" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/food/snacks/grown/wheat, +/obj/item/reagent_containers/food/snacks/grown/watermelon, +/obj/item/reagent_containers/food/snacks/grown/watermelon, +/obj/item/reagent_containers/food/snacks/grown/watermelon, +/obj/item/reagent_containers/food/snacks/grown/citrus/orange, +/obj/item/reagent_containers/food/snacks/grown/grapes, +/obj/item/reagent_containers/food/snacks/grown/cocoapod, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aEG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aEH" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aEI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aEJ" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aEK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aEL" = ( +/obj/machinery/door/airlock{ + name = "Garden" + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aEM" = ( +/turf/open/floor/circuit, +/area/ai_monitored/nuke_storage) +"aEN" = ( +/obj/effect/turf_decal/bot_white/right, +/obj/structure/closet/crate/goldcrate, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aEO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/circuit, +/area/ai_monitored/nuke_storage) +"aEP" = ( +/obj/effect/turf_decal/bot_white/left, +/obj/structure/closet/crate/silvercrate, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aEQ" = ( +/obj/structure/table, +/obj/item/paper/pamphlet/gateway, +/turf/open/floor/plasteel, +/area/gateway) +"aER" = ( +/obj/machinery/camera{ + c_tag = "Gateway"; + dir = 4 + }, +/obj/structure/table, +/obj/structure/sign/warning/biohazard{ + pixel_x = -32 + }, +/obj/item/storage/firstaid/regular, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/gateway) +"aES" = ( +/obj/structure/table, +/obj/item/radio/off{ + pixel_y = 6 + }, +/obj/item/radio/off{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/radio/off{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/radio/off, +/turf/open/floor/plasteel, +/area/gateway) +"aET" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/gateway) +"aEU" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/structure/sign/warning/biohazard{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/gateway) +"aEV" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aEW" = ( +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"aEX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "EVA Storage"; + req_access_txt = "18" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aEY" = ( +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"aEZ" = ( +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"aFa" = ( +/obj/machinery/suit_storage_unit/cmo, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"aFb" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"aFc" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"aFd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aFe" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aFk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aFl" = ( +/obj/structure/festivus{ + anchored = 1; + desc = "A pole for dancing."; + name = "pole" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aFm" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aFn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aFo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aFp" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aFr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aFs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aFu" = ( +/turf/closed/wall, +/area/library) +"aFv" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aFw" = ( +/turf/closed/wall, +/area/chapel/office) +"aFx" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aFy" = ( +/obj/machinery/power/apc{ + areastring = "/area/chapel/office"; + name = "Chapel Office APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aFz" = ( +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aFA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/computer/pod/old{ + density = 0; + icon = 'icons/obj/airlock_machines.dmi'; + icon_state = "airlock_control_standby"; + id = "chapelgun"; + name = "Mass Driver Controller"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aFB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aFG" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/entry) +"aFH" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aFI" = ( +/obj/machinery/camera{ + c_tag = "Security Checkpoint"; + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/light_switch{ + pixel_x = 6; + pixel_y = -25 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aFJ" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aFK" = ( +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/pen, +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aFL" = ( +/obj/item/radio/off, +/obj/item/crowbar, +/obj/item/assembly/flash/handheld, +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aFM" = ( +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aFN" = ( +/obj/structure/table/glass, +/obj/item/cultivator, +/obj/item/hatchet, +/obj/item/crowbar, +/obj/item/plant_analyzer, +/obj/item/reagent_containers/glass/bucket, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aFO" = ( +/obj/machinery/camera{ + c_tag = "Garden"; + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aFP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aFQ" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/item/screwdriver{ + pixel_y = 16 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aFR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aFT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aFU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aFV" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aFW" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/gateway) +"aFX" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -30 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/gateway) +"aFY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aFZ" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aGa" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aGb" = ( +/obj/effect/turf_decal/bot_white/right, +/obj/machinery/ore_silo, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aGc" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/camera/motion{ + c_tag = "Vault"; + dir = 1; + network = list("vault") + }, +/obj/machinery/light, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aGd" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aGf" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/gateway) +"aGg" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aGh" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/fore) +"aGi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"aGj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"aGk" = ( +/obj/structure/toilet/secret/low_loot{ + dir = 4 + }, +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink{ + dir = 1; + pixel_y = 25 + }, +/obj/machinery/button/door{ + id = "Bath2"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 14; + pixel_y = 38; + specialfunctions = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"aGl" = ( +/obj/machinery/door/airlock{ + desc = "A small bathroom with a sink, toilet and shower."; + id_tag = "Bath2"; + name = "Bathroom" + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"aGm" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/toilet"; + dir = 4; + name = "Dormitory Bathrooms APC"; + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/table/glass, +/obj/structure/bedsheetbin/towel, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"aGo" = ( +/obj/structure/table, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aGq" = ( +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aGr" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/clown, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/theatre) +"aGs" = ( +/obj/machinery/suit_storage_unit/rd, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"aGt" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aGu" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aGv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/theatre) +"aGw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4; + pixel_y = 5 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aGx" = ( +/obj/item/radio/intercom{ + pixel_x = -25 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"aGy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGz" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGA" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + sortType = 19 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + sortType = 20 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGC" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGD" = ( +/obj/structure/table/wood, +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/item/flashlight/lamp/bananalamp{ + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/theatre) +"aGE" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGF" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortType = 17 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGG" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Library Maintenance"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGI" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGM" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Crematorium Maintenance"; + req_access_txt = "27" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/chapel/office) +"aGQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGS" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGU" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/requests_console{ + department = "Chapel"; + departmentType = 2; + pixel_y = 30 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aGV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aGY" = ( +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aGZ" = ( +/obj/machinery/door/airlock/security{ + name = "Security Checkpoint"; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"aHa" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/item/paper, +/obj/machinery/door/window/westright{ + dir = 1; + name = "Security Checkpoint"; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aHb" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/stack/packageWrap, +/obj/item/pen/fourcolor, +/turf/open/floor/wood, +/area/library) +"aHd" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/wood, +/area/library) +"aHe" = ( +/obj/structure/table, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aHf" = ( +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/machinery/vending/wardrobe/chap_wardrobe, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aHg" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/camera{ + c_tag = "Chapel Office" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aHh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/gateway) +"aHi" = ( +/obj/structure/closet/crate/coffin, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aHj" = ( +/obj/machinery/light_switch{ + pixel_x = -20 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/gateway) +"aHk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aHl" = ( +/obj/structure/closet/crate/coffin, +/obj/machinery/door/window/eastleft{ + name = "Coffin Storage"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aHm" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aHn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aHo" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/food/snacks/grown/poppy, +/obj/item/reagent_containers/food/snacks/grown/harebell, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"aHq" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/chapel/main) +"aHu" = ( +/obj/machinery/status_display/evac{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/secondary/entry) +"aHv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/gateway) +"aHw" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"aHx" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aHy" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint/auxiliary) +"aHz" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aHA" = ( +/obj/item/reagent_containers/spray/plantbgone, +/obj/item/reagent_containers/spray/pestspray{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/reagent_containers/glass/bottle/nutrient/ez, +/obj/item/reagent_containers/glass/bottle/nutrient/rh{ + pixel_x = 2; + pixel_y = 1 + }, +/obj/structure/table/glass, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aHB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"aHC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"aHD" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aHE" = ( +/obj/structure/table, +/obj/item/weldingtool, +/obj/item/crowbar, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/turf/open/floor/plasteel, +/area/storage/primary) +"aHF" = ( +/obj/structure/sign/warning/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"aHG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aHH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Dormitory" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aHI" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/theatre) +"aHJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/gateway) +"aHK" = ( +/obj/structure/closet/secure_closet/freezer/cream_pie, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/theatre) +"aHL" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/closet/l3closet/scientist, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/gateway) +"aHM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/crew_quarters/bar) +"aHN" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/crowbar, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aHO" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aHP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aHQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aHR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aHS" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Bar Storage Maintenance"; + req_access_txt = "25" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aHT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Dormitory" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aHV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1; + pixel_x = 5 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/item/razor{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/reagent_containers/rag/towel/random, +/obj/item/reagent_containers/rag/towel/random, +/obj/item/reagent_containers/rag/towel/random, +/obj/item/reagent_containers/rag/towel/random, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"aHY" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aHZ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aIa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aIb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aIc" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/bar"; + name = "Bar APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aId" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aIe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/bar) +"aIf" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aIg" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Bar" + }, +/obj/structure/plasticflaps/opaque, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aIh" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/kitchen"; + name = "Kitchen APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aIj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + sortType = 21 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aIk" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aIl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aIm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aIn" = ( +/obj/machinery/power/apc{ + areastring = "/area/hydroponics"; + name = "Hydroponics APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aIo" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aIp" = ( +/turf/closed/wall, +/area/hydroponics) +"aIq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/hydroponics) +"aIr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/button/door{ + desc = "Bolts the doors to the Private Study."; + id = "PrivateStudy"; + name = "Private Study Lock"; + pixel_x = -5; + pixel_y = 24; + req_access_txt = "28" + }, +/obj/machinery/button/door{ + id = "PrivateStudy1"; + name = "Privacy Shutters"; + pixel_x = 5; + pixel_y = 24 + }, +/turf/open/floor/wood, +/area/library) +"aIs" = ( +/obj/machinery/camera{ + c_tag = "Library North" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/sofa/right, +/obj/machinery/light{ + dir = 1; + light_color = "#c1caff" + }, +/turf/open/floor/wood, +/area/library) +"aIt" = ( +/turf/open/floor/wood, +/area/library) +"aIu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/wood, +/area/library) +"aIv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"aIw" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/sofa/left, +/turf/open/floor/wood, +/area/library) +"aIx" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/wood, +/area/library) +"aIy" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aIz" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aIB" = ( +/obj/structure/bodycontainer/crematorium{ + id = "crematoriumChapel" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aIC" = ( +/obj/effect/landmark/start/chaplain, +/obj/structure/chair, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aID" = ( +/obj/structure/closet/crate/coffin, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aIE" = ( +/obj/structure/table/glass, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"aIH" = ( +/obj/structure/table, +/obj/item/storage/box/lights/mixed, +/obj/item/pipe_dispenser, +/obj/machinery/button/door{ + id = "aux_base_shutters"; + name = "Public Shutters Control"; + pixel_x = 24; + req_one_access_txt = "32;47;48" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"aII" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aIJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aIK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aIL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aIM" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aIN" = ( +/obj/structure/table, +/obj/item/wrench, +/obj/item/analyzer, +/turf/open/floor/plasteel, +/area/storage/primary) +"aIO" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Lounge" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aIP" = ( +/obj/structure/sign/map/left{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aIQ" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aIR" = ( +/obj/structure/sign/map/right{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aIS" = ( +/obj/structure/table/glass, +/obj/item/hatchet, +/obj/item/cultivator, +/obj/item/crowbar, +/obj/item/reagent_containers/glass/bucket, +/obj/item/plant_analyzer, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aIT" = ( +/obj/item/storage/bag/plants/portaseeder, +/obj/structure/table/glass, +/obj/item/plant_analyzer, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/obj/machinery/light_switch{ + pixel_x = -6; + pixel_y = -25 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aIU" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + freq = 1400; + location = "Tool Storage" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/storage/primary) +"aIV" = ( +/obj/machinery/button/door{ + id = "stationawaygate"; + name = "Gateway Access Shutter Control"; + pixel_x = -1; + pixel_y = -24; + req_access_txt = "31" + }, +/turf/open/floor/plasteel, +/area/gateway) +"aIW" = ( +/obj/structure/table, +/obj/item/crowbar, +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/clothing/gloves/color/fyellow, +/turf/open/floor/plasteel, +/area/storage/primary) +"aIX" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel, +/area/storage/primary) +"aIY" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/storage/primary) +"aIZ" = ( +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel, +/area/storage/primary) +"aJa" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/gateway) +"aJb" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/storage/primary) +"aJc" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/storage/primary) +"aJe" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aJf" = ( +/obj/machinery/camera{ + c_tag = "EVA South"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aJg" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJh" = ( +/turf/open/floor/plasteel, +/area/gateway) +"aJi" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/closet/secure_closet/exile, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/gateway) +"aJj" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/extinguisher, +/obj/item/extinguisher, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aJk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Bar Back Room" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aJl" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aJm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/vending/wardrobe/bar_wardrobe, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aJn" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/central) +"aJo" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway North" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJp" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJq" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJr" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJs" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJt" = ( +/obj/structure/sign/directions/security{ + dir = 1; + pixel_x = 32; + pixel_y = 40 + }, +/obj/structure/sign/directions/medical{ + dir = 4; + pixel_x = 32; + pixel_y = 32 + }, +/obj/structure/sign/directions/evac{ + dir = 4; + pixel_x = 32; + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJu" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJv" = ( +/obj/structure/sign/poster/official/nanomichi_ad{ + pixel_y = 32 + }, +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"aJw" = ( +/turf/closed/wall, +/area/hallway/primary/central) +"aJx" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aJy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJz" = ( +/obj/machinery/button/door{ + id = "Bath3"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 14; + pixel_y = 38; + specialfunctions = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/recharge_station, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"aJA" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Kitchen Maintenance"; + req_access_txt = "28" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aJB" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Hydroponics Maintenance"; + req_access_txt = "35" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aJC" = ( +/turf/closed/wall, +/area/crew_quarters/bar) +"aJD" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Bar Maintenance"; + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aJF" = ( +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/wood, +/area/library) +"aJG" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/button/crematorium{ + id = "crematoriumChapel"; + pixel_x = 25 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aJH" = ( +/obj/machinery/door/window/southleft{ + name = "Bar Delivery"; + req_access_txt = "25" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aJI" = ( +/turf/closed/wall, +/area/crew_quarters/kitchen) +"aJJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aJK" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Kitchen" + }, +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"aJL" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Hydroponics" + }, +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hydroponics) +"aJM" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp{ + pixel_y = 10 + }, +/obj/structure/disposalpipe/segment, +/obj/item/nullrod, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aJO" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel, +/area/hydroponics) +"aJP" = ( +/obj/structure/table/wood, +/obj/item/folder/yellow, +/obj/item/pen/blue, +/turf/open/floor/wood, +/area/library) +"aJQ" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/library) +"aJR" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/wood, +/area/library) +"aJS" = ( +/obj/structure/table/wood, +/obj/structure/disposalpipe/segment, +/obj/item/paicard, +/turf/open/floor/wood, +/area/library) +"aJT" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/storage/crayons, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aJU" = ( +/obj/structure/table/wood, +/obj/item/pen, +/obj/item/reagent_containers/food/drinks/bottle/holywater, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aJV" = ( +/obj/structure/closet/crate/coffin, +/obj/machinery/door/window/eastleft{ + dir = 8; + name = "Coffin Storage"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aJW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aJX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aJY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aJZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Primary Tool Storage" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/storage/primary) +"aKa" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Primary Tool Storage" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/storage/primary) +"aKc" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Gateway Access"; + req_access_txt = "62" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/gateway) +"aKd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "stationawaygate"; + name = "Gateway Access Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/gateway) +"aKe" = ( +/obj/structure/table/glass, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"aKf" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/construction/mining/aux_base"; + dir = 8; + name = "Auxillary Base Construction APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aKj" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aKk" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aKl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aKm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Garden" + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aKn" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hydroponics/garden) +"aKo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aKp" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/storage/primary) +"aKq" = ( +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/machinery/camera, +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aKr" = ( +/obj/machinery/vending/snack/orange, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/sign/poster/contraband/donut_corp{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aKs" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/storage/primary) +"aKu" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) +"aKw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/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/public/glass{ + name = "Central Access" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) +"aKy" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aKz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aKA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "stationawaygate"; + name = "Gateway Access Shutters" + }, +/turf/open/floor/plasteel, +/area/gateway) +"aKB" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/gateway) +"aKC" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aKD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aKE" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aKF" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aKG" = ( +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"aKH" = ( +/obj/structure/sink{ + pixel_y = 30 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aKI" = ( +/obj/structure/closet/secure_closet/hydroponics, +/turf/open/floor/plasteel, +/area/hydroponics) +"aKJ" = ( +/obj/machinery/vending/cola/black, +/obj/structure/sign/poster/contraband/starkist{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aKL" = ( +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Hydroponics Storage" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/plantgenes{ + pixel_y = 6 + }, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/hydroponics) +"aKM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aKN" = ( +/obj/structure/table/wood/fancy, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 20 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + dir = 1; + pixel_x = 3; + pixel_y = 20 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aKO" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aKP" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aKQ" = ( +/obj/machinery/reagentgrinder, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aKR" = ( +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aKS" = ( +/obj/machinery/camera{ + c_tag = "Bar Storage" + }, +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aKT" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aKU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/hydroponics) +"aKV" = ( +/obj/machinery/door/window/southleft{ + name = "Kitchen Delivery"; + req_access_txt = "28" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"aKW" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aKX" = ( +/obj/machinery/door/window/eastright{ + name = "Hydroponics Delivery"; + req_access_txt = "35" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hydroponics) +"aKY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aKZ" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/camera{ + c_tag = "Chapel Crematorium"; + dir = 4 + }, +/obj/structure/bodycontainer/morgue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aLa" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aLb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Crematorium"; + req_access_txt = "27" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aLc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aLd" = ( +/obj/structure/table, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_y = 3 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/item/watertank, +/turf/open/floor/plasteel, +/area/hydroponics) +"aLe" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aLf" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/wood, +/area/library) +"aLg" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/library) +"aLi" = ( +/obj/structure/chair/comfy/beige, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"aLj" = ( +/obj/structure/chair/comfy/beige, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"aLk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLm" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLn" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/chapel/office) +"aLp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLr" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aLt" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/port/fore) +"aLu" = ( +/obj/machinery/door/airlock/engineering{ + name = "Auxillary Base Construction"; + req_one_access_txt = "32;47;48" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"aLv" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aLw" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aLx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aLy" = ( +/obj/structure/chair/comfy/beige, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"aLz" = ( +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"aLA" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"aLB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aLC" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"aLD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aLE" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLF" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLG" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/port"; + dir = 1; + name = "Port Hall APC"; + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLI" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aLK" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLL" = ( +/obj/machinery/camera{ + c_tag = "Port Hallway 2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLM" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aLP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLQ" = ( +/obj/machinery/camera{ + c_tag = "Central Hallway North-East" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aLR" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aLT" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLU" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aLV" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aLW" = ( +/obj/machinery/camera{ + c_tag = "Central Hallway North-West" + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aLX" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aLY" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aLZ" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L3" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aMa" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L1" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aMb" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L7" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aMc" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L5" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aMd" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L11" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aMe" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L9" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aMf" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L13" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aMg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/robust_softdrinks{ + pixel_x = -32; + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aMh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aMi" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/xeno_spawn, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aMj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aMk" = ( +/obj/machinery/chem_master/condimaster{ + name = "CondiMaster Neo" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aMl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aMm" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aMn" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aMo" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aMq" = ( +/obj/structure/sign/poster/contraband/space_cola{ + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aMr" = ( +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aMs" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hydroponics) +"aMt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = -31 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aMu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aMw" = ( +/obj/machinery/vending/dinnerware{ + contraband = list(/obj/item/reagent_containers/food/condiment/flour = 4); + desc = "This vendor is full of condiments to put on food."; + name = "\improper Condiments Vendor"; + product_ads = "Get your sauces here!;No slave labour was used to make these products!;Nanotrasen Approved?!"; + products = list(/obj/item/storage/bag/tray = 8, /obj/item/reagent_containers/food/drinks/drinkingglass = 10, /obj/item/storage/box/cups = 5, /obj/item/reagent_containers/food/condiment/pack/ketchup = 20, /obj/item/reagent_containers/food/condiment/pack/mustard = 20, /obj/item/reagent_containers/food/condiment/pack/hotsauce = 20, /obj/item/reagent_containers/food/condiment/pack/astrotame = 20, /obj/item/reagent_containers/food/condiment/saltshaker = 20, /obj/item/reagent_containers/food/condiment/peppermill = 20) + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aMx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aMy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aMz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aMA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aMB" = ( +/obj/structure/reagent_dispensers/keg/mead, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aMC" = ( +/obj/structure/reagent_dispensers/keg/gargle, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aMD" = ( +/obj/machinery/icecream_vat, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aME" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aMF" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aMG" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/shovel/spade, +/obj/item/wrench, +/obj/item/reagent_containers/glass/bucket, +/obj/item/wirecutters, +/turf/open/floor/plasteel, +/area/hydroponics) +"aMI" = ( +/obj/machinery/light/small, +/obj/machinery/vending/wardrobe/hydro_wardrobe, +/turf/open/floor/plasteel, +/area/hydroponics) +"aML" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aMM" = ( +/obj/machinery/camera{ + c_tag = "Chapel North" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aMN" = ( +/obj/machinery/chem_master/condimaster, +/turf/open/floor/plasteel, +/area/hydroponics) +"aMO" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/chips, +/obj/item/reagent_containers/food/drinks/soda_cans/cola, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"aMP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"aMQ" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aMR" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aMS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aMT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aMU" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aMV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aMX" = ( +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aMY" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aMZ" = ( +/turf/closed/wall, +/area/hallway/secondary/exit) +"aNa" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"aNb" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aNc" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aNd" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"aNe" = ( +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"aNf" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"aNg" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"aNh" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aNi" = ( +/turf/open/floor/goonplaque, +/area/hallway/secondary/entry) +"aNj" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CHW"; + location = "Lockers" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aNk" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aNl" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aNm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aNo" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aNp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aNq" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aNr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aNs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aNu" = ( +/obj/structure/table/wood, +/obj/item/paper/fluff{ + info = "Renovation Notice

The bar layout for the station is very old. We've decided to give it a facelift after our partnership with IKEA Intergalactic?.
  • We added some sweet retro arcade machines and much more seating area. We removed the stage since it hasn't ever been used.
  • You can run this place like a restaurant now that you have tables. Go whip up a menu with the Chef. You have a condiments table and your Requests Console has been moved so a noticeboard can be placed there. Take tickets from customers and pin them on the noticeboard for the Chef.
  • We hope you like the new bar!"; + name = "Renovation Notice - Bar"; + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/drinks/shaker, +/obj/item/stack/spacecash/c100, +/obj/item/stack/spacecash/c100, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aNv" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aNw" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aNx" = ( +/obj/effect/landmark/observer_start, +/obj/effect/turf_decal/plaque{ + icon_state = "L8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aNy" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Lockers"; + location = "EVA" + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L6" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aNz" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L12" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aNA" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Security"; + location = "EVA2" + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L10" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aNB" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L14" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aNC" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=EVA2"; + location = "Dorm" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aNE" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aNF" = ( +/obj/structure/chair/comfy/brown, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aNI" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aNK" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/mob/living/simple_animal/hostile/retaliate/goat{ + name = "Pete" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aNL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/hydroponics) +"aNM" = ( +/obj/structure/kitchenspike, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aNN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hydroponics) +"aNO" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/vending/wardrobe/chef_wardrobe, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aNP" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/library) +"aNQ" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hydroponics) +"aNR" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/paicard, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"aNS" = ( +/obj/machinery/bookbinder, +/turf/open/floor/wood, +/area/library) +"aNT" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aNU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Port Hallway"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aNV" = ( +/obj/machinery/photocopier, +/turf/open/floor/wood, +/area/library) +"aNW" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Chapel Office"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aNX" = ( +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1480; + name = "Confessional Intercom"; + pixel_x = 25 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aNY" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth (Chaplain)"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aNZ" = ( +/obj/structure/chair, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aOa" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/chair, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aOb" = ( +/obj/structure/chair, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aOc" = ( +/obj/structure/chair, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aOd" = ( +/obj/structure/chair, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aOe" = ( +/obj/item/beacon, +/obj/machinery/camera{ + c_tag = "Arrivals Bay 1 South" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aOf" = ( +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aOg" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aOh" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aOi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOj" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/cigarettes{ + pixel_y = 2 + }, +/obj/item/lighter/greyscale{ + pixel_x = 4; + pixel_y = 2 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"aOk" = ( +/obj/machinery/vending/cola/random, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"aOl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOm" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOn" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOo" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOp" = ( +/obj/machinery/camera{ + c_tag = "Port Hallway 3"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOq" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOr" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOx" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOz" = ( +/obj/structure/sign/directions/security{ + dir = 4; + pixel_x = 32; + pixel_y = -24 + }, +/obj/structure/sign/directions/evac{ + dir = 4; + pixel_x = 32; + pixel_y = -32 + }, +/obj/structure/sign/directions/engineering{ + pixel_x = 32; + pixel_y = -40 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aOC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aOD" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=QM"; + location = "CHW" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aOE" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aOF" = ( +/obj/machinery/light, +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aOG" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/machinery/door/firedoor, +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aOH" = ( +/obj/structure/window/reinforced, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aOI" = ( +/obj/structure/kitchenspike, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aOJ" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aOL" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aOM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aON" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aOO" = ( +/obj/machinery/door/airlock{ + name = "Bar Storage"; + req_access_txt = "25" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aOP" = ( +/obj/effect/landmark/blobstart, +/obj/item/toy/beach_ball/holoball, +/turf/open/floor/plating, +/area/crew_quarters/bar) +"aOQ" = ( +/obj/machinery/requests_console{ + department = "Hydroponics"; + departmentType = 2; + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"aOR" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"aOS" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/library) +"aOT" = ( +/obj/machinery/gibber, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aOU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aOV" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"aOW" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/camera{ + c_tag = "Hydroponics North" + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"aOX" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"aOY" = ( +/obj/structure/chair/comfy/beige{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"aOZ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"aPa" = ( +/obj/structure/chair/comfy/beige{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"aPb" = ( +/obj/structure/bookcase/random/religion, +/turf/open/floor/wood, +/area/library) +"aPc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aPd" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/wood, +/area/library) +"aPe" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aPf" = ( +/obj/machinery/computer/libraryconsole, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/library) +"aPg" = ( +/obj/structure/chair/comfy/brown, +/turf/open/floor/carpet, +/area/library) +"aPk" = ( +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"aPl" = ( +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"aPm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"aPn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"aPo" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aPp" = ( +/obj/machinery/camera{ + c_tag = "Escape Arm Holding Area"; + dir = 4 + }, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aPq" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aPr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aPs" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aPt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-20" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aPu" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aPv" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aPx" = ( +/obj/structure/chair/comfy/beige{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"aPy" = ( +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"aPz" = ( +/turf/closed/wall, +/area/maintenance/port) +"aPA" = ( +/turf/closed/wall, +/area/crew_quarters/locker) +"aPB" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aPC" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aPD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aPE" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/crew_quarters/locker) +"aPF" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/storage/art) +"aPG" = ( +/turf/closed/wall, +/area/storage/art) +"aPH" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Art Storage" + }, +/turf/open/floor/plasteel, +/area/storage/art) +"aPI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"aPJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/storage/art) +"aPK" = ( +/turf/closed/wall, +/area/storage/emergency/port) +"aPL" = ( +/obj/structure/table, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aPM" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aPN" = ( +/obj/structure/table, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aPO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aPQ" = ( +/turf/closed/wall, +/area/storage/tools) +"aPR" = ( +/turf/closed/wall/r_wall, +/area/bridge) +"aPS" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"aPT" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/bridge) +"aPU" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/status_display/evac, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"aPV" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"aPW" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/status_display/evac, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"aPX" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"aPY" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 9 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + dir = 1; + pixel_x = 3; + pixel_y = 9 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aPZ" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/britcup, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aQa" = ( +/obj/machinery/computer/arcade/battle, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aQb" = ( +/obj/structure/chair/sofa/right, +/obj/structure/window{ + dir = 1 + }, +/obj/structure/sign/poster/contraband/pwr_game{ + pixel_x = -32 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aQc" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aQd" = ( +/obj/structure/window, +/obj/structure/chair/sofa/right{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aQe" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/landmark/xmastree, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aQf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aQg" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/door/poddoor/preopen{ + id = "barShutters"; + name = "privacy shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/bar) +"aQh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aQi" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aQj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"aQk" = ( +/obj/machinery/door/airlock{ + name = "Kitchen cold room"; + req_access_txt = "28" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"aQl" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aQm" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aQn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aQo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aQp" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/wood, +/area/library) +"aQq" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"aQr" = ( +/obj/machinery/light/small, +/obj/structure/table/wood/fancy, +/turf/open/floor/carpet, +/area/library) +"aQs" = ( +/obj/structure/bed, +/obj/item/bedsheet/black, +/turf/open/floor/carpet, +/area/library) +"aQu" = ( +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"aQv" = ( +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"aQw" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aQx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"aQy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"aQz" = ( +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1480; + name = "Confessional Intercom"; + pixel_x = 25 + }, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aQA" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aQB" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aQC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aQD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aQE" = ( +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"aQF" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Security Escape Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"aQG" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aQH" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aQI" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aQJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aQK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aQL" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port) +"aQM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/port) +"aQN" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aQO" = ( +/obj/structure/closet/wardrobe/white, +/obj/item/clothing/suit/ghost_sheet, +/obj/item/clothing/suit/ghost_sheet, +/obj/item/clothing/suit/ghost_sheet, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aQP" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aQR" = ( +/obj/machinery/vending/cola/pwr_game, +/obj/structure/sign/poster/contraband/pwr_game{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aQS" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aQT" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aQV" = ( +/obj/machinery/vending/autodrobe/all_access, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aQW" = ( +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aQX" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/vending/games, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aQY" = ( +/obj/structure/table, +/obj/item/storage/toolbox/artistic{ + pixel_y = 10 + }, +/obj/item/storage/toolbox/artistic, +/obj/item/storage/toolbox/electrical{ + pixel_y = -10 + }, +/turf/open/floor/plasteel, +/area/storage/art) +"aQZ" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/turf/open/floor/plasteel, +/area/storage/art) +"aRa" = ( +/turf/open/floor/plasteel, +/area/storage/art) +"aRb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"aRc" = ( +/obj/machinery/door/airlock{ + name = "Port Emergency Storage" + }, +/turf/open/floor/plating, +/area/storage/emergency/port) +"aRd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aRe" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/storage/tools) +"aRf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Auxiliary Tool Storage"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/storage/tools) +"aRg" = ( +/obj/machinery/vending/boozeomat, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aRh" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aRi" = ( +/obj/machinery/computer/atmos_alert, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aRj" = ( +/obj/structure/table/reinforced, +/obj/item/storage/secure/briefcase, +/obj/item/storage/box/PDAs{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/box/ids, +/turf/open/floor/plasteel, +/area/bridge) +"aRk" = ( +/obj/machinery/computer/monitor{ + name = "bridge power monitoring console" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aRl" = ( +/obj/machinery/computer/station_alert, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aRm" = ( +/obj/machinery/computer/communications, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aRn" = ( +/obj/machinery/computer/shuttle/labor, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aRo" = ( +/obj/machinery/modular_computer/console/preset/command, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aRp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/computer/shuttle/mining, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aRq" = ( +/obj/machinery/computer/med_data, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aRr" = ( +/obj/machinery/computer/crew, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aRs" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/emergency, +/obj/item/wrench, +/obj/item/assembly/timer, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/turf/open/floor/plasteel, +/area/bridge) +"aRt" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aRu" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/window, +/obj/structure/sign/poster/official/high_class_martini{ + pixel_x = -32 + }, +/obj/effect/landmark/start/assistant, +/obj/structure/chair/sofa/left{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aRx" = ( +/obj/machinery/computer/arcade/minesweeper, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aRy" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aRz" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aRA" = ( +/obj/machinery/vending/dinnerware{ + contraband = list(/obj/item/kitchen/rollingpin = 2, /obj/item/kitchen/knife/butcher = 2, /obj/item/reagent_containers/food/condiment/flour = 4) + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aRB" = ( +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/machinery/camera{ + c_tag = "Kitchen" + }, +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aRC" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/obj/machinery/food_cart, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aRD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aRE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aRF" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aRG" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aRH" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aRI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aRJ" = ( +/turf/open/floor/plasteel, +/area/hydroponics) +"aRK" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/library"; + dir = 4; + name = "Library APC"; + pixel_x = 24 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aRL" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Holding Area"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aRM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aRN" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood, +/area/library) +"aRO" = ( +/obj/structure/displaycase/trophy, +/turf/open/floor/wood, +/area/library) +"aRP" = ( +/obj/machinery/camera{ + c_tag = "Library South"; + dir = 8 + }, +/turf/open/floor/wood, +/area/library) +"aRQ" = ( +/obj/machinery/door/morgue{ + name = "Private Study"; + req_access_txt = "37" + }, +/turf/open/floor/engine/cult, +/area/library) +"aRR" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aRS" = ( +/turf/open/floor/carpet, +/area/chapel/main) +"aRT" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/rack, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/electronics/apc, +/obj/item/electronics/airlock, +/turf/open/floor/plasteel, +/area/storage/tools) +"aRU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"aRV" = ( +/obj/machinery/power/apc{ + areastring = "/area/storage/tools"; + dir = 1; + name = "Auxiliary Tool Storage APC"; + pixel_y = 24 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty, +/turf/open/floor/plasteel, +/area/storage/tools) +"aRW" = ( +/obj/structure/sign/warning/docking, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"aRX" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/entry) +"aRY" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/entry) +"aRZ" = ( +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/secondary/entry) +"aSa" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/camera{ + c_tag = "Auxiliary Tool Storage" + }, +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/storage/box/lights/mixed, +/turf/open/floor/plasteel, +/area/storage/tools) +"aSb" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aSc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/storage/tools) +"aSd" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aSe" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aSf" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Hallway"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aSg" = ( +/turf/open/floor/plating, +/area/maintenance/port) +"aSh" = ( +/obj/structure/closet/wardrobe/mixed, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/obj/item/clothing/head/beret, +/obj/item/clothing/head/beret, +/obj/item/clothing/head/russobluecamohat, +/obj/item/clothing/head/russobluecamohat, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aSi" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aSk" = ( +/obj/structure/table, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil, +/obj/item/paper_bin/construction, +/obj/item/stack/cable_coil, +/obj/item/pen/fourcolor, +/turf/open/floor/plasteel, +/area/storage/art) +"aSl" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/item/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/storage/emergency/port) +"aSm" = ( +/turf/open/floor/plating, +/area/storage/emergency/port) +"aSn" = ( +/obj/item/extinguisher, +/turf/open/floor/plating, +/area/storage/emergency/port) +"aSq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aSr" = ( +/turf/open/floor/plasteel, +/area/storage/tools) +"aSs" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/tools) +"aSt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"aSu" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aSv" = ( +/obj/structure/table/reinforced, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/turf/open/floor/plasteel, +/area/bridge) +"aSw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aSx" = ( +/obj/structure/chair{ + dir = 1; + name = "Engineering Station" + }, +/turf/open/floor/plasteel, +/area/bridge) +"aSy" = ( +/obj/structure/chair{ + dir = 1; + name = "Command Station" + }, +/obj/machinery/button/door{ + id = "bridge blast"; + name = "Bridge Blast Door Control"; + pixel_x = 28; + pixel_y = -2; + req_access_txt = "19" + }, +/obj/machinery/keycard_auth{ + pixel_x = 29; + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aSz" = ( +/obj/structure/table/reinforced, +/obj/item/aicard, +/obj/item/multitool, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aSA" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aSB" = ( +/obj/structure/table/reinforced, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aSC" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aSD" = ( +/obj/structure/chair{ + dir = 1; + name = "Crew Station" + }, +/turf/open/floor/plasteel, +/area/bridge) +"aSE" = ( +/obj/structure/table/reinforced, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel, +/area/bridge) +"aSF" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/mob/living/carbon/monkey/punpun, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aSH" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table/wood/fancy, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = -9 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + dir = 1; + pixel_x = -3 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -9; + pixel_y = 9 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 9 + }, +/obj/item/reagent_containers/food/condiment/pack/ketchup{ + pixel_x = 5 + }, +/obj/item/reagent_containers/food/condiment/pack/ketchup{ + pixel_x = 5 + }, +/obj/item/reagent_containers/food/condiment/pack/ketchup{ + pixel_x = 5 + }, +/obj/item/reagent_containers/food/condiment/pack/hotsauce{ + pixel_x = 10 + }, +/obj/item/reagent_containers/food/condiment/pack/hotsauce{ + pixel_x = 10 + }, +/obj/item/reagent_containers/food/condiment/pack/mustard{ + pixel_x = 10 + }, +/obj/item/reagent_containers/food/condiment/pack/mustard{ + pixel_x = 10 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aSI" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Kitchen"; + req_access_txt = "28" + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"aSJ" = ( +/obj/effect/landmark/start/cook, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aSK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aSL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aSM" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aSN" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aSO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aSP" = ( +/obj/machinery/smartfridge, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"aSQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aSR" = ( +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"aSS" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"aST" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"aSU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aSV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aSW" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"aSX" = ( +/obj/machinery/power/apc{ + areastring = "/area/storage/art"; + dir = 1; + name = "Art Storage"; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aSY" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/head/that, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aSZ" = ( +/obj/effect/landmark/start/bartender, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aTb" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/library) +"aTc" = ( +/obj/machinery/door/window/northright{ + dir = 8; + name = "Library Desk Door"; + req_access_txt = "37" + }, +/turf/open/floor/wood, +/area/library) +"aTd" = ( +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/turf/open/floor/wood, +/area/library) +"aTe" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aTf" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"aTg" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"aTh" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"aTi" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"aTj" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aTk" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aTl" = ( +/obj/machinery/vending/cola/random, +/obj/machinery/status_display/evac{ + layer = 4; + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"aTm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aTn" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Escape Airlock" + }, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"aTo" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Escape Airlock" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"aTr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/status_display/evac{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aTs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/security/vacantoffice) +"aTt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/vacantoffice) +"aTu" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aTv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aTw" = ( +/obj/structure/closet/wardrobe/green, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/clothing/under/costume/kilt, +/obj/item/clothing/under/costume/kilt, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aTy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aTz" = ( +/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/window{ + dir = 1 + }, +/obj/structure/window{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aTB" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aTC" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/window{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aTD" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/camera{ + c_tag = "Locker Room East"; + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/table, +/obj/item/reagent_containers/rag/towel/random, +/obj/item/razor, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aTE" = ( +/obj/structure/table, +/obj/item/hand_labeler, +/turf/open/floor/plasteel, +/area/storage/art) +"aTF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/table, +/obj/item/camera_film, +/obj/item/camera, +/turf/open/floor/plasteel, +/area/storage/art) +"aTG" = ( +/obj/structure/table, +/obj/item/storage/crayons, +/obj/item/storage/crayons, +/turf/open/floor/plasteel, +/area/storage/art) +"aTH" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/storage/emergency/port) +"aTI" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/storage/emergency/port) +"aTJ" = ( +/obj/machinery/light/small, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/storage/emergency/port) +"aTK" = ( +/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, +/turf/open/floor/plating, +/area/storage/emergency/port) +"aTL" = ( +/obj/structure/table, +/obj/item/storage/toolbox/artistic{ + icon_state = "yellow"; + item_state = "toolbox_yellow"; + name = "Cable Toolbox"; + pixel_y = 6 + }, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/plasteel, +/area/storage/tools) +"aTM" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/mint, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aTN" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/kitchen/rollingpin, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aTO" = ( +/obj/structure/table, +/obj/item/book/manual/chef_recipes, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aTP" = ( +/obj/structure/rack, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/clothing/suit/hazardvest, +/obj/item/multitool, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel, +/area/storage/tools) +"aTQ" = ( +/turf/closed/wall, +/area/bridge) +"aTR" = ( +/obj/machinery/computer/prisoner/management, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aTS" = ( +/obj/machinery/computer/secure_data, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aTT" = ( +/obj/machinery/computer/security, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aTU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/bridge) +"aTV" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/plasteel, +/area/bridge) +"aTW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/bridge) +"aTX" = ( +/turf/open/floor/plasteel, +/area/bridge) +"aTY" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aTZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aUa" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/bridge) +"aUb" = ( +/obj/machinery/modular_computer/console/preset/engineering, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aUc" = ( +/obj/structure/table/reinforced, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel, +/area/bridge) +"aUd" = ( +/obj/machinery/computer/security/mining, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aUe" = ( +/obj/machinery/computer/cargo/request, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aUg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/brown, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aUh" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastleft{ + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"aUi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"aUj" = ( +/obj/machinery/vending/hydronutrients, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"aUk" = ( +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"aUl" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aUm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aUn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aUo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aUp" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aUs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/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/plasteel, +/area/crew_quarters/locker) +"aUt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aUu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aUv" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aUw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/storage/tools) +"aUx" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aUy" = ( +/obj/machinery/camera{ + c_tag = "Vacant Office"; + dir = 4 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aUz" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"aUA" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aUB" = ( +/obj/structure/bookcase/random/adult, +/turf/open/floor/wood, +/area/library) +"aUD" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/library) +"aUE" = ( +/obj/machinery/libraryscanner, +/turf/open/floor/wood, +/area/library) +"aUF" = ( +/obj/effect/landmark/start/librarian, +/obj/structure/chair/office/dark, +/turf/open/floor/wood, +/area/library) +"aUG" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aUH" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"aUI" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"aUJ" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"aUK" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"aUL" = ( +/obj/machinery/computer/arcade, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"aUM" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Bay 2"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aUN" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aUO" = ( +/turf/open/floor/wood, +/area/security/vacantoffice) +"aUQ" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aUR" = ( +/obj/structure/table/wood, +/obj/item/pen/red, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aUS" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aUT" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aUU" = ( +/obj/structure/closet/wardrobe/grey, +/obj/machinery/requests_console{ + department = "Locker Room"; + pixel_x = -32 + }, +/obj/item/clothing/under/misc/assistantformal, +/obj/item/clothing/under/misc/assistantformal, +/obj/item/clothing/under/misc/assistantformal, +/obj/item/clothing/under/color/grey, +/obj/item/clothing/under/color/grey, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aUW" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aUX" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aUY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/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/plasteel, +/area/crew_quarters/locker) +"aUZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aVa" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel, +/area/storage/tools) +"aVb" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aVc" = ( +/obj/structure/sign/warning/securearea{ + pixel_x = 32 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/bridge) +"aVd" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/bridge) +"aVe" = ( +/obj/machinery/camera{ + c_tag = "Bridge West"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVg" = ( +/obj/structure/chair{ + dir = 1; + name = "Security Station" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVh" = ( +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/fore"; + dir = 8; + name = "Fore Primary Hallway APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/camera{ + c_tag = "Fore Primary Hallway"; + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aVi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVj" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVk" = ( +/obj/machinery/holopad, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVn" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVp" = ( +/obj/item/beacon, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVr" = ( +/obj/machinery/camera{ + c_tag = "Bridge East"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVs" = ( +/obj/structure/chair{ + dir = 1; + name = "Logistics Station" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aVt" = ( +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/bridge) +"aVu" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aVv" = ( +/obj/machinery/camera{ + c_tag = "Bridge East Entrance" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aVy" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aVz" = ( +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aVA" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/reagent_containers/food/snacks/pie/cream, +/obj/structure/noticeboard{ + desc = "Tickets for food orders will be placed here. The Chef should make the order and hand it to a waiter, waitress or just let the barkeep serve it."; + name = "Food Orders"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aVB" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/condiment/enzyme{ + layer = 5 + }, +/obj/item/stack/packageWrap, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aVC" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aVD" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -9; + pixel_y = 9 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 9 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + dir = 1; + pixel_x = -3 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = -9 + }, +/obj/item/sharpener{ + pixel_x = 10 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aVE" = ( +/obj/structure/table, +/obj/item/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 5 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aVF" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aVH" = ( +/obj/machinery/processor, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aVI" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aVJ" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"aVK" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/landmark/start/botanist, +/turf/open/floor/plasteel, +/area/hydroponics) +"aVL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2; + sortType = 16 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aVM" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"aVN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aVO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aVQ" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/wood, +/area/library) +"aVS" = ( +/obj/structure/table/wood, +/obj/item/camera_film, +/obj/item/camera_film, +/obj/item/taperecorder, +/obj/item/camera, +/turf/open/floor/wood, +/area/library) +"aVT" = ( +/obj/structure/table/wood, +/obj/item/paper_bin/bundlenatural{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/paper_bin{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/pen/fountain, +/obj/item/pen/fourcolor, +/turf/open/floor/wood, +/area/library) +"aVU" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"aVV" = ( +/obj/machinery/camera{ + c_tag = "Chapel South"; + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aVW" = ( +/obj/item/radio/intercom{ + pixel_x = -25 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"aVX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aVY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"aVZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Library" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"aWa" = ( +/obj/structure/sign/warning/vacuum/external, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aWb" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"aWc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aWd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/library) +"aWe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Chapel" + }, +/turf/open/floor/carpet, +/area/chapel/main) +"aWf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aWg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"aWh" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/item/beacon, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aWi" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aWj" = ( +/obj/structure/grille, +/obj/structure/window{ + dir = 8 + }, +/obj/structure/window, +/turf/open/floor/plating, +/area/maintenance/port) +"aWk" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aWl" = ( +/obj/structure/grille, +/obj/structure/window{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aWm" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = -28 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aWn" = ( +/obj/structure/closet/wardrobe/black, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/under/rank/civilian/janitor/maid, +/obj/item/clothing/under/rank/civilian/janitor/maid, +/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/head/beret/black, +/obj/item/clothing/head/beret/black, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aWo" = ( +/obj/machinery/camera{ + c_tag = "Locker Room West"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aWp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aWq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aWr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/security/vacantoffice) +"aWs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/security/vacantoffice) +"aWt" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aWu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aWv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aWx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aWy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/toilet/locker) +"aWz" = ( +/obj/machinery/power/apc{ + areastring = "/area/storage/emergency/port"; + dir = 1; + name = "Port Emergency Storage APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aWA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aWB" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Detective Maintenance"; + req_access_txt = "4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aWC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/warehouse) +"aWD" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/storage/tools) +"aWE" = ( +/obj/machinery/computer/med_data, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aWF" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel, +/area/storage/tools) +"aWG" = ( +/obj/machinery/computer/secure_data, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aWH" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aWI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/bridge) +"aWJ" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel, +/area/bridge) +"aWK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/bridge) +"aWL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel, +/area/bridge) +"aWM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aWN" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aWO" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/obj/machinery/light, +/obj/machinery/light_switch{ + pixel_x = -6; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aWP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/bridge) +"aWQ" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aWR" = ( +/obj/structure/fireaxecabinet{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aWS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aWT" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Bridge"; + departmentType = 5; + name = "Bridge RC"; + pixel_y = -30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aWU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aWV" = ( +/obj/machinery/turretid{ + control_area = "/area/ai_monitored/turret_protected/ai_upload"; + name = "AI Upload turret control"; + pixel_y = -25 + }, +/obj/machinery/camera{ + c_tag = "Bridge Center"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aWW" = ( +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/bridge"; + name = "Bridge APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aWX" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aWY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aWZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/bridge) +"aXa" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aXb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/bridge) +"aXc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aXd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aXe" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aXf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aXg" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aXh" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aXi" = ( +/obj/structure/chair/sofa/right, +/obj/structure/window{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aXj" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/item/paper_bin/bundlenatural{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/pen/fountain{ + pixel_x = 6 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/pen/fourcolor, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aXk" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 32 + }, +/obj/item/book/manual/wiki/barman_recipes, +/obj/item/reagent_containers/rag, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aXl" = ( +/obj/machinery/door/window/southright{ + name = "Bar Door"; + req_one_access_txt = "25;28" + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aXm" = ( +/obj/effect/landmark/start/cook, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aXn" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/machinery/requests_console{ + department = "Kitchen"; + departmentType = 2; + pixel_x = 30 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aXo" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aXp" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) +"aXq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aXr" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/window{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aXt" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aXu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"aXv" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aXw" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/window{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aXy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Chapel" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"aXz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/chapel/main) +"aXB" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"aXC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aXD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"aXE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall, +/area/quartermaster/warehouse) +"aXF" = ( +/obj/structure/sign/warning/fire{ + desc = "A sign that states the labeled room's number."; + dir = 10; + icon_state = "roomnum"; + name = "Room Number 6"; + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/washing_machine{ + pixel_x = 7; + pixel_y = 7 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aXG" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aXI" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Port Docking Bay 2" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aXJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/quartermaster/warehouse) +"aXK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/security/detectives_office) +"aXL" = ( +/turf/open/floor/carpet, +/area/security/vacantoffice) +"aXM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Cargo Bay Warehouse Maintenance"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aXN" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aXP" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/port) +"aXQ" = ( +/turf/closed/wall, +/area/crew_quarters/toilet/locker) +"aXR" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aXS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/hydroponics) +"aXT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Library" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"aXU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/library) +"aXV" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/library) +"aXW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"aXX" = ( +/obj/machinery/door/airlock/engineering/abandoned{ + abandoned = 0; + name = "Vacant Office A"; + req_access_txt = "32" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aXY" = ( +/obj/structure/chair/office/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aXZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/security/vacantoffice) +"aYb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aYc" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/port"; + dir = 8; + name = "Port Maintenance APC"; + pixel_x = -27; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aYd" = ( +/obj/structure/chair/office/dark, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aYe" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) +"aYf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aYg" = ( +/obj/effect/landmark/xeno_spawn, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/construction) +"aYi" = ( +/obj/structure/closet/secure_closet/detective, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aYj" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/button/door{ + id = "kanyewest"; + name = "Privacy Shutters"; + pixel_y = 24 + }, +/obj/structure/rack, +/obj/item/storage/briefcase, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aYk" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aYl" = ( +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aYm" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aYn" = ( +/obj/machinery/camera{ + c_tag = "Bridge West Entrance"; + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aYo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/bridge) +"aYp" = ( +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/bridge) +"aYq" = ( +/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aYr" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aYs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aYt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"aYu" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aYv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"aYw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + name = "AI Upload Access"; + req_access_txt = "16" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"aYx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"aYy" = ( +/obj/machinery/status_display/ai, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"aYz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"aYA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"aYB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"aYC" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/filingcabinet/filingcabinet, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aYD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aYE" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aYF" = ( +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/central"; + name = "Central Hall APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aYG" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aYJ" = ( +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aYK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Kitchen"; + req_access_txt = "28" + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"aYL" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aYM" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/button/door{ + id = "kitchen"; + name = "Kitchen Shutters Control"; + pixel_x = -1; + pixel_y = -24; + req_access_txt = "28" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aYN" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aYO" = ( +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plasteel, +/area/hydroponics) +"aYQ" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aYR" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/botanist, +/turf/open/floor/plasteel, +/area/hydroponics) +"aYS" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/window, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aYT" = ( +/obj/machinery/camera{ + c_tag = "Hydroponics South"; + dir = 8 + }, +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plasteel, +/area/hydroponics) +"aYU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aYV" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aYW" = ( +/turf/open/floor/carpet, +/area/library) +"aYY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"aYZ" = ( +/obj/structure/table/wood, +/obj/item/storage/box/evidence, +/obj/item/hand_labeler{ + pixel_x = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/taperecorder, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aZa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aZb" = ( +/obj/machinery/camera{ + c_tag = "Bar South"; + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aZc" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aZd" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-08" + }, +/turf/open/floor/wood, +/area/library) +"aZe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Chapel" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"aZf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"aZg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/carpet, +/area/chapel/main) +"aZh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/chapel/main) +"aZi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aZj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"aZk" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aZl" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aZm" = ( +/obj/machinery/camera{ + c_tag = "Escape Arm Airlocks"; + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aZn" = ( +/obj/structure/table/wood, +/obj/item/folder/blue, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aZo" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) +"aZp" = ( +/obj/structure/rack, +/obj/item/electronics/apc, +/obj/item/stock_parts/cell{ + maxcharge = 2000 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"aZq" = ( +/obj/machinery/button/door{ + id = "heads_meeting"; + name = "Security Shutters"; + pixel_y = 24 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"aZr" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aZs" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aZt" = ( +/obj/structure/toilet/secret/low_loot{ + dir = 4 + }, +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink{ + dir = 1; + pixel_y = 25 + }, +/obj/machinery/button/door{ + id = "LockerShitter1"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 14; + pixel_y = 38; + specialfunctions = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet/locker) +"aZu" = ( +/obj/machinery/photocopier, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"aZv" = ( +/obj/machinery/door/airlock{ + id_tag = "LockerShitter1"; + name = "Unit 1" + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet/locker) +"aZw" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) +"aZx" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/window, +/obj/structure/window{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aZy" = ( +/obj/machinery/camera{ + c_tag = "Conference Room" + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"aZz" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"aZA" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aZB" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aZC" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"aZD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aZE" = ( +/turf/closed/wall, +/area/quartermaster/storage) +"aZF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/quartermaster/warehouse) +"aZG" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"aZH" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"aZI" = ( +/obj/structure/rack, +/obj/item/stack/sheet/cardboard, +/obj/item/stack/rods/fifty, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"aZJ" = ( +/obj/structure/table/wood, +/obj/item/camera/detective, +/turf/open/floor/carpet, +/area/security/detectives_office) +"aZK" = ( +/turf/closed/wall, +/area/quartermaster/sorting) +"aZL" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aZM" = ( +/turf/closed/wall/r_wall, +/area/bridge/meeting_room) +"aZN" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aZO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/bridge/meeting_room) +"aZP" = ( +/turf/closed/wall, +/area/bridge/meeting_room) +"aZQ" = ( +/obj/machinery/door/airlock/command{ + name = "Conference Room"; + req_access_txt = "19" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"aZR" = ( +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"aZS" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"aZT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"aZU" = ( +/obj/machinery/porta_turret/ai{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"aZV" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/captain) +"aZW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/captain) +"aZX" = ( +/obj/machinery/door/airlock/command{ + name = "Captain's Office"; + req_access_txt = "20" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"aZY" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aZZ" = ( +/obj/structure/chair/sofa{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"baa" = ( +/obj/structure/chair/sofa/left{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bab" = ( +/obj/machinery/light, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bac" = ( +/obj/structure/noticeboard{ + pixel_y = -27 + }, +/obj/structure/chair/sofa/right{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bad" = ( +/obj/machinery/light, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"baf" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bag" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bah" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bai" = ( +/obj/machinery/light/small, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"baj" = ( +/obj/structure/table/reinforced, +/obj/item/storage/fancy/donut_box, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bak" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bal" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bam" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hydroponics) +"ban" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/northleft{ + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bao" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bap" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/westright{ + dir = 1; + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"baq" = ( +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bar" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bas" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/wood, +/area/library) +"bat" = ( +/obj/structure/table/wood, +/obj/item/pen/red, +/turf/open/floor/wood, +/area/library) +"bau" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/wood, +/area/library) +"bav" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/wood, +/area/library) +"baw" = ( +/obj/machinery/camera{ + c_tag = "Locker Room Toilets"; + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) +"bax" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"bay" = ( +/obj/structure/chair/comfy/black, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"baz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"baA" = ( +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"baB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"baC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"baD" = ( +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/exit"; + dir = 8; + name = "Escape Hallway APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"baE" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"baF" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"baG" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"baH" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/security/vacantoffice) +"baI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"baJ" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"baK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"baL" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"baM" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/toilet/locker"; + dir = 4; + name = "Locker Restrooms APC"; + pixel_x = 27; + pixel_y = 2 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"baN" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"baO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) +"baP" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"baQ" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"baR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"baS" = ( +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"baT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"baU" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"baV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Detective's Office"; + req_access_txt = "4" + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"baW" = ( +/obj/item/storage/secure/safe{ + pixel_x = -23 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"baX" = ( +/obj/structure/chair/comfy/brown, +/obj/effect/landmark/start/detective, +/turf/open/floor/carpet, +/area/security/detectives_office) +"baY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"baZ" = ( +/obj/machinery/status_display/evac{ + layer = 4; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bba" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bbb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bbc" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bbd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"bbe" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bbf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bbg" = ( +/obj/effect/landmark/blobstart, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"bbh" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bbi" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bbj" = ( +/obj/structure/table, +/obj/item/aiModule/reset, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"bbk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"bbl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"bbm" = ( +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"bbn" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"bbo" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bbp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"bbq" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) +"bbs" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bbt" = ( +/obj/structure/closet/crate, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bbu" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/captain"; + dir = 1; + name = "Captain's Office APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bbv" = ( +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bbw" = ( +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bbx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Diner" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bby" = ( +/obj/structure/sign/barsign, +/turf/closed/wall, +/area/crew_quarters/bar) +"bbz" = ( +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bbA" = ( +/obj/machinery/camera{ + c_tag = "Starboard Primary Hallway 2" + }, +/obj/structure/sign/poster/contraband/eat{ + pixel_y = 32; + poster_item_desc = "This poster promotes obesity, it also promotes giving the Chef a reason to keep their job." + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bbB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bbC" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"bbD" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/library) +"bbE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/library) +"bbF" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/chapel/main) +"bbG" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"bbH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bbI" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/vacantoffice"; + dir = 8; + name = "Vacant Office APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bbJ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bbK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"bbL" = ( +/obj/machinery/door/airlock{ + id_tag = "LockerShitter2"; + name = "Unit 2" + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet/locker) +"bbM" = ( +/obj/item/book/manual/wiki/security_space_law, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"bbO" = ( +/obj/machinery/washing_machine, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/locker) +"bbP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bbQ" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/whiskey{ + pixel_x = 3 + }, +/obj/item/lighter, +/obj/item/restraints/handcuffs, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bbR" = ( +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bbS" = ( +/obj/structure/closet/crate, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bbT" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bbV" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bbW" = ( +/obj/machinery/door/poddoor/preopen{ + id = "heads_meeting"; + name = "privacy shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/bridge/meeting_room) +"bbX" = ( +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bbY" = ( +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/table, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bca" = ( +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"bcb" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bcc" = ( +/obj/machinery/vending/snack/random, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bcd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bce" = ( +/obj/structure/table, +/obj/item/aiModule/supplied/quarantine, +/obj/machinery/camera/motion{ + dir = 4; + network = list("aiupload") + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"bcf" = ( +/obj/machinery/holopad, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"bcg" = ( +/obj/structure/table, +/obj/item/aiModule/supplied/freeform, +/obj/structure/sign/plaques/kiddie{ + pixel_x = 32 + }, +/obj/machinery/camera/motion{ + dir = 8; + network = list("aiupload") + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"bch" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bci" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bcj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bck" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bcl" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/maintenance/disposal) +"bcm" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bcn" = ( +/obj/structure/displaycase/captain, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bco" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Dorm"; + location = "HOP2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcp" = ( +/obj/structure/sign/directions/evac{ + dir = 4; + pixel_x = 32; + pixel_y = 28 + }, +/obj/structure/sign/directions/security{ + dir = 1; + pixel_x = 32; + pixel_y = 36 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcq" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bcr" = ( +/obj/machinery/camera{ + c_tag = "Starboard Primary Hallway" + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bcs" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bct" = ( +/obj/structure/chair/wood/wings, +/turf/open/floor/plating, +/area/maintenance/port) +"bcu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + name = "Locker Room Maintenance"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bcv" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bcw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/locker) +"bcx" = ( +/obj/machinery/camera{ + c_tag = "Starboard Primary Hallway 5" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bcy" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/secondary/exit) +"bcz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bcA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bcB" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bcC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bcD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bcE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bcF" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bcG" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/wooden_tv, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bcH" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/cigarettes, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bcI" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/port) +"bcJ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/closet/crate/freezer, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bcK" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port) +"bcL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bcM" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"bcN" = ( +/obj/item/folder/blue, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"bcP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bcQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bcR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bcS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bcU" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/bar) +"bcV" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/filingcabinet, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bcX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "heads_meeting"; + name = "privacy shutters" + }, +/turf/open/floor/plating, +/area/bridge/meeting_room) +"bcY" = ( +/obj/item/hand_labeler, +/obj/item/assembly/timer, +/obj/structure/table, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bcZ" = ( +/obj/structure/table/wood, +/obj/item/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Command)" + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"bda" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"bdb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side, +/area/hallway/primary/starboard) +"bdc" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/white/corner, +/area/hallway/primary/starboard) +"bdd" = ( +/obj/machinery/vending/cola/random, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bde" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bdf" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"bdg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"bdh" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"bdi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/vending/wardrobe/cap_wardrobe, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bdj" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bdk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bdl" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bdm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bdn" = ( +/obj/machinery/camera{ + c_tag = "Central Hallway East"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/status_display/evac{ + pixel_x = -32 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bdp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bdq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bdr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bds" = ( +/obj/machinery/camera{ + c_tag = "Starboard Primary Hallway 4"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bdt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bdu" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bdv" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=HOP2"; + location = "Stbd" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bdw" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bdx" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bdy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bdz" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bdA" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Cargo Escape Airlock" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"bdB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bdC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + sortType = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bdD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bdE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/sign/poster/contraband/have_a_puff{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bdF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"bdG" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"bdH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"bdI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"bdJ" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/plating, +/area/maintenance/port) +"bdK" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"bdL" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/bedsheetbin/color, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/locker) +"bdN" = ( +/obj/machinery/door/airlock/medical{ + name = "Morgue"; + req_access_txt = "6" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bdO" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bdP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/science/robotics/mechbay) +"bdQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/disposal) +"bdR" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bdS" = ( +/obj/structure/closet/crate/internals, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bdT" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/disposal"; + dir = 8; + name = "Disposal APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bdU" = ( +/obj/structure/closet/crate/medical, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bdX" = ( +/obj/item/storage/fancy/donut_box, +/obj/structure/table, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bdY" = ( +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"bdZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"bea" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"beb" = ( +/obj/structure/table, +/obj/item/aiModule/core/full/asimov, +/obj/item/aiModule/core/freeformcore, +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Core Modules"; + req_access_txt = "20" + }, +/obj/structure/window/reinforced, +/obj/effect/spawner/lootdrop/aimodule_harmless, +/obj/effect/spawner/lootdrop/aimodule_neutral, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/aiModule/core/full/custom, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"bec" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"bed" = ( +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/ai_monitored/turret_protected/ai_upload"; + name = "Upload APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"bee" = ( +/obj/machinery/computer/upload/ai{ + dir = 1 + }, +/obj/machinery/flasher{ + id = "AI"; + pixel_y = -21 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"bef" = ( +/obj/machinery/computer/upload/borg{ + dir = 1 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1447; + listening = 0; + name = "Station Intercom (AI Private)"; + pixel_y = -29 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"beg" = ( +/obj/structure/table, +/obj/item/aiModule/supplied/oxygen, +/obj/item/aiModule/zeroth/oneHuman, +/obj/machinery/door/window{ + dir = 8; + name = "High-Risk Modules"; + req_access_txt = "20" + }, +/obj/item/aiModule/reset/purge, +/obj/structure/window/reinforced, +/obj/effect/spawner/lootdrop/aimodule_harmful, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/aiModule/supplied/protectStation, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"beh" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"bej" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bek" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bel" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bem" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"ben" = ( +/obj/structure/table/wood, +/obj/machinery/camera{ + c_tag = "Captain's Office"; + dir = 8 + }, +/obj/item/storage/lockbox/medal, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"beo" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Stbd"; + location = "HOP" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bep" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"beq" = ( +/obj/structure/sign/directions/medical{ + dir = 4; + pixel_x = 32; + pixel_y = -24 + }, +/obj/structure/sign/directions/science{ + dir = 4; + pixel_x = 32; + pixel_y = -32 + }, +/obj/structure/sign/directions/engineering{ + pixel_x = 32; + pixel_y = -40 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ber" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bes" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bet" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"beu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bev" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/sign/directions/evac{ + dir = 4; + pixel_y = -25 + }, +/obj/structure/sign/directions/science{ + dir = 4; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bew" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bex" = ( +/obj/machinery/button/door{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -1; + pixel_y = -24; + req_access_txt = "31" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bey" = ( +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/primary/starboard) +"bez" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"beA" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2" + }, +/obj/structure/plasticflaps, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"beB" = ( +/obj/machinery/camera{ + c_tag = "Starboard Primary Hallway 3"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"beC" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"beD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"beE" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"beF" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"beG" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"beH" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/light, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/exit) +"beI" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/exit) +"beJ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/secondary/exit) +"beK" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Port Docking Bay 4" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"beL" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Port Docking Bay 3" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"beM" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"beN" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"beO" = ( +/turf/closed/wall, +/area/maintenance/disposal) +"beP" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"beQ" = ( +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"beR" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/machinery/recycler, +/obj/structure/sign/warning/securearea{ + name = "\improper STAY CLEAR HEAVY MACHINERY"; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"beS" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"beT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/disposal) +"beU" = ( +/obj/machinery/conveyor{ + dir = 6; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"beV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/sorting) +"beW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/table/reinforced, +/obj/item/stack/wrapping_paper{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/stack/packageWrap{ + pixel_x = -1; + pixel_y = -1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"beX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"beY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"beZ" = ( +/obj/machinery/mineral/stacking_unit_console{ + machinedir = 8 + }, +/turf/closed/wall, +/area/maintenance/disposal) +"bfa" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/wood/fifty{ + amount = 20 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bfb" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/chapel/main) +"bfc" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/locker"; + dir = 1; + name = "Locker Room APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bfd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"bfe" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/port) +"bff" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bfg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bfh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/port) +"bfi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bfj" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bfl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bfm" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/office) +"bfn" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bfo" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bfp" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Bridge"; + departmentType = 5; + name = "Bridge RC"; + pixel_y = -30 + }, +/obj/machinery/light, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bfq" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"bfr" = ( +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 27 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bfs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"bft" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"bfu" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"bfv" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"bfw" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"bfx" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"bfy" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Captain's Desk"; + departmentType = 5; + name = "Captain RC"; + pixel_x = -30 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bfz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"bfA" = ( +/obj/structure/table/wood, +/obj/item/hand_tele, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bfB" = ( +/obj/structure/table/wood, +/obj/item/folder/blue, +/obj/item/stamp/captain, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bfC" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bfD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bfE" = ( +/obj/structure/table/wood, +/obj/item/pinpointer/nuke, +/obj/item/disk/nuclear, +/obj/item/storage/secure/safe{ + pixel_x = 35; + pixel_y = 5 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bfF" = ( +/turf/closed/wall, +/area/medical/chemistry) +"bfG" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/medical/medbay/central) +"bfH" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall, +/area/medical/medbay/central) +"bfI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bfJ" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bfK" = ( +/turf/closed/wall, +/area/security/checkpoint/medical) +"bfL" = ( +/turf/closed/wall, +/area/medical/morgue) +"bfM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"bfN" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bfO" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bfP" = ( +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/starboard"; + name = "Starboard Primary Hallway APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bfQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bfR" = ( +/obj/structure/table/reinforced, +/obj/item/hand_labeler{ + pixel_y = 8 + }, +/obj/item/hand_labeler{ + pixel_y = 8 + }, +/obj/item/storage/box, +/obj/item/storage/box, +/obj/item/storage/box, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bfS" = ( +/turf/closed/wall, +/area/storage/emergency/starboard) +"bfT" = ( +/turf/closed/wall, +/area/science/robotics/mechbay) +"bfU" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bfV" = ( +/turf/closed/wall/r_wall, +/area/science/robotics/lab) +"bfW" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-13" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bfX" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bfY" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bfZ" = ( +/obj/structure/sign/warning/securearea{ + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bga" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bgb" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bgc" = ( +/turf/closed/wall/r_wall, +/area/science/lab) +"bgd" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/exit) +"bge" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/hallway/secondary/exit) +"bgf" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bgg" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bgh" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bgi" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Bay 3 & 4"; + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bgj" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bgk" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bgm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bgn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bgo" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/science/robotics/mechbay"; + dir = 4; + name = "Mech Bay APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"bgp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/white, +/area/science/research) +"bgq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"bgr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plating, +/area/maintenance/port) +"bgs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/table/wood/fancy/purple, +/turf/open/floor/plating, +/area/maintenance/port) +"bgt" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port) +"bgu" = ( +/obj/machinery/button/door{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -1; + pixel_y = 24; + req_access_txt = "31" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bgv" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/quartermaster/office) +"bgw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"bgy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/quartermaster/warehouse) +"bgz" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bgA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bgB" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/closed/wall, +/area/quartermaster/sorting) +"bgC" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/closed/wall, +/area/quartermaster/sorting) +"bgD" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "packageSort2" + }, +/obj/machinery/camera{ + c_tag = "Cargo Delivery Office"; + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_x = -30 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bgE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bgF" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bgG" = ( +/obj/machinery/camera{ + c_tag = "Central Hallway West"; + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bgH" = ( +/obj/machinery/door/window/eastright{ + dir = 1; + name = "Bridge Delivery"; + req_access_txt = "19" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/bridge/meeting_room) +"bgI" = ( +/obj/machinery/computer/slot_machine, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bgJ" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bgK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bgL" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = -32 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bgM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bgN" = ( +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"bgO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bgP" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bgQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bgS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bgT" = ( +/obj/machinery/computer/communications{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bgU" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/effect/landmark/start/captain, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bgV" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/coin/plasma, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bgW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bgX" = ( +/obj/structure/table/wood, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/item/camera, +/obj/item/storage/photo_album{ + pixel_y = -10 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bgY" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bgZ" = ( +/obj/machinery/power/apc{ + areastring = "/area/medical/chemistry"; + dir = 1; + name = "Chemistry APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bha" = ( +/obj/machinery/vending/wardrobe/chem_wardrobe, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bhb" = ( +/obj/machinery/chem_dispenser, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bhc" = ( +/obj/machinery/camera{ + c_tag = "Chemistry" + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/chem_heater, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bhd" = ( +/obj/machinery/chem_master, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bhe" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bhg" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bhh" = ( +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bhi" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"bhj" = ( +/obj/machinery/camera{ + c_tag = "Security Post - Medbay" + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = 30 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bhk" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/pen, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Doors Control"; + normaldoorcontrol = 1; + pixel_y = 26; + req_access_txt = "5" + }, +/obj/item/book/manual/wiki/security_space_law, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bhl" = ( +/obj/structure/filingcabinet, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bhm" = ( +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bhn" = ( +/obj/structure/table, +/obj/item/storage/box/bodybags, +/obj/item/pen, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bho" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bhp" = ( +/obj/machinery/power/apc{ + areastring = "/area/medical/morgue"; + dir = 1; + name = "Morgue APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bhq" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bhr" = ( +/obj/machinery/door/airlock{ + name = "Starboard Emergency Storage" + }, +/turf/open/floor/plating, +/area/storage/emergency/starboard) +"bhs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bht" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Mech Bay"; + req_access_txt = "29" + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"bhu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "Skynet_launch"; + name = "mech bay" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"bhv" = ( +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"bhw" = ( +/obj/machinery/computer/rdconsole/robotics, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"bhx" = ( +/obj/machinery/requests_console{ + department = "Robotics"; + departmentType = 2; + name = "Robotics RC"; + pixel_y = 30; + receive_ore_updates = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/rnd/production/circuit_imprinter, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"bhy" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/robotics/lab) +"bhz" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 2; + icon_state = "left"; + name = "Robotics Desk"; + req_access_txt = "29" + }, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" + }, +/turf/open/floor/plating, +/area/science/robotics/lab) +"bhA" = ( +/turf/closed/wall, +/area/science/research) +"bhB" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bhC" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd"; + name = "research lab shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/lab) +"bhD" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/southright{ + name = "Research and Development Desk"; + req_one_access_txt = "7;29" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd"; + name = "research lab shutters" + }, +/turf/open/floor/plating, +/area/science/lab) +"bhE" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/clothing/glasses/welding, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bhF" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bhG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/starboard) +"bhH" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bhI" = ( +/obj/machinery/conveyor{ + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bhJ" = ( +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/machinery/disposal/deliveryChute{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + layer = 3 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bhL" = ( +/obj/machinery/mineral/stacking_machine{ + input_dir = 1; + stack_amt = 10 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bhM" = ( +/turf/open/floor/circuit, +/area/science/robotics/mechbay) +"bhN" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bhO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bhQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/port) +"bhR" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window{ + dir = 1 + }, +/obj/structure/window, +/turf/open/floor/plating, +/area/maintenance/port) +"bhS" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bhT" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window, +/turf/open/floor/plating, +/area/maintenance/port) +"bhU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/science/research) +"bhV" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bhW" = ( +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "warehouse shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bhX" = ( +/obj/structure/disposalpipe/sorting/wrap{ + dir = 1 + }, +/turf/closed/wall, +/area/quartermaster/sorting) +"bhY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/quartermaster/storage) +"bhZ" = ( +/obj/machinery/door/window/eastleft{ + icon_state = "right"; + name = "Incoming Mail"; + req_access_txt = "50" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bia" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bib" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bic" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bid" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bie" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 1; + freq = 1400; + location = "Bridge" + }, +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/bridge/meeting_room) +"bif" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"big" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"bih" = ( +/obj/effect/turf_decal/bot_white/right, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"bii" = ( +/obj/effect/turf_decal/bot_white/left, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"bij" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bik" = ( +/obj/item/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Command)"; + pixel_x = -28 + }, +/obj/machinery/suit_storage_unit/captain, +/obj/machinery/light{ + light_color = "#c9d3e8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bil" = ( +/obj/machinery/computer/card{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bim" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/obj/item/melee/chainofcommand, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bin" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bio" = ( +/obj/machinery/requests_console{ + department = "Chemistry"; + departmentType = 2; + pixel_x = -30; + receive_ore_updates = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/closet/secure_closet/chemical, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bip" = ( +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"biq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bir" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright{ + dir = 8; + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/medical/chemistry) +"bis" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/chemist, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bit" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + alpha = 255; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"biu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"biv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"biw" = ( +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bix" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start/depsec/medical, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"biy" = ( +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_x = 25 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"biz" = ( +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"biA" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"biB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"biC" = ( +/turf/open/floor/plating, +/area/storage/emergency/starboard) +"biD" = ( +/obj/item/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/storage/emergency/starboard) +"biE" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/extinguisher, +/turf/open/floor/plating, +/area/storage/emergency/starboard) +"biF" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + sortType = 2 + }, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"biG" = ( +/obj/machinery/mech_bay_recharge_port{ + dir = 2 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/science/robotics/mechbay) +"biH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"biI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/circuit, +/area/science/robotics/mechbay) +"biJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/circuit, +/area/science/robotics/mechbay) +"biK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"biL" = ( +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"biN" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"biO" = ( +/obj/machinery/camera{ + c_tag = "Robotics Lab"; + network = list("ss13","rd") + }, +/obj/machinery/button/door{ + id = "robotics"; + name = "Shutters Control Button"; + pixel_x = 6; + pixel_y = 24; + req_access_txt = "29" + }, +/obj/structure/table, +/obj/item/book/manual/wiki/robotics_cyborgs{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/item/reagent_containers/glass/beaker/large, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"biP" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"biQ" = ( +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"biR" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"biS" = ( +/obj/machinery/camera{ + c_tag = "Research Division Access" + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"biT" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"biU" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"biV" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/scientist, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"biW" = ( +/turf/open/floor/plasteel/white, +/area/science/lab) +"biX" = ( +/obj/machinery/camera{ + c_tag = "Research and Development"; + network = list("ss13","rd"); + pixel_x = 22 + }, +/obj/machinery/button/door{ + id = "rnd"; + name = "Shutters Control Button"; + pixel_x = -6; + pixel_y = 24; + req_access_txt = "47" + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"biY" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bja" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bjb" = ( +/obj/machinery/conveyor{ + id = "garbage" + }, +/obj/structure/sign/warning/vacuum{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bjc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bjd" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bje" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bjf" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Disposal Access"; + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bjg" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bjh" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bji" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bjj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bjk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bjl" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bjm" = ( +/obj/structure/table, +/obj/item/hand_labeler, +/obj/item/hand_labeler, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bjn" = ( +/obj/structure/table, +/obj/item/clothing/head/soft, +/obj/item/clothing/head/soft, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bjo" = ( +/obj/machinery/camera{ + c_tag = "Cargo Bay North" + }, +/obj/machinery/vending/wardrobe/cargo_wardrobe, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bjp" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/radio/intercom{ + pixel_y = 20 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bjq" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = 30 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bjr" = ( +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bjs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining/glass{ + name = "Cargo Office"; + req_access_txt = "50" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bjt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bju" = ( +/obj/machinery/photocopier, +/obj/item/radio/intercom{ + pixel_y = 20 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bjv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bjw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bjx" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bjy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white/left, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"bjz" = ( +/turf/closed/wall/r_wall, +/area/maintenance/central) +"bjA" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/central) +"bjB" = ( +/turf/open/floor/plating, +/area/maintenance/central) +"bjC" = ( +/obj/structure/closet/wardrobe/black, +/turf/open/floor/plating, +/area/maintenance/central) +"bjE" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bjF" = ( +/obj/machinery/newscaster/security_unit{ + pixel_x = -32 + }, +/obj/machinery/keycard_auth{ + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bjG" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Captain's Desk Door"; + req_access_txt = "20" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bjH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bjI" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bjJ" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bjK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bjL" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bjM" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bjN" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 30 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bjO" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bjP" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"bjQ" = ( +/obj/machinery/smartfridge/chemistry/preloaded, +/turf/closed/wall, +/area/medical/chemistry) +"bjR" = ( +/obj/structure/table/glass, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/reagent_containers/glass/beaker/large, +/obj/item/reagent_containers/glass/beaker/large, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/dropper, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bjS" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bjT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bjU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bjV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bjX" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bjY" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bjZ" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bka" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bkb" = ( +/obj/machinery/camera{ + c_tag = "Medbay Morgue"; + dir = 8; + network = list("ss13","medbay") + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bkc" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/storage/emergency/starboard) +"bkd" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/storage/emergency/starboard) +"bkf" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/storage/emergency/starboard) +"bkh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/circuit, +/area/science/robotics/mechbay) +"bki" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/reagent_containers/dropper, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bkj" = ( +/obj/structure/closet/emcloset, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bkk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"bkm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"bkn" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 27 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bko" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/status_display/evac{ + pixel_x = 32 + }, +/obj/machinery/aug_manipulator, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"bkp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bkq" = ( +/obj/structure/closet/firecloset, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bkr" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/structure/sign/warning/securearea{ + pixel_x = 32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bks" = ( +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_x = -30; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bkt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bku" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bkv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bkw" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bkx" = ( +/obj/machinery/status_display/supply, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/quartermaster/sorting) +"bky" = ( +/turf/closed/wall, +/area/maintenance/starboard) +"bkz" = ( +/obj/machinery/conveyor{ + id = "garbage" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Disposal Exit"; + name = "disposal exit vent" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bkB" = ( +/obj/machinery/button/door{ + id = "Disposal Exit"; + name = "Disposal Vent Control"; + pixel_x = -25; + pixel_y = 4; + req_access_txt = "12" + }, +/obj/machinery/button/massdriver{ + id = "trash"; + pixel_x = -26; + pixel_y = -6 + }, +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bkC" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/light_switch{ + pixel_x = 25 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bkD" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/port) +"bkE" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall/r_wall, +/area/maintenance/port) +"bkF" = ( +/turf/closed/wall/r_wall, +/area/maintenance/port) +"bkG" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Cargo Bay Maintenance"; + req_access_txt = "31" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"bkH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bkJ" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bkK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bkL" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/chem_heater, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bkM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bkN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"bkO" = ( +/obj/machinery/light_switch{ + pixel_x = 28 + }, +/obj/item/screwdriver{ + pixel_y = 10 + }, +/obj/item/radio/off, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bkP" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bkQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bkR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bkS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bkT" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"bkU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bkV" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"bkW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"bkX" = ( +/obj/machinery/power/apc{ + areastring = "/area/bridge/meeting_room"; + dir = 4; + name = "Conference Room APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"bkY" = ( +/obj/effect/landmark/blobstart, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"bkZ" = ( +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"bla" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"blb" = ( +/obj/machinery/door/airlock/command{ + name = "Captain's Quarters"; + req_access_txt = "20" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"blc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/captain) +"bld" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Captain's Office Maintenance"; + req_access_txt = "20" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/maintenance/central/secondary) +"ble" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"blf" = ( +/obj/structure/table/glass, +/obj/item/storage/box/syringes, +/obj/item/clothing/glasses/science{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/clothing/glasses/science, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"blg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Morgue Maintenance"; + req_access_txt = "6" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"blh" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/medical/chemistry) +"bli" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"blj" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"blk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bll" = ( +/obj/structure/table/reinforced, +/obj/item/folder/white, +/obj/item/pen, +/obj/item/reagent_containers/glass/bottle/epinephrine, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"blm" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/drinks/britcup{ + desc = "Kingston's personal cup." + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bln" = ( +/obj/structure/table/reinforced, +/obj/machinery/camera{ + c_tag = "Medbay Foyer"; + dir = 8; + network = list("ss13","medbay") + }, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"blo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/storage/emergency/starboard"; + dir = 1; + name = "Starboard Emergency Storage APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"blp" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/medical"; + dir = 8; + name = "Medbay Security APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"blq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/sorting/mail{ + sortType = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"blr" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bls" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical, +/obj/item/crowbar/large, +/obj/machinery/camera{ + c_tag = "Mech Bay"; + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"blt" = ( +/obj/machinery/recharge_station, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/poster/official/state_laws{ + pixel_y = -32 + }, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"blu" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"blv" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"blw" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/science/robotics/mechbay) +"blx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"bly" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/light_switch{ + pixel_x = -23 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"blz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"blA" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/robotics/lab) +"blB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/mecha_part_fabricator, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"blC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"blD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/science/robotics/lab) +"blE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/table, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"blF" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "robo1" + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"blG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"blH" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"blI" = ( +/obj/machinery/rnd/destructive_analyzer, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/lab) +"blJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/rnd/production/protolathe/department/science, +/turf/open/floor/plasteel, +/area/science/lab) +"blK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/lab) +"blL" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/science/lab) +"blM" = ( +/obj/effect/turf_decal/bot, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"blO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) +"blP" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"blQ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"blR" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/item/cigbutt, +/turf/open/floor/plating, +/area/maintenance/starboard) +"blS" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/mass_driver{ + id = "trash" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"blU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"blV" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/disposal) +"blW" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/storage) +"blX" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/science/research) +"blY" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"blZ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bma" = ( +/obj/structure/table/glass, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/capacitor, +/obj/item/stock_parts/capacitor, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/micro_laser, +/obj/item/stock_parts/micro_laser, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bmb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bmc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bmd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bme" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bmf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bmg" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Cargo Bay"; + req_access_txt = "31" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bmh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bmi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bmj" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bmk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining/glass{ + name = "Delivery Office"; + req_access_txt = "50" + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bmm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmn" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/status_display/supply{ + pixel_x = -28; + pixel_y = 2 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmo" = ( +/turf/closed/wall, +/area/crew_quarters/heads/hop) +"bmp" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/central) +"bmq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/heads/hop) +"bmr" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hop) +"bms" = ( +/obj/machinery/door/airlock/command{ + name = "Head of Personnel"; + req_access_txt = "57" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop) +"bmt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bmx" = ( +/turf/closed/wall, +/area/crew_quarters/heads/captain) +"bmy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bmz" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/dresser, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/item/card/id/captains_spare, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bmA" = ( +/obj/machinery/door/airlock{ + name = "Private Restroom" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/heads/captain) +"bmB" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bmC" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/heads/captain) +"bmD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/central/secondary) +"bmE" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmF" = ( +/obj/structure/table/glass, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/reagent_containers/glass/bottle/epinephrine, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bmG" = ( +/obj/machinery/chem_dispenser, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bmH" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Cargo Bay"; + req_access_txt = "31" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bmI" = ( +/obj/machinery/chem_master, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bmJ" = ( +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_y = -30 + }, +/obj/machinery/light, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bmK" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bmL" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Doors Control"; + normaldoorcontrol = 1; + pixel_x = -26; + req_access_txt = "5" + }, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bmM" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bmN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bmO" = ( +/obj/structure/closet/secure_closet/security/med, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"bmP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bmQ" = ( +/obj/item/stamp{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/stamp/denied{ + pixel_x = 4; + pixel_y = -2 + }, +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bmR" = ( +/obj/structure/table, +/obj/item/paper/guides/jobs/medical/morgue{ + pixel_x = 5; + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bmS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmT" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bmU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"bmV" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/medical{ + name = "Morgue"; + req_access_txt = "6;5" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bmW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/medical/morgue) +"bmX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/medical/genetics) +"bmY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/morgue) +"bmZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/genetics) +"bna" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bnb" = ( +/obj/machinery/recharge_station, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"bnc" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/robotics/mechbay) +"bnf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bng" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bnh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bni" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/table, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/clothing/glasses/welding, +/obj/item/multitool{ + pixel_x = 3 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"bnj" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/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/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"bnk" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bnl" = ( +/obj/item/stack/sheet/glass, +/obj/structure/table/glass, +/obj/item/stack/sheet/glass, +/obj/item/stack/sheet/glass, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/matter_bin, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/stock_parts/scanning_module{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/stock_parts/scanning_module, +/obj/machinery/power/apc{ + areastring = "/area/science/lab"; + dir = 4; + name = "Research Lab APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bnm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/science/research) +"bnn" = ( +/obj/machinery/computer/rdconsole/core{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/lab) +"bno" = ( +/obj/item/reagent_containers/glass/beaker/sulphuric, +/obj/machinery/rnd/production/circuit_imprinter/department/science, +/turf/open/floor/plasteel, +/area/science/lab) +"bnp" = ( +/turf/open/floor/plasteel, +/area/science/lab) +"bnq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/science/lab) +"bnr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/plating, +/area/science/lab) +"bns" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/starboard) +"bnt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bnu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/maintenance/starboard) +"bnv" = ( +/obj/machinery/door/poddoor{ + id = "trash"; + name = "disposal bay door" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bnw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bnx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bny" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bnz" = ( +/obj/effect/landmark/start/cargo_technician, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bnA" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bnB" = ( +/obj/structure/closet/wardrobe/chemistry_white, +/obj/machinery/light_switch{ + pixel_x = -23 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bnC" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bnD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/table, +/obj/item/book/manual/wiki/chemistry, +/obj/item/book/manual/wiki/chemistry{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bnE" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bnF" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_y = 30 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bnG" = ( +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/clipboard, +/obj/item/pen/red, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bnH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bnI" = ( +/obj/machinery/computer/cargo/request, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bnJ" = ( +/obj/machinery/firealarm{ + pixel_y = 27 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bnK" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/quartermaster/office) +"bnL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bnM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bnN" = ( +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bnO" = ( +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bnP" = ( +/obj/machinery/button/flasher{ + id = "hopflash"; + pixel_x = 6; + pixel_y = 36 + }, +/obj/machinery/button/door{ + id = "hop"; + name = "Privacy Shutters Control"; + pixel_x = 6; + pixel_y = 25; + req_access_txt = "57" + }, +/obj/machinery/button/door{ + id = "hopqueue"; + name = "Queue Shutters Control"; + pixel_x = -4; + pixel_y = 25; + req_access_txt = "57" + }, +/obj/machinery/light_switch{ + pixel_x = -4; + pixel_y = 36 + }, +/obj/machinery/pdapainter, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bnQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/bed/dogbed/ian, +/mob/living/simple_animal/pet/dog/corgi/Ian{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bnR" = ( +/obj/machinery/computer/security/telescreen/vault{ + pixel_y = 30 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bnS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bnT" = ( +/obj/structure/sign/warning/electricshock{ + pixel_x = -32 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"bnV" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"bnW" = ( +/obj/structure/sign/warning/radiation/rad_area{ + pixel_x = 32 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"bnX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bnY" = ( +/obj/structure/bed, +/obj/item/bedsheet/captain, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bnZ" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/obj/item/pen/fountain/captain, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"boa" = ( +/obj/structure/toilet{ + contents = newlist(/obj/item/toy/snappop/phoenix); + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/heads/captain) +"bob" = ( +/obj/structure/table/glass, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/screwdriver{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"boc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bod" = ( +/obj/structure/table, +/obj/item/folder/white, +/obj/item/radio/headset/headset_med, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"boe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bof" = ( +/turf/closed/wall, +/area/medical/medbay/central) +"bog" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/medbay/central) +"boh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"boi" = ( +/obj/machinery/computer/med_data{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"boj" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/requests_console{ + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = 30 + }, +/obj/machinery/light, +/obj/machinery/computer/crew{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bok" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/security/checkpoint/medical) +"bol" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bom" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bon" = ( +/turf/closed/wall/r_wall, +/area/medical/genetics) +"boo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"boq" = ( +/obj/structure/bed/roller, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bor" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/surgical_drapes, +/obj/item/razor, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bos" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/power/apc{ + areastring = "/area/science/robotics/lab"; + dir = 8; + name = "Robotics Lab APC"; + pixel_x = -25 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"bou" = ( +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"bov" = ( +/obj/structure/table, +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus, +/obj/item/crowbar, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/item/radio/headset/headset_sci{ + pixel_x = -3 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"bow" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/research) +"box" = ( +/turf/closed/wall, +/area/science/robotics/lab) +"boy" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/research) +"boz" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/research) +"boA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"boB" = ( +/turf/closed/wall, +/area/science/lab) +"boC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/science/robotics/lab) +"boD" = ( +/obj/structure/table, +/obj/item/circular_saw, +/obj/item/scalpel{ + pixel_y = 12 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"boE" = ( +/obj/structure/table, +/obj/item/hemostat, +/obj/item/cautery{ + pixel_x = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"boF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"boG" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"boH" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"boI" = ( +/obj/structure/sign/warning/vacuum/external, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/storage) +"boJ" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "QMLoad2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"boK" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"boL" = ( +/obj/structure/table, +/obj/item/retractor, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"boM" = ( +/turf/open/floor/plasteel/white/corner, +/area/science/research) +"boN" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"boO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side, +/area/science/research) +"boP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/lab) +"boQ" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plasteel/white, +/area/science/lab) +"boR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"boS" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/westleft{ + name = "Cargo Desk"; + req_access_txt = "50" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"boT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"boU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"boV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"boW" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"boY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/sign/poster/official/ian{ + pixel_x = 32; + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"boZ" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/northleft{ + dir = 8; + name = "Reception Window" + }, +/obj/machinery/door/window/brigdoor{ + base_state = "rightsecure"; + dir = 4; + icon_state = "rightsecure"; + name = "Head of Personnel's Desk"; + req_access_txt = "57" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/flasher{ + id = "hopflash"; + pixel_y = 28 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bpb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"bpc" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bpd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"bpe" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"bph" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bpj" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Captain's Quarters"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bpk" = ( +/obj/structure/closet/secure_closet/captains, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/item/clothing/under/rank/captain/parade, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bpl" = ( +/obj/structure/table/wood, +/obj/item/storage/box/matches, +/obj/item/razor{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/clothing/mask/cigarette/cigar, +/obj/item/reagent_containers/food/drinks/flask/gold, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bpm" = ( +/obj/machinery/shower{ + dir = 1 + }, +/obj/item/soap/deluxe, +/obj/item/bikehorn/rubberducky, +/obj/structure/curtain, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/heads/captain) +"bpn" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bpo" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bpp" = ( +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Research Division Delivery"; + req_access_txt = "47" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/science/lab) +"bpq" = ( +/obj/machinery/light_switch{ + pixel_y = -23 + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bpr" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "Research Division" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/lab) +"bps" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bpt" = ( +/obj/structure/table, +/obj/item/hand_labeler, +/obj/item/stack/packageWrap, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bpu" = ( +/obj/structure/bed/roller, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Exit Button"; + normaldoorcontrol = 1; + pixel_y = 26 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bpv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Medbay Reception"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bpw" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/medical/medbay/central) +"bpx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bpy" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bpz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bpA" = ( +/obj/machinery/computer/cargo{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bpB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bpC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bpD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + name = "Chemistry Lab"; + req_access_txt = "5; 33" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bpE" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/genetics) +"bpF" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/southleft{ + dir = 1; + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/medical/chemistry) +"bpG" = ( +/obj/machinery/power/apc{ + areastring = "/area/medical/genetics"; + dir = 1; + name = "Genetics APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bpH" = ( +/obj/structure/table/glass, +/obj/item/folder/white, +/obj/item/radio/headset/headset_medsci, +/obj/machinery/requests_console{ + department = "Genetics"; + name = "Genetics Requests Console"; + pixel_y = 30 + }, +/obj/item/storage/pill_bottle/mutadone, +/obj/item/storage/pill_bottle/mannitol, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bpI" = ( +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bpJ" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bpK" = ( +/mob/living/carbon/monkey, +/turf/open/floor/plasteel, +/area/medical/genetics) +"bpL" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/medical/genetics) +"bpM" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/medical/chemistry) +"bpN" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bpO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bpP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bpQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"bpR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"bpS" = ( +/obj/structure/table, +/obj/item/storage/box/bodybags, +/obj/item/pen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bpT" = ( +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass{ + amount = 20; + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"bpU" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"bpV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/robotics/lab) +"bpW" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics2"; + name = "robotics lab shutters" + }, +/obj/effect/spawner/structure/window, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics2"; + name = "robotics lab shutters" + }, +/turf/open/floor/plating, +/area/science/robotics/lab) +"bpX" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/science/research) +"bpY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bpZ" = ( +/obj/item/folder/white, +/obj/structure/table, +/obj/item/disk/tech_disk, +/obj/item/disk/tech_disk, +/obj/item/disk/design_disk, +/obj/item/disk/design_disk, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bqa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/window/eastright{ + name = "Robotics Surgery"; + req_access_txt = "29" + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bqc" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"bqd" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/conveyor{ + dir = 4; + id = "robo2" + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"bqe" = ( +/turf/closed/wall/r_wall, +/area/science/explab) +"bqf" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bqg" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bqh" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bqi" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "supply dock loading door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bqj" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bqk" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bql" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bqm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bqn" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bqo" = ( +/obj/machinery/autolathe, +/obj/machinery/light_switch{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bqp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/table/reinforced, +/obj/item/destTagger, +/obj/item/destTagger, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bqq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"bqr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"bqs" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bqt" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bqu" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bqv" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bqw" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bqx" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/hop) +"bqy" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bqz" = ( +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"bqA" = ( +/obj/machinery/computer/card{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bqB" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"bqC" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bqD" = ( +/obj/machinery/vending/coffee, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"bqE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"bqF" = ( +/obj/machinery/vending/cigarette/beach, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"bqG" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"bqH" = ( +/turf/closed/wall/r_wall, +/area/teleporter) +"bqI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/teleporter) +"bqJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/teleporter) +"bqK" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Teleporter Maintenance"; + req_access_txt = "17" + }, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/central/secondary) +"bqL" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bqM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay/central) +"bqN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bqO" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bqP" = ( +/obj/structure/bed/roller, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bqQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bqR" = ( +/obj/structure/table, +/obj/item/crowbar, +/obj/item/clothing/neck/stethoscope, +/obj/item/reagent_containers/spray/cleaner, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bqS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bqT" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bqU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Medbay West"; + network = list("ss13","medbay") + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bqV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bqW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bqX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bqY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bqZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bra" = ( +/obj/structure/table/glass, +/obj/item/storage/box/rxglasses, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"brb" = ( +/obj/machinery/computer/scan_consolenew{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"brc" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/geneticist, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"brd" = ( +/turf/open/floor/plasteel, +/area/medical/genetics) +"bre" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel, +/area/medical/genetics) +"brf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"brg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"brh" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bri" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"brj" = ( +/obj/structure/bed/roller, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"brk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"brm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"brn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bro" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/science/research) +"brp" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/science/research) +"brq" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/door{ + id = "robotics2"; + name = "Shutters Control Button"; + pixel_x = 24; + pixel_y = -24; + req_access_txt = "29" + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"brr" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/science/explab) +"brs" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Robotics Desk"; + req_access_txt = "29" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics2"; + name = "robotics lab shutters" + }, +/obj/item/folder/white, +/obj/item/pen, +/turf/open/floor/plating, +/area/science/robotics/lab) +"brt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"bru" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"brv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"brw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"brx" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/science/lab) +"bry" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Experimentation Lab Maintenance"; + req_access_txt = "47" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"brz" = ( +/obj/structure/table, +/obj/item/pen, +/obj/machinery/camera{ + c_tag = "Experimentor Lab"; + network = list("ss13","rd") + }, +/obj/item/hand_labeler, +/obj/item/stack/packageWrap, +/turf/open/floor/plasteel/white/side, +/area/science/explab) +"brA" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 6 + }, +/turf/open/floor/plasteel/white/corner, +/area/science/explab) +"brB" = ( +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/plasteel/white/side, +/area/science/explab) +"brC" = ( +/obj/structure/table, +/obj/item/folder/white, +/obj/item/folder/white, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/item/radio/off, +/turf/open/floor/plasteel/white/side, +/area/science/explab) +"brD" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/science/explab) +"brE" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + req_one_access_txt = "8;12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) +"brF" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) +"brG" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"brH" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"brI" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"brJ" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Supply Dock Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"brK" = ( +/turf/open/floor/plating, +/area/quartermaster/storage) +"brL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"brM" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "QM #1" + }, +/obj/effect/turf_decal/bot, +/mob/living/simple_animal/bot/mulebot{ + beacon_freq = 1400; + home_destination = "QM #1"; + suffix = "#1" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"brN" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"brO" = ( +/obj/structure/table, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_x = -30 + }, +/obj/item/multitool, +/obj/machinery/camera{ + c_tag = "Cargo Office"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"brP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"brQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"brR" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"brS" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"brU" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/hop) +"brV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay/central) +"brW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/vending/cart, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"brX" = ( +/obj/structure/table, +/obj/item/storage/box/masks, +/obj/item/storage/box/gloves{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"brY" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"brZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bsa" = ( +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"bsb" = ( +/obj/structure/table, +/obj/item/hand_labeler, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"bsc" = ( +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bsg" = ( +/obj/structure/table, +/obj/item/hand_labeler, +/obj/machinery/camera{ + c_tag = "Medbay Morgue"; + dir = 8; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"bsh" = ( +/turf/closed/wall, +/area/teleporter) +"bsi" = ( +/obj/structure/table, +/obj/item/hand_tele, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/teleporter) +"bsj" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 1 + }, +/obj/structure/table, +/obj/item/beacon, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bsk" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bsl" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/obj/structure/closet/crate, +/obj/item/crowbar, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bsm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bsn" = ( +/obj/machinery/camera{ + c_tag = "Teleporter" + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bso" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bsp" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bsq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/radio/intercom{ + frequency = 1485; + name = "Station Intercom (Medbay)"; + pixel_y = -30 + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bsr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bss" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bst" = ( +/obj/item/radio/intercom{ + frequency = 1485; + name = "Station Intercom (Medbay)"; + pixel_x = 30 + }, +/obj/machinery/camera{ + c_tag = "Medbay East"; + dir = 8; + network = list("ss13","medbay"); + pixel_y = -22 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bsu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "GeneticsDoor"; + name = "Genetics"; + req_access_txt = "5; 68" + }, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bsv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bsw" = ( +/obj/machinery/door/airlock/research{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"bsx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bsy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bsz" = ( +/obj/machinery/status_display/evac{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"bsA" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"bsC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/research) +"bsD" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bsE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + name = "Experimentation Lab"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"bsF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"bsG" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"bsH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/explab) +"bsI" = ( +/obj/machinery/power/apc{ + areastring = "/area/science/explab"; + dir = 4; + name = "Experimentation Lab APC"; + pixel_x = 26 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"bsJ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/starboard) +"bsK" = ( +/obj/structure/table/glass, +/obj/item/storage/box/disks{ + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bsL" = ( +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bsM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bsN" = ( +/obj/machinery/door/window/westleft{ + name = "Monkey Pen"; + req_access_txt = "9" + }, +/turf/open/floor/plasteel, +/area/medical/genetics) +"bsO" = ( +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bsP" = ( +/obj/structure/table/optable{ + name = "Robotics Operating Table" + }, +/obj/effect/landmark/event_spawn, +/obj/item/tank/internals/anesthetic, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bsQ" = ( +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bsR" = ( +/obj/machinery/computer/operating{ + dir = 1; + name = "Robotics Operating Computer" + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bsS" = ( +/obj/machinery/camera{ + c_tag = "Robotics Lab - South"; + dir = 1; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"bsT" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"bsU" = ( +/obj/structure/table/optable{ + name = "Robotics Operating Table" + }, +/obj/item/surgical_drapes, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"bsV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bsW" = ( +/obj/machinery/vending/wardrobe/robo_wardrobe, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"bsX" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"bsY" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start/head_of_personnel, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bsZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bta" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Research Division North" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"btb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"btc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/teleporter) +"btd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bte" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/science/research) +"btf" = ( +/obj/machinery/requests_console{ + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = -30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"btg" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bth" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-16" + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bti" = ( +/obj/structure/closet/wardrobe/grey, +/obj/item/clothing/head/beret/black, +/obj/item/clothing/head/beret/black, +/obj/item/clothing/head/beret, +/obj/item/clothing/head/beret, +/obj/item/clothing/under/misc/assistantformal, +/obj/item/clothing/under/dress/skirt, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"btj" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"btk" = ( +/obj/structure/closet/wardrobe/white, +/obj/item/clothing/under/costume/kilt, +/obj/item/clothing/under/rank/civilian/janitor/maid, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"btl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"btm" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2; + sortType = 12 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"btn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/research) +"bto" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/sign/warning/securearea{ + pixel_x = 32 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"btp" = ( +/turf/open/floor/plating, +/area/maintenance/starboard) +"btq" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"btr" = ( +/obj/machinery/camera{ + c_tag = "Cargo Receiving Dock"; + dir = 4 + }, +/obj/machinery/button/door{ + id = "QMLoaddoor"; + layer = 4; + name = "Loading Doors"; + pixel_x = -24; + pixel_y = -8 + }, +/obj/machinery/button/door{ + id = "QMLoaddoor2"; + layer = 4; + name = "Loading Doors"; + pixel_x = -24; + pixel_y = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bts" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "QM #2" + }, +/obj/effect/turf_decal/bot, +/mob/living/simple_animal/bot/mulebot{ + home_destination = "QM #2"; + suffix = "#2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"btt" = ( +/obj/structure/table, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/item/folder/yellow, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"btu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"btv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"btw" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"btx" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/research) +"bty" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"btz" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"btA" = ( +/obj/machinery/camera{ + c_tag = "Research Division West" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"btB" = ( +/obj/machinery/computer/bounty{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"btC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"btD" = ( +/obj/item/paper_bin/bundlenatural{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/paper_bin{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/pen/fountain, +/obj/structure/table, +/obj/item/pen/fourcolor, +/obj/item/stamp/hop, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"btE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"btG" = ( +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"btH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/teleporter) +"btI" = ( +/obj/machinery/power/apc{ + areastring = "/area/teleporter"; + dir = 8; + name = "Teleporter APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/teleporter) +"btJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/bluespace_beacon, +/turf/open/floor/plasteel, +/area/teleporter) +"btK" = ( +/obj/machinery/holopad, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/teleporter) +"btL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/teleporter) +"btM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Teleport Access"; + req_access_txt = "17" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/teleporter) +"btN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/teleporter) +"btO" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"btP" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"btQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/science/research) +"btR" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"btS" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"btT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"btU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"btV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"btW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"btX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"btY" = ( +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_y = -30; + receive_ore_updates = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"btZ" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bua" = ( +/turf/closed/wall, +/area/medical/genetics) +"bub" = ( +/obj/machinery/light, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"buc" = ( +/obj/machinery/light, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/office"; + name = "Cargo Office APC"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bud" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bue" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Personnel's Desk"; + departmentType = 5; + name = "Head of Personnel RC"; + pixel_y = -30 + }, +/obj/machinery/camera{ + c_tag = "Head of Personnel's Office"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"buf" = ( +/obj/machinery/computer/scan_consolenew{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bug" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bui" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"buj" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics2"; + name = "robotics lab shutters" + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/science/robotics/lab) +"buk" = ( +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/medical/sleeper) +"bul" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bum" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bun" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"buo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bup" = ( +/obj/machinery/light, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"buq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/genetics) +"bur" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bus" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"but" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"buu" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"buv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"buw" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"bux" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"buy" = ( +/obj/structure/disposalpipe/sorting/mail{ + sortType = 23 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"buz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard) +"buB" = ( +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "QMLoad" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"buC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"buD" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "QM #3" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"buE" = ( +/obj/structure/table, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"buF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"buG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/research{ + name = "Genetics Research Access"; + req_access_txt = "9" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"buH" = ( +/obj/machinery/door/airlock/research{ + name = "Genetics Research Access"; + req_access_txt = "47" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"buI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"buJ" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"buK" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"buL" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"buM" = ( +/obj/machinery/keycard_auth{ + pixel_x = -24 + }, +/obj/machinery/computer/cargo{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"buN" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"buO" = ( +/obj/structure/table, +/obj/item/folder/blue, +/obj/item/stack/packageWrap{ + pixel_x = -1; + pixel_y = -1 + }, +/obj/item/hand_labeler, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"buQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"buT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"buU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/research) +"buV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"buW" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/teleporter) +"buX" = ( +/obj/machinery/shieldwallgen, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/teleporter) +"buY" = ( +/obj/machinery/shieldwallgen, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/teleporter) +"buZ" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/teleporter) +"bva" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bvb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bvc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bvd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/sleeper) +"bve" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bvf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"bvg" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/white, +/area/science/research) +"bvh" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/medical/sleeper) +"bvi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/medical/sleeper) +"bvj" = ( +/turf/closed/wall, +/area/medical/sleeper) +"bvk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bvl" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Surgery Observation" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/medical/sleeper) +"bvm" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bvn" = ( +/obj/machinery/button/door{ + desc = "A remote control switch for the genetics doors."; + id = "GeneticsDoor"; + name = "Genetics Exit Button"; + normaldoorcontrol = 1; + pixel_x = 8; + pixel_y = 24 + }, +/obj/structure/table, +/obj/item/book/manual/wiki/medical_cloning{ + pixel_y = 6 + }, +/obj/item/storage/box/rxglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/bodybags, +/obj/item/pen, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bvo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bvp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bvq" = ( +/obj/structure/chair, +/obj/effect/landmark/start/geneticist, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bvr" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bvs" = ( +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bvt" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Genetics Research"; + req_access_txt = "5; 9; 68" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bvu" = ( +/obj/structure/window/reinforced, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel, +/area/medical/genetics) +"bvv" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel, +/area/medical/genetics) +"bvw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bvx" = ( +/turf/closed/wall/r_wall, +/area/science/research) +"bvy" = ( +/obj/machinery/camera{ + c_tag = "Genetics Research"; + dir = 1; + network = list("ss13","medbay") + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bvz" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bvA" = ( +/obj/structure/sign/warning/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/genetics) +"bvB" = ( +/obj/machinery/camera{ + c_tag = "Genetics Access"; + dir = 8; + network = list("ss13","medbay"); + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bvC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/checkpoint/science) +"bvD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/science/research) +"bvE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/science/research) +"bvF" = ( +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_x = -30 + }, +/obj/machinery/computer/bounty{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/keycard_auth{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bvH" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"bvI" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bvJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/hor) +"bvK" = ( +/turf/closed/wall, +/area/crew_quarters/heads/hor) +"bvL" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"bvM" = ( +/obj/machinery/light_switch{ + pixel_x = -20 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/explab) +"bvN" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel/white, +/area/science/explab) +"bvO" = ( +/turf/open/floor/plasteel/white, +/area/science/explab) +"bvP" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"bvQ" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bvR" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bvS" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "supply dock loading door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bvT" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bvU" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/obj/machinery/light, +/obj/machinery/status_display/supply{ + pixel_y = -32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bvV" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bvW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bvX" = ( +/obj/machinery/camera{ + c_tag = "Cargo Bay South"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bvY" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "QM #4" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bvZ" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular{ + pixel_x = 6; + pixel_y = -5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bwa" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bwb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bwc" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bwd" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"bwe" = ( +/turf/closed/wall, +/area/security/checkpoint/supply) +"bwf" = ( +/obj/machinery/camera{ + c_tag = "Cargo Bay Entrance"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bwg" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopqueue"; + name = "HoP Queue Shutters" + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bwh" = ( +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bwi" = ( +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/obj/structure/closet/secure_closet/hop, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/clothing/suit/ianshirt, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bwj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bwk" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bwl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bwq" = ( +/obj/machinery/teleport/station, +/turf/open/floor/plating, +/area/teleporter) +"bwr" = ( +/obj/machinery/computer/teleporter{ + dir = 1 + }, +/turf/open/floor/plating, +/area/teleporter) +"bws" = ( +/obj/structure/rack, +/obj/item/tank/internals/oxygen, +/obj/item/clothing/mask/gas, +/turf/open/floor/plating, +/area/teleporter) +"bwt" = ( +/obj/machinery/teleport/hub, +/turf/open/floor/plating, +/area/teleporter) +"bwu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bwv" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "Medbay" + }, +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"bww" = ( +/obj/structure/chair, +/obj/machinery/camera{ + c_tag = "Surgery Observation"; + network = list("ss13","medbay") + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/sleeper) +"bwx" = ( +/obj/machinery/door/window/eastleft{ + name = "Medical Delivery"; + req_access_txt = "5" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"bwy" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bwz" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bwA" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bwB" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/sleeper) +"bwD" = ( +/obj/machinery/sleeper{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bwE" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/medical/sleeper) +"bwF" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 7; + pixel_y = 1 + }, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 7; + pixel_y = 1 + }, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bwG" = ( +/obj/structure/sign/warning/nosmoking, +/turf/closed/wall, +/area/medical/sleeper) +"bwH" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bwI" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bwJ" = ( +/obj/structure/table/glass, +/obj/machinery/camera{ + c_tag = "Medbay Cryogenics"; + network = list("ss13","medbay") + }, +/obj/item/reagent_containers/glass/beaker/cryoxadone, +/obj/item/reagent_containers/glass/beaker/cryoxadone, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bwK" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bwL" = ( +/obj/machinery/camera{ + c_tag = "Genetics Cloning"; + dir = 4; + network = list("ss13","medbay") + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bwM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bwN" = ( +/obj/machinery/light_switch{ + pixel_x = 8; + pixel_y = 28 + }, +/obj/machinery/button/door{ + id = "Biohazard"; + name = "Biohazard Shutter Control"; + pixel_x = -5; + pixel_y = 28; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bwO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"bwQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hor) +"bwR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"bwS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bwT" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Quartermaster"; + req_access_txt = "41" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bwU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bwV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start/shaft_miner, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bwW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bwX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + sortType = 3 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bwY" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"bwZ" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/medical/sleeper) +"bxa" = ( +/obj/structure/chair, +/obj/structure/sign/warning/nosmoking{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark, +/area/medical/sleeper) +"bxb" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/sleeper) +"bxc" = ( +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/sleeper) +"bxd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bxe" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/research) +"bxf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"bxg" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bxi" = ( +/obj/machinery/computer/aifixer{ + dir = 8 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Research Director's Desk"; + departmentType = 5; + name = "Research Director RC"; + pixel_x = -2; + pixel_y = 30; + receive_ore_updates = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"bxj" = ( +/obj/structure/table, +/obj/machinery/computer/security/telescreen/rd, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"bxk" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/storage/primary) +"bxl" = ( +/obj/structure/rack, +/obj/item/circuitboard/aicore{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/hor) +"bxm" = ( +/obj/effect/landmark/xmastree/rdrod, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/hor) +"bxn" = ( +/turf/closed/wall, +/area/science/explab) +"bxo" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/explab) +"bxp" = ( +/obj/machinery/computer/rdconsole/experiment{ + dir = 1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/science/explab) +"bxq" = ( +/obj/structure/table, +/obj/item/clipboard, +/obj/item/book/manual/wiki/experimentor, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/science/explab) +"bxr" = ( +/obj/structure/closet/radiation, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/science/explab) +"bxs" = ( +/obj/machinery/button/door{ + id = "telelab"; + name = "Test Chamber Blast Doors"; + pixel_x = 25; + req_access_txt = "47" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, +/area/science/explab) +"bxt" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bxu" = ( +/turf/closed/wall, +/area/quartermaster/qm) +"bxv" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start/depsec/science, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bxw" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Quartermaster"; + req_access_txt = "41" + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bxx" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/qm) +"bxy" = ( +/turf/closed/wall, +/area/quartermaster/miningdock) +"bxz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/quartermaster/miningdock) +"bxA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bxB" = ( +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/pen, +/obj/structure/table, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"bxC" = ( +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"bxD" = ( +/obj/item/book/manual/wiki/security_space_law, +/obj/structure/table, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"bxE" = ( +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"bxF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"bxG" = ( +/obj/machinery/door/airlock/command{ + name = "Head of Personnel"; + req_access_txt = "57" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bxI" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bxK" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bxL" = ( +/obj/machinery/camera{ + c_tag = "Central Hallway South-East"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bxM" = ( +/obj/structure/chair/office/dark, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/auxiliary) +"bxN" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bxO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bxP" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"bxQ" = ( +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bxR" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bxS" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bxT" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bxU" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bxV" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bxW" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Research Director"; + req_access_txt = "30" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"bxX" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bxY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"bxZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"bya" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"byb" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"byc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/computer/card/minor/qm{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"byd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bye" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/medical/genetics) +"byf" = ( +/turf/closed/wall/r_wall, +/area/science/server) +"byg" = ( +/obj/structure/table, +/obj/item/clipboard, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/cartridge/quartermaster{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/cartridge/quartermaster{ + pixel_x = -4; + pixel_y = 7 + }, +/obj/item/cartridge/quartermaster, +/obj/item/coin/silver, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/item/stamp/qm, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen/fountain, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"byh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Server Room"; + req_access_txt = "30" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"byi" = ( +/turf/closed/wall, +/area/security/checkpoint/science) +"byj" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/security/checkpoint/science) +"byk" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint/science) +"byl" = ( +/obj/structure/table, +/obj/item/folder/yellow, +/obj/item/pen{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/pen/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bym" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/qm) +"byn" = ( +/obj/structure/filingcabinet, +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"byo" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "Biohazard"; + name = "Biohazard Shutter Control"; + pixel_x = -5; + pixel_y = 5; + req_access_txt = "47" + }, +/obj/machinery/button/door{ + id = "rnd2"; + name = "Research Lab Shutter Control"; + pixel_x = 5; + pixel_y = 5; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"byp" = ( +/obj/machinery/computer/robotics{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"byq" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start/research_director, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"byr" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/hor) +"bys" = ( +/obj/structure/rack, +/obj/item/aicard, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/hor) +"byt" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hor) +"byu" = ( +/obj/structure/displaycase/labcage, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/hor) +"byv" = ( +/obj/machinery/door/poddoor/preopen{ + id = "telelab"; + name = "test chamber blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/engine, +/area/science/explab) +"byw" = ( +/obj/machinery/door/poddoor/preopen{ + id = "telelab"; + name = "test chamber blast door" + }, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/engine, +/area/science/explab) +"byx" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"byy" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"byz" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"byA" = ( +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/qm"; + dir = 1; + name = "Quartermaster APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"byB" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"byC" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"byD" = ( +/obj/structure/closet/secure_closet/quartermaster, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"byE" = ( +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"byF" = ( +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/miningdock"; + dir = 1; + name = "Mining Dock APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"byG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"byH" = ( +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/secure_closet/security/cargo, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"byI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"byJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"byK" = ( +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"byL" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start/depsec/supply, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"byM" = ( +/obj/item/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/obj/machinery/computer/security/mining{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"byN" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"byO" = ( +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = -30 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"byP" = ( +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"byQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"byR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"byS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"byT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/vending/wardrobe/sec_wardrobe, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"byU" = ( +/obj/machinery/light, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"byW" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"byX" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"byY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/sleeper) +"byZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/medical/sleeper) +"bza" = ( +/obj/structure/chair, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/dark, +/area/medical/sleeper) +"bzb" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/medical/sleeper) +"bzc" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Recovery Room" + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bzd" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/pen, +/obj/machinery/requests_console{ + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_y = 30 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bze" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bzf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/landmark/start/paramedic, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bzg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bzh" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bzi" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bzj" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bzk" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bzl" = ( +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bzm" = ( +/obj/machinery/clonepod, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bzn" = ( +/obj/machinery/computer/cloning{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bzo" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bzp" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bzq" = ( +/obj/structure/closet/secure_closet/medical1, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bzr" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/machinery/vending/wardrobe/gene_wardrobe, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bzs" = ( +/turf/closed/wall, +/area/maintenance/aft) +"bzt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4; + external_pressure_bound = 140; + name = "server vent"; + pressure_checks = 0 + }, +/turf/open/floor/circuit/telecomms/server, +/area/science/server) +"bzu" = ( +/obj/machinery/rnd/server, +/turf/open/floor/circuit/telecomms/server, +/area/science/server) +"bzv" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"bzw" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM"; + pixel_y = 32 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/server) +"bzx" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/science/server) +"bzy" = ( +/obj/machinery/camera{ + c_tag = "Server Room"; + network = list("ss13","rd"); + pixel_x = 22 + }, +/obj/machinery/power/apc{ + areastring = "/area/science/server"; + dir = 1; + name = "Server Room APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"bzz" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -30 + }, +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/obj/structure/closet/secure_closet/security/science, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bzA" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"bzB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/research) +"bzC" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bzD" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/computer/security/telescreen/circuitry, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bzE" = ( +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"bzF" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bzG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bzH" = ( +/obj/structure/table, +/obj/item/hemostat, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/side, +/area/medical/sleeper) +"bzI" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/table, +/obj/item/surgicaldrill, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bzJ" = ( +/obj/machinery/computer/mecha{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"bzK" = ( +/obj/structure/table, +/obj/item/scalpel{ + pixel_y = 12 + }, +/obj/item/circular_saw, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bzL" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/hor) +"bzM" = ( +/obj/structure/rack, +/obj/item/taperecorder{ + pixel_x = -3 + }, +/obj/item/paicard{ + pixel_x = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/hor) +"bzN" = ( +/obj/machinery/modular_computer/console/preset/research{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/hor) +"bzO" = ( +/turf/open/floor/engine, +/area/science/explab) +"bzP" = ( +/obj/machinery/computer/cargo{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bzQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bzR" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bzS" = ( +/obj/structure/table, +/obj/item/cautery{ + pixel_x = 4 + }, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bzT" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start/quartermaster, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bzU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bzV" = ( +/obj/machinery/vending/wardrobe/medi_wardrobe, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bzW" = ( +/obj/structure/closet/l3closet, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bzX" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bzY" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bzZ" = ( +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"bAa" = ( +/obj/machinery/door/firedoor/heavy, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/research) +"bAb" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start/shaft_miner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bAc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bAd" = ( +/obj/item/screwdriver{ + pixel_y = 10 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/radio/off, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"bAe" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=AIW"; + location = "QM" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bAf" = ( +/obj/machinery/holopad, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bAg" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=AftH"; + location = "AIW" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bAh" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CHE"; + location = "AIE" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bAi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bAj" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=HOP"; + location = "CHE" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bAk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bAl" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/dark, +/area/medical/sleeper) +"bAm" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bAn" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mining Maintenance"; + req_access_txt = "48" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bAo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/supply"; + dir = 1; + name = "Cargo Security APC"; + pixel_x = 1; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bAp" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bAq" = ( +/obj/machinery/sleeper{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Medbay Treatment Center"; + dir = 8; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bAr" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bAs" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1; + name = "Connector Port (Air Supply)" + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bAt" = ( +/obj/structure/table/reinforced, +/obj/item/wrench/medical, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bAu" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bAv" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1; + name = "Connector Port (Air Supply)" + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bAw" = ( +/turf/open/floor/plating, +/area/maintenance/aft) +"bAx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bAy" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel/dark/telecomms, +/area/science/server) +"bAz" = ( +/obj/machinery/airalarm/server{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/science/server) +"bAA" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"bAB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Server Room"; + req_access_txt = "30" + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"bAC" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 9 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"bAD" = ( +/obj/structure/chair/office/light, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"bAE" = ( +/obj/machinery/camera{ + c_tag = "Security Post - Science"; + dir = 4; + network = list("ss13","rd") + }, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/vending/wardrobe/sec_wardrobe, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bAF" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bAG" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bAH" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/security_space_law, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bAI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bAJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bAK" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bAL" = ( +/obj/structure/table, +/obj/item/plant_analyzer, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plating, +/area/storage/tech) +"bAM" = ( +/obj/structure/table, +/obj/item/analyzer, +/obj/item/healthanalyzer, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bAN" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bAO" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bAP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bAQ" = ( +/obj/effect/landmark/blobstart, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/engine, +/area/science/explab) +"bAR" = ( +/obj/machinery/rnd/experimentor, +/turf/open/floor/engine, +/area/science/explab) +"bAS" = ( +/obj/machinery/camera{ + c_tag = "Quartermaster's Office"; + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/obj/machinery/status_display/supply{ + pixel_x = -32 + }, +/obj/machinery/computer/security/qm{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bAT" = ( +/obj/machinery/vending/wardrobe/jani_wardrobe, +/turf/open/floor/plasteel, +/area/janitor) +"bAU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/janitor) +"bAV" = ( +/obj/machinery/door/window/westleft{ + name = "Janitorial Delivery"; + req_access_txt = "26" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/janitor) +"bAW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bAX" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/medical/sleeper) +"bAY" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bAZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bBa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bBb" = ( +/obj/effect/landmark/start/medical_doctor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bBc" = ( +/obj/structure/table, +/obj/item/surgical_drapes, +/obj/item/razor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/medical/sleeper) +"bBd" = ( +/obj/structure/table, +/obj/structure/bedsheetbin{ + pixel_x = 2 + }, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bBe" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bBf" = ( +/obj/structure/filingcabinet, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 30 + }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/camera{ + c_tag = "Security Post - Cargo"; + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"bBg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/machinery/light{ + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBh" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBj" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBk" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Central Primary Hallway South-West"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBl" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bBn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bBo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBq" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/directions/engineering{ + pixel_x = -32; + pixel_y = -40 + }, +/obj/structure/sign/directions/medical{ + dir = 4; + pixel_x = -32; + pixel_y = -24 + }, +/obj/structure/sign/directions/evac{ + dir = 4; + pixel_x = -32; + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/status_display/evac{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Central Primary Hallway South"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBv" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBw" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bBx" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBy" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/space_up{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBA" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBB" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBC" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bBD" = ( +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"bBE" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bBF" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/item/storage/firstaid/toxin, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/airalarm/unlocked{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bBG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bBH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/miningdock) +"bBI" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/closet/wardrobe/miner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/radio/headset/headset_cargo/mining, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bBJ" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bBK" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bBL" = ( +/obj/machinery/vending/medical{ + pixel_x = -2 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bBN" = ( +/turf/closed/wall, +/area/crew_quarters/heads/cmo) +"bBO" = ( +/obj/machinery/computer/med_data, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bBP" = ( +/obj/machinery/computer/crew, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Medical Officer's Desk"; + departmentType = 5; + name = "Chief Medical Officer RC"; + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bBQ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bBR" = ( +/turf/closed/mineral/random/snow/no_caves, +/area/security/main) +"bBS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + dir = 4; + external_pressure_bound = 120; + name = "server vent" + }, +/turf/open/floor/circuit/telecomms/server, +/area/science/server) +"bBU" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 9 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"bBV" = ( +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM"; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/server) +"bBW" = ( +/obj/structure/table, +/obj/item/folder/white, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/science/server) +"bBX" = ( +/obj/machinery/computer/rdservercontrol{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"bBY" = ( +/obj/item/radio/intercom{ + pixel_x = -25 + }, +/obj/structure/filingcabinet, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bBZ" = ( +/obj/item/screwdriver{ + pixel_y = 10 + }, +/obj/item/radio/off, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bCa" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/science"; + name = "Science Security APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bCb" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/pen, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bCc" = ( +/obj/machinery/computer/secure_data{ + dir = 1 + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = -30 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science) +"bCd" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + sortType = 15 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light{ + light_color = "#cee5d2" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bCe" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bCf" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/hor"; + dir = 8; + name = "RD Office APC"; + pixel_x = -25 + }, +/obj/structure/cable, +/obj/machinery/light_switch{ + pixel_y = -23 + }, +/obj/item/twohanded/required/kirbyplants/dead, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"bCg" = ( +/obj/structure/table, +/obj/item/cartridge/signal/toxins, +/obj/item/cartridge/signal/toxins{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/cartridge/signal/toxins{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/machinery/camera{ + c_tag = "Research Director's Office"; + dir = 1; + network = list("ss13","rd") + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"bCh" = ( +/obj/machinery/keycard_auth{ + pixel_y = -24 + }, +/obj/machinery/light, +/obj/machinery/computer/card/minor/rd{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"bCi" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"bCj" = ( +/obj/structure/closet/secure_closet/RD, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"bCk" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/hor) +"bCl" = ( +/obj/machinery/camera{ + c_tag = "Experimentor Lab Chamber"; + dir = 1; + network = list("ss13","rd") + }, +/obj/machinery/light, +/obj/structure/sign/warning/nosmoking{ + pixel_y = -32 + }, +/turf/open/floor/engine, +/area/science/explab) +"bCm" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bCn" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bCo" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bCp" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bCq" = ( +/turf/closed/wall, +/area/maintenance/port/aft) +"bCr" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bCs" = ( +/turf/closed/wall, +/area/storage/tech) +"bCt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/mob/living/simple_animal/hostile/lizard{ + name = "Wags-His-Tail"; + real_name = "Wags-His-Tail" + }, +/turf/open/floor/plasteel, +/area/janitor) +"bCu" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bCv" = ( +/turf/closed/wall, +/area/janitor) +"bCw" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/janitor) +"bCx" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/gateway) +"bCy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/janitor) +"bCz" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"bCA" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"bCB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Surgery Maintenance"; + req_access_txt = "45" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bCC" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bCD" = ( +/obj/structure/table, +/obj/item/retractor, +/turf/open/floor/plasteel/white/side, +/area/medical/sleeper) +"bCE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bCF" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bCG" = ( +/obj/structure/table, +/obj/item/folder/white, +/obj/item/reagent_containers/dropper, +/obj/item/soap/nanotrasen, +/obj/item/gun/syringe/dart, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bCH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bCJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bCK" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bCL" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/machinery/camera{ + c_tag = "Medbay Storage"; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bCM" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bCN" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bCO" = ( +/obj/structure/table, +/obj/item/storage/box/bodybags{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/rxglasses, +/obj/item/hand_labeler, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bCP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/sleeper) +"bCQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/sleeper) +"bCR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bCS" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bCT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/bloodbankgen, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bCU" = ( +/obj/item/radio/intercom{ + frequency = 1485; + name = "Station Intercom (Medbay)"; + pixel_x = -30 + }, +/obj/machinery/camera{ + c_tag = "Medbay South"; + dir = 4; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bCV" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bCW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bCX" = ( +/obj/effect/decal/cleanable/oil, +/obj/item/cigbutt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/storage) +"bCY" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bCZ" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start/chief_medical_officer, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bDa" = ( +/obj/machinery/keycard_auth{ + pixel_x = 24 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bDb" = ( +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"bDc" = ( +/turf/closed/wall, +/area/science/storage) +"bDd" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"bDe" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bDf" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/storage) +"bDg" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bDh" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bDj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/storage) +"bDk" = ( +/obj/structure/table, +/obj/item/folder/yellow, +/obj/item/pen, +/obj/machinery/requests_console{ + department = "Mining"; + pixel_x = -30 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bDl" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"bDm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bDn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bDo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bDp" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bDq" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/obj/item/key/janitor, +/turf/open/floor/plasteel, +/area/janitor) +"bDr" = ( +/obj/item/restraints/legcuffs/beartrap, +/obj/item/restraints/legcuffs/beartrap, +/obj/item/storage/box/mousetraps, +/obj/item/storage/box/mousetraps, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/janitor) +"bDs" = ( +/obj/structure/sign/poster/contraband/lusty_xenomorph{ + pixel_x = 32 + }, +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plasteel, +/area/janitor) +"bDt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/maintenance/port/aft) +"bDu" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bDv" = ( +/obj/structure/table, +/obj/item/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/machinery/status_display/ai{ + pixel_x = -32 + }, +/obj/machinery/power/apc{ + areastring = "/area/storage/tech"; + dir = 1; + name = "Tech Storage APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bDw" = ( +/obj/structure/table, +/obj/item/screwdriver{ + pixel_y = 16 + }, +/obj/item/wirecutters, +/turf/open/floor/plating, +/area/storage/tech) +"bDx" = ( +/obj/structure/table, +/obj/item/electronics/apc, +/obj/item/electronics/airlock, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bDA" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/power/apc{ + areastring = "/area/medical/sleeper"; + dir = 4; + name = "Treatment Center APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bDB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/medical/sleeper) +"bDC" = ( +/obj/machinery/computer/operating{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bDD" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bDE" = ( +/obj/machinery/vending/wallmed{ + pixel_x = 28 + }, +/obj/machinery/camera{ + c_tag = "Medbay Recovery Room"; + dir = 8; + network = list("ss13","medbay") + }, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bDF" = ( +/obj/machinery/door/poddoor/preopen{ + id = "medpriv4"; + name = "privacy door" + }, +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay/central) +"bDG" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bDH" = ( +/obj/structure/closet/l3closet/janitor, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/janitor) +"bDI" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bDJ" = ( +/obj/structure/closet/jcloset, +/obj/item/storage/bag/trash, +/obj/item/clothing/under/rank/civilian/janitor/maid, +/obj/item/clothing/under/rank/civilian/janitor/maid, +/obj/item/clothing/under/rank/civilian/janitor/maid, +/obj/item/clothing/under/costume/maid, +/obj/item/clothing/under/costume/maid, +/obj/item/clothing/under/costume/maid, +/turf/open/floor/plasteel, +/area/janitor) +"bDK" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/camera{ + c_tag = "Custodial Closet" + }, +/obj/vehicle/ridden/janicart, +/turf/open/floor/plasteel, +/area/janitor) +"bDL" = ( +/obj/structure/sign/poster/contraband/lizard{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/janitor) +"bDM" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/janitor) +"bDN" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bDO" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/sign/poster/contraband/hacking_guide{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bDP" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 1; + freq = 1400; + location = "Janitor" + }, +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/janitor) +"bDQ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bDR" = ( +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bDS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bDT" = ( +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bDU" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Chief Medical Officer"; + req_access_txt = "40" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bDV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sorting/mail{ + sortType = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bDW" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Storage"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bDY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel, +/area/science/storage) +"bDZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bEa" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bEb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/storage) +"bEc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/science/storage) +"bEd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Storage"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bEe" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bEf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"bEg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/research{ + name = "Toxins Storage"; + req_access_txt = "8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/storage) +"bEh" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bEi" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) +"bEj" = ( +/obj/structure/table/glass, +/obj/item/pen, +/obj/item/clothing/neck/stethoscope, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/mob/living/simple_animal/pet/cat/Runtime, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bEk" = ( +/obj/structure/table/glass, +/obj/item/folder/white, +/obj/item/stamp/cmo, +/obj/item/clothing/glasses/hud/health, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bEl" = ( +/obj/structure/disposalpipe/segment, +/obj/item/radio/intercom{ + pixel_x = 25 + }, +/obj/machinery/camera{ + c_tag = "Chief Medical Office"; + dir = 8; + network = list("ss13","medbay"); + pixel_y = -22 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bEm" = ( +/turf/open/floor/engine, +/area/science/xenobiology) +"bEn" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Test Chamber"; + network = list("xeno","rd") + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bEo" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/science/storage) +"bEp" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 32 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/science/storage) +"bEq" = ( +/obj/machinery/power/apc{ + areastring = "/area/science/research"; + dir = 8; + name = "Misc Research APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"bEr" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/research) +"bEs" = ( +/turf/closed/wall, +/area/science/mixing) +"bEt" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/white, +/area/science/research) +"bEu" = ( +/obj/structure/closet/bombcloset, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bEv" = ( +/obj/structure/closet/bombcloset, +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bEw" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bEx" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Toxins Lab West"; + network = list("ss13","rd") + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bEy" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bEz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bEA" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bEB" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bEC" = ( +/turf/closed/wall/r_wall, +/area/science/mixing) +"bED" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bEE" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bEF" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bEG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bEH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/science/mixing) +"bEI" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bEJ" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"bEK" = ( +/obj/machinery/camera{ + c_tag = "Mining Dock"; + dir = 4 + }, +/obj/machinery/computer/security/mining, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bEL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bEM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) +"bEN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/science/mixing) +"bEO" = ( +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bEP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bEQ" = ( +/obj/effect/landmark/start/shaft_miner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bER" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bES" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/port/aft) +"bET" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bEU" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/tech) +"bEV" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/tech) +"bEW" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/tech) +"bEX" = ( +/obj/structure/table, +/obj/item/aicard, +/obj/item/aiModule/reset, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bEY" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/tech) +"bEZ" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plating, +/area/storage/tech) +"bFa" = ( +/turf/open/floor/plating, +/area/storage/tech) +"bFb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bFc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/blobstart, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bFd" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bFe" = ( +/obj/machinery/door/airlock/engineering{ + name = "Tech Storage"; + req_access_txt = "23" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bFf" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/janitor, +/turf/open/floor/plasteel, +/area/janitor) +"bFg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/janitor) +"bFh" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bFi" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/janitor) +"bFj" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bFk" = ( +/obj/item/mop, +/obj/item/reagent_containers/glass/bucket, +/obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6{ + pixel_x = 32 + }, +/obj/structure/closet, +/turf/open/floor/plasteel, +/area/janitor) +"bFl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/janitor"; + dir = 8; + name = "Custodial Closet APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFm" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 6 + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFn" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFo" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bFr" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFs" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Custodial Maintenance"; + req_access_txt = "26" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFt" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Operating Theatre"; + req_access_txt = "45" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bFv" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bFw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bFx" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bFz" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/sleeper) +"bFA" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/machinery/requests_console{ + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = 30 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bFB" = ( +/obj/structure/closet/secure_closet/medical2, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"bFC" = ( +/obj/structure/table/wood/poker, +/obj/item/clothing/mask/cigarette/cigar{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bFD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bFE" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/cmo{ + dir = 1; + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bFF" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bFG" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bFH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light_switch{ + pixel_x = 28 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bFI" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/storage) +"bFJ" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/structure/sign/warning/nosmoking{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bFK" = ( +/obj/structure/closet/wardrobe/pjs, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bFL" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bFM" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 2 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bFN" = ( +/obj/structure/table, +/obj/item/cartridge/medical{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/cartridge/medical{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/cartridge/medical, +/obj/item/cartridge/chemistry{ + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bFO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) +"bFP" = ( +/obj/machinery/computer/card/minor/cmo{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bFQ" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"bFR" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/research) +"bFS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bFT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bFU" = ( +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bFV" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bFW" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bFX" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bFY" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "8;12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bFZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/science/mixing) +"bGa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/maintenance/starboard) +"bGb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/science/mixing) +"bGc" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/mixing) +"bGd" = ( +/obj/machinery/doppler_array/research/science{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/mixing) +"bGe" = ( +/turf/closed/wall, +/area/science/test_area) +"bGf" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/science/test_area) +"bGi" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"bGj" = ( +/obj/machinery/computer/shuttle/mining{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bGk" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bGl" = ( +/obj/item/assembly/prox_sensor{ + pixel_x = -4; + pixel_y = 1 + }, +/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_y = 2 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bGm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bGn" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bGo" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Firefighting equipment"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bGp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bGq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bGr" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/tech) +"bGs" = ( +/obj/machinery/camera{ + c_tag = "Secure Tech Storage" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/storage/tech) +"bGt" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/AI, +/turf/open/floor/plasteel, +/area/storage/tech) +"bGu" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/storage/tech) +"bGv" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/multitool, +/turf/open/floor/plating, +/area/storage/tech) +"bGw" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/rnd, +/turf/open/floor/plating, +/area/storage/tech) +"bGx" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/tcomms, +/turf/open/floor/plating, +/area/storage/tech) +"bGy" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/service, +/turf/open/floor/plating, +/area/storage/tech) +"bGz" = ( +/obj/structure/table/reinforced, +/obj/item/wrench, +/obj/item/screwdriver{ + pixel_y = 10 + }, +/obj/item/analyzer, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bGA" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bGB" = ( +/obj/structure/table, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/machinery/requests_console{ + department = "Janitorial"; + departmentType = 1; + pixel_y = -29 + }, +/obj/item/reagent_containers/spray/cleaner, +/obj/item/storage/box/lights/mixed, +/obj/item/storage/box/lights/mixed, +/turf/open/floor/plasteel, +/area/janitor) +"bGC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + name = "Toxins Launch Room Access"; + req_access_txt = "7" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bGD" = ( +/obj/structure/janitorialcart, +/turf/open/floor/plasteel, +/area/janitor) +"bGE" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/janitor) +"bGF" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bGG" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bGH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bGL" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bGM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bGN" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bGO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bGP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGQ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGR" = ( +/obj/structure/table, +/obj/item/storage/belt/medical{ + pixel_y = 2 + }, +/obj/item/storage/belt/medical{ + pixel_y = 2 + }, +/obj/item/storage/belt/medical{ + pixel_y = 2 + }, +/obj/item/clothing/neck/stethoscope, +/obj/item/gun/syringe/dart, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bGT" = ( +/obj/structure/table, +/obj/item/folder/white, +/obj/item/clothing/neck/stethoscope, +/obj/machinery/vending/wallmed{ + pixel_y = 28 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bGU" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/machinery/button/door{ + id = "medpriv4"; + name = "Privacy Shutters"; + pixel_y = 25 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bGV" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bGW" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGX" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bGY" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/plasteel, +/area/science/storage) +"bGZ" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bHa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/heads/cmo) +"bHb" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bHc" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"bHd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHe" = ( +/obj/machinery/power/apc{ + areastring = "/area/science/storage"; + dir = 8; + name = "Toxins Storage APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/camera{ + c_tag = "Toxins Storage"; + dir = 4; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel, +/area/science/storage) +"bHf" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bHg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"bHh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bHi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bHj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHk" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHl" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHm" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + name = "Toxins Lab"; + req_access_txt = "7" + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bHn" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/closed/wall/r_wall, +/area/maintenance/aft) +"bHo" = ( +/obj/structure/closet, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHp" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/science/mixing) +"bHs" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, +/area/science/mixing) +"bHt" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bHu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bHv" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bHw" = ( +/obj/item/target, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/test_area) +"bHy" = ( +/obj/structure/closet/crate, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bHz" = ( +/obj/item/stack/ore/iron, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bHA" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bHC" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bHD" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bHE" = ( +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bHG" = ( +/obj/structure/rack, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/spawner/lootdrop/techstorage/command, +/turf/open/floor/plasteel, +/area/storage/tech) +"bHH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bHI" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Tech Storage"; + req_access_txt = "19;23" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bHJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating, +/area/storage/tech) +"bHK" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"bHL" = ( +/obj/machinery/camera{ + c_tag = "Research Division South"; + dir = 8 + }, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"bHM" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/research) +"bHN" = ( +/obj/machinery/requests_console{ + department = "Tech storage"; + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bHO" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/multitool, +/obj/item/clothing/glasses/meson, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/storage/tech) +"bHP" = ( +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHQ" = ( +/obj/machinery/vending/assist, +/turf/open/floor/plating, +/area/storage/tech) +"bHR" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Aft Primary Hallway 2"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHS" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHT" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/medical/medbay/central) +"bHU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHV" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/aft"; + dir = 8; + name = "Aft Maintenance APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHW" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHX" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/maintenance/aft) +"bHY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bIa" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bIb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"bIc" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/sleeper) +"bId" = ( +/obj/machinery/vending/wallmed{ + pixel_y = -28 + }, +/obj/machinery/camera{ + c_tag = "Surgery Operating"; + dir = 1; + network = list("ss13","medbay"); + pixel_x = 22 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bIe" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/status_display/evac{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bIf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/doorButtons/access_button{ + idDoor = "virology_airlock_exterior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_x = -24; + req_access_txt = "39" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + id_tag = "virology_airlock_exterior"; + name = "Virology Exterior Airlock"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bIg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2; + sortType = 13 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bIh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bIi" = ( +/obj/structure/table, +/obj/item/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bIj" = ( +/obj/structure/table, +/obj/machinery/light, +/obj/item/reagent_containers/spray/cleaner, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/hand_labeler, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bIk" = ( +/obj/structure/table, +/obj/item/storage/firstaid/fire{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/machinery/door/window/northright{ + name = "First-Aid Supplies"; + red_alert_access = 1; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bIl" = ( +/obj/structure/table, +/obj/item/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/toxin, +/obj/item/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/machinery/door/window/northleft{ + name = "First-Aid Supplies"; + red_alert_access = 1; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bIm" = ( +/obj/machinery/light, +/obj/machinery/rnd/production/techfab/department/medical, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bIn" = ( +/obj/structure/table, +/obj/item/storage/firstaid/brute{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/brute, +/obj/item/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bIo" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bIp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bIq" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bIr" = ( +/obj/machinery/door/airlock/medical{ + name = "Patient Room"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bIs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Xenobiology Maintenance"; + req_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bIt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bIu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bIv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bIw" = ( +/obj/structure/closet/secure_closet/CMO, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/heads/cmo) +"bIx" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"bIy" = ( +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/engine, +/area/science/xenobiology) +"bIz" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/storage) +"bIA" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/storage) +"bIB" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/storage) +"bIC" = ( +/turf/open/floor/plasteel, +/area/science/storage) +"bID" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"bIE" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bIF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bIG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bIH" = ( +/obj/machinery/pipedispenser/disposal, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bII" = ( +/obj/item/storage/secure/safe{ + pixel_x = 5; + pixel_y = 29 + }, +/obj/machinery/camera{ + c_tag = "Virology Break Room"; + network = list("ss13","medbay") + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bIJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bIK" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bIL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bIM" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/warning/securearea{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bIN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"bIO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bIP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/black, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bIQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bIR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bIS" = ( +/obj/machinery/door/airlock/research{ + name = "Toxins Launch Room"; + req_access_txt = "7" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bIT" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sign/departments/xenobio{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"bIU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, +/area/science/mixing) +"bIV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bIW" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/mixing) +"bIX" = ( +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'BOMB RANGE"; + name = "BOMB RANGE" + }, +/turf/closed/wall, +/area/science/test_area) +"bIY" = ( +/obj/structure/chair, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/test_area) +"bIZ" = ( +/obj/structure/chair, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/test_area) +"bJa" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/test_area) +"bJb" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Dock"; + req_access_txt = "48" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"bJd" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Dock"; + req_access_txt = "48" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bJe" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bJf" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bJg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/storage/tech) +"bJh" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/RnD_secure, +/turf/open/floor/plasteel, +/area/storage/tech) +"bJi" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/storage/tech) +"bJj" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/analyzer, +/obj/item/stock_parts/subspace/analyzer, +/obj/item/stock_parts/subspace/analyzer, +/turf/open/floor/plating, +/area/storage/tech) +"bJk" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/medical, +/turf/open/floor/plating, +/area/storage/tech) +"bJl" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/engineering, +/turf/open/floor/plating, +/area/storage/tech) +"bJm" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/security, +/turf/open/floor/plating, +/area/storage/tech) +"bJn" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bJo" = ( +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/science/research) +"bJp" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bJq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/science/research) +"bJs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJu" = ( +/obj/structure/light_construct{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction) +"bJv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJx" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bJy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJz" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bJA" = ( +/obj/effect/landmark/blobstart, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJB" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bJC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/sleeper) +"bJD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/medical/sleeper) +"bJE" = ( +/turf/closed/wall/r_wall, +/area/medical/medbay/central) +"bJF" = ( +/obj/machinery/pipedispenser/disposal/transit_tube, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bJG" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bJH" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/shieldwallgen/xenobiologyaccess, +/turf/open/floor/plating, +/area/science/xenobiology) +"bJI" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/xenobiology) +"bJJ" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/xenobiology) +"bJK" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/xenobiology) +"bJM" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/xenobiology) +"bJN" = ( +/turf/closed/wall, +/area/science/xenobiology) +"bJO" = ( +/obj/machinery/door/airlock/research{ + name = "Testing Lab"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bJP" = ( +/obj/effect/spawner/lootdrop/keg, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bJQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bJR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/science/storage) +"bJT" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/white, +/area/science/research) +"bJU" = ( +/obj/machinery/vending/wardrobe/science_wardrobe, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bJV" = ( +/obj/structure/closet/l3closet/scientist{ + pixel_x = -2 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bJW" = ( +/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/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_y = -30; + receive_ore_updates = 1 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bJX" = ( +/obj/item/assembly/signaler{ + pixel_y = 8 + }, +/obj/item/assembly/signaler{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/assembly/signaler{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/assembly/signaler{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bJY" = ( +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bJZ" = ( +/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, +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bKa" = ( +/obj/machinery/power/apc{ + areastring = "/area/science/mixing"; + dir = 4; + name = "Toxins Lab APC"; + pixel_x = 26 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bKb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/science/mixing) +"bKc" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bKd" = ( +/obj/machinery/camera{ + c_tag = "Toxins Launch Room Access"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bKe" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/science/mixing) +"bKf" = ( +/obj/machinery/door/window/southleft{ + name = "Mass Driver Door"; + req_access_txt = "7" + }, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plasteel, +/area/science/mixing) +"bKg" = ( +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/test_area) +"bKh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/test_area) +"bKi" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/test_area) +"bKj" = ( +/obj/machinery/camera{ + c_tag = "Mining Dock External"; + dir = 8 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bKk" = ( +/obj/item/stack/ore/silver, +/obj/item/stack/ore/silver, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bKl" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bKm" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall, +/area/quartermaster/miningdock) +"bKn" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/pickaxe{ + pixel_x = 5 + }, +/obj/item/shovel{ + pixel_x = -5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bKo" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bKp" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bKq" = ( +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bKr" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/tech) +"bKs" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/tech) +"bKt" = ( +/obj/structure/table, +/obj/item/stock_parts/micro_laser, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/capacitor, +/obj/item/stock_parts/micro_laser/high, +/obj/item/stock_parts/micro_laser/high, +/obj/item/stock_parts/micro_laser/high, +/obj/item/stock_parts/micro_laser/high, +/turf/open/floor/plating, +/area/storage/tech) +"bKu" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/amplifier, +/obj/item/stock_parts/subspace/amplifier, +/obj/item/stock_parts/subspace/amplifier, +/turf/open/floor/plating, +/area/storage/tech) +"bKv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bKw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/aft) +"bKx" = ( +/obj/structure/closet/crate, +/obj/effect/landmark/blobstart, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/construction) +"bKy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/aft) +"bKz" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKA" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/construction) +"bKB" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKC" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bKG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/warning/securearea{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKI" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + sortType = 11 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKK" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/medbay/central"; + dir = 4; + name = "Medbay APC"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKL" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bKN" = ( +/obj/machinery/door/airlock/medical{ + name = "Apothecary"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bKO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bKP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/window/westleft{ + name = "Delivery Desk"; + req_access_txt = "50" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bKQ" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/medbay/central) +"bKS" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/cmo"; + dir = 1; + name = "CM Office APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bKU" = ( +/obj/machinery/door/airlock/engineering/abandoned{ + name = "Construction Area"; + req_access_txt = "32" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/construction) +"bKV" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bKW" = ( +/obj/item/wrench, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bKX" = ( +/obj/machinery/button/door{ + id = "misclab"; + name = "Test Chamber Blast Doors"; + pixel_y = -2; + req_access_txt = "55" + }, +/obj/structure/table/reinforced, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bKY" = ( +/obj/machinery/computer/security/telescreen{ + name = "Test Chamber Monitor"; + network = list("xeno"); + pixel_y = 2 + }, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bKZ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bLb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bLc" = ( +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/obj/structure/table, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bLd" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/doorButtons/access_button{ + idDoor = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_x = 8; + pixel_y = -28; + req_access_txt = "39" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bLe" = ( +/obj/structure/sign/warning/biohazard, +/turf/closed/wall, +/area/science/xenobiology) +"bLf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bLg" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bLh" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall, +/area/science/research) +"bLi" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bLj" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/science/mixing) +"bLk" = ( +/obj/machinery/mass_driver{ + dir = 4; + id = "toxinsdriver" + }, +/turf/open/floor/plating, +/area/science/mixing) +"bLl" = ( +/obj/machinery/door/poddoor{ + id = "toxinsdriver"; + name = "toxins launcher bay door" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/science/mixing) +"bLm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/science/mixing) +"bLn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/test_area) +"bLo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/test_area) +"bLp" = ( +/obj/item/beacon, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/test_area) +"bLq" = ( +/turf/closed/indestructible{ + desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; + icon_state = "riveted"; + name = "hyper-reinforced wall" + }, +/area/science/test_area) +"bLr" = ( +/obj/item/target/alien/anchored, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/camera/preset/toxins{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/test_area) +"bLu" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bLv" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bLw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bLx" = ( +/obj/structure/table, +/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, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bLy" = ( +/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, +/turf/open/floor/plating, +/area/storage/tech) +"bLz" = ( +/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, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/storage/tech) +"bLA" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/t_scanner, +/obj/item/multitool, +/obj/machinery/camera{ + c_tag = "Tech Storage"; + dir = 1 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bLB" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bLC" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/construction) +"bLD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/storage/tech) +"bLE" = ( +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bLF" = ( +/obj/structure/filingcabinet/filingcabinet, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/sorting"; + name = "Delivery Office APC"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bLG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bLH" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bLI" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bLJ" = ( +/obj/machinery/computer/atmos_control, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bLK" = ( +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bLL" = ( +/obj/machinery/computer/station_alert, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bLM" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bLN" = ( +/obj/machinery/vending/wardrobe/atmos_wardrobe, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bLO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/maintenance{ + name = "Atmospherics Maintenance"; + req_access_txt = "24" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bLP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bLQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bLR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bLS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bLT" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bLU" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/chem_dispenser, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bLV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/chem_heater, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bLW" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bLX" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bLY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bLZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bMa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bMc" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Medbay Maintenance"; + req_access_txt = "5" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bMd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bMe" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bMf" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stack/cable_coil, +/obj/item/multitool, +/obj/item/stock_parts/cell/high/plus, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bMg" = ( +/obj/machinery/power/apc{ + areastring = "/area/science/xenobiology"; + dir = 8; + name = "Xenobiology APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bMh" = ( +/obj/structure/chair/stool, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bMi" = ( +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bMj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/port/aft) +"bMk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bMl" = ( +/obj/machinery/processor/slime, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bMm" = ( +/obj/machinery/monkey_recycler, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bMn" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + desc = "Used to grind things up into raw materials and liquids."; + pixel_y = 5 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bMo" = ( +/obj/machinery/smartfridge/extract/preloaded, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bMp" = ( +/obj/structure/closet/l3closet/scientist, +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/item/extinguisher, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bMq" = ( +/obj/structure/closet/l3closet/scientist, +/obj/item/extinguisher, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bMr" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/science/xenobiology) +"bMs" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/research) +"bMt" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"bMu" = ( +/obj/machinery/door/poddoor/incinerator_toxmix, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"bMv" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) +"bMw" = ( +/obj/machinery/sparker/toxmix{ + pixel_x = 25 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"bMx" = ( +/obj/machinery/airlock_sensor/incinerator_toxmix{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/engine, +/area/science/mixing) +"bMy" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "mix to port" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bMz" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{ + pixel_x = -24 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bMA" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bMB" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bMC" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bMD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/test_area) +"bME" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/test_area) +"bMG" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bMH" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMI" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMK" = ( +/turf/closed/wall, +/area/engine/atmos) +"bML" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/plasticflaps/opaque, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "Atmospherics" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Atmospherics Desk"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bMM" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bMN" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bMO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bMP" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bMQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bMR" = ( +/obj/machinery/pipedispenser, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bMS" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics North East" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Distro to Waste" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bMT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/meter/atmos/atmos_waste_loop, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bMU" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bMV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible, +/obj/machinery/meter/atmos/distro_loop, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bMW" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bMX" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Air to Distro" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bMY" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bMZ" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bNc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/medical/virology) +"bNd" = ( +/turf/closed/wall/r_wall, +/area/medical/virology) +"bNe" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/table, +/obj/item/hand_labeler, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bNf" = ( +/obj/structure/sign/warning/biohazard, +/turf/closed/wall, +/area/medical/virology) +"bNg" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bNh" = ( +/obj/machinery/computer/pandemic, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNi" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology/glass{ + name = "Isolation A"; + req_access_txt = "39" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNk" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/medical/virology) +"bNl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology/glass{ + name = "Isolation B"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNm" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bNn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bNo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bNp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bNq" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/mineral/plasma, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bNr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Xenobiology Lab"; + req_access_txt = "55" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bNs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNt" = ( +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"bNu" = ( +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior, +/turf/open/floor/engine, +/area/science/mixing) +"bNv" = ( +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, +/turf/open/floor/engine, +/area/science/mixing) +"bNw" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix, +/turf/open/floor/engine, +/area/science/mixing) +"bNx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bNy" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bNz" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/camera{ + c_tag = "Toxins Lab East"; + dir = 8; + network = list("ss13","rd"); + pixel_y = -22 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bNA" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bNB" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bNC" = ( +/obj/structure/closet/wardrobe/grey, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bND" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/test_area) +"bNE" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/test_area) +"bNF" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/test_area) +"bNG" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/test_area) +"bNH" = ( +/obj/structure/table/reinforced, +/obj/item/radio/intercom{ + pixel_y = -26 + }, +/obj/item/paper_bin{ + pixel_x = -3 + }, +/obj/item/pen{ + pixel_x = -3 + }, +/obj/item/folder/yellow{ + pixel_x = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bNI" = ( +/turf/closed/wall, +/area/construction) +"bNJ" = ( +/turf/open/floor/plating, +/area/construction) +"bNK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining/glass{ + name = "Cargo Office"; + req_access_txt = "50" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bNN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bNO" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bNP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bNQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bNR" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics Monitoring" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/checker, +/area/engine/atmos) +"bNS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bNT" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics North West"; + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bNU" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/medical/virology) +"bNV" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bNW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bNY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bNZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bOb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bOc" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix to Distro" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bOd" = ( +/turf/open/floor/plasteel, +/area/engine/atmos) +"bOe" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold4w/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bOf" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bOg" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix to Incinerator" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bOh" = ( +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bOj" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/medical/virology) +"bOk" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bOl" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/announcement_system, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bOm" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bOn" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bOo" = ( +/obj/item/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Telecomms)"; + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bOp" = ( +/obj/structure/closet/emcloset, +/obj/machinery/camera{ + c_tag = "Virology Airlock"; + network = list("ss13","medbay") + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bOq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bOr" = ( +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bOs" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bOt" = ( +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bOu" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bOv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bOw" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bOx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bOy" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bOz" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bOA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/science/research) +"bOB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"bOC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bOD" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bOE" = ( +/obj/machinery/sparker/toxmix{ + pixel_x = 25 + }, +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"bOF" = ( +/obj/structure/sign/warning/fire{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/engine, +/area/science/mixing) +"bOG" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "port to mix" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bOH" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/machinery/button/door/incinerator_vent_toxmix{ + pixel_x = -25; + pixel_y = 5 + }, +/obj/machinery/button/ignition/incinerator/toxmix{ + pixel_x = -25; + pixel_y = -5 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bOI" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bOJ" = ( +/obj/item/target, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/test_area) +"bOK" = ( +/obj/structure/barricade/wooden, +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bOL" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bOM" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/item/pen/fountain, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bON" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kanyewest"; + name = "privacy shutters" + }, +/turf/open/floor/plating, +/area/security/detectives_office) +"bOO" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/engineering"; + dir = 8; + name = "Engineering Security APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bOP" = ( +/obj/structure/table/glass, +/obj/structure/reagent_dispensers/virusfood{ + pixel_x = -30 + }, +/obj/item/book/manual/wiki/infections{ + pixel_y = 7 + }, +/obj/item/reagent_containers/syringe/antiviral, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/spray/cleaner, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bOQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/beacon, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bOR" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bOS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bOT" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "Atmospherics Blast Door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bOU" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bOV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bOW" = ( +/obj/machinery/requests_console{ + department = "Atmospherics"; + departmentType = 4; + name = "Atmos RC"; + pixel_x = 30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/computer/atmos_control{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"bOX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bOY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/atmos) +"bOZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bPa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bPb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research/glass{ + name = "Circuitry Lab"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bPc" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Mix to Waste" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bPd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bPe" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bPf" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bPg" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bPh" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bPi" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bPj" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/structure/grille, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bPk" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Waste Tank" + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"bPl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"bPm" = ( +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"bPn" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/aft) +"bPo" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bPp" = ( +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bPq" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bPr" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/closet/l3closet, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bPs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"bPt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bPu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bPw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/virology) +"bPx" = ( +/obj/machinery/disposal/bin, +/obj/structure/sign/warning/deathsposal{ + pixel_y = -32 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bPz" = ( +/obj/structure/table/glass, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 7 + }, +/obj/item/storage/box/syringes{ + pixel_y = 5 + }, +/obj/item/storage/box/monkeycubes{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/storage/box/monkeycubes, +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bPA" = ( +/obj/machinery/computer/camera_advanced/xenobio{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bPE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/portable_atmospherics/canister/bz, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bPF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"bPG" = ( +/obj/machinery/chem_master, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/machinery/light, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bPH" = ( +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_y = -30; + receive_ore_updates = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/slime_scanner, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bPI" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bPJ" = ( +/obj/structure/table/glass, +/obj/item/stack/sheet/mineral/plasma{ + pixel_y = 4 + }, +/obj/item/stack/sheet/mineral/plasma{ + pixel_y = 4 + }, +/obj/item/stack/sheet/mineral/plasma{ + pixel_y = 4 + }, +/obj/item/stack/sheet/mineral/plasma{ + pixel_y = 4 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/dropper, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bPK" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/science/misc_lab) +"bPL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bPM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"bPN" = ( +/turf/closed/wall, +/area/science/misc_lab) +"bPO" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bPP" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bPQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bPU" = ( +/obj/item/shard, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bPV" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Maint Bar Access"; + req_access_txt = "12" + }, +/obj/structure/barricade/wooden{ + name = "wooden barricade (CLOSED)" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bPW" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bPX" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bPY" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bPZ" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bQa" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bQb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bQc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plating, +/area/construction) +"bQd" = ( +/obj/structure/table, +/obj/item/folder/blue, +/obj/item/pen/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bQe" = ( +/obj/item/screwdriver{ + pixel_y = 10 + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for the engineering security doors."; + id = "Engineering"; + name = "Engineering Lockdown"; + pixel_x = -24; + pixel_y = -6; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/radio/off, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light_switch{ + pixel_x = -27; + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bQf" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bQg" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bQh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQi" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Atmospherics Desk"; + req_access_txt = "24" + }, +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "Atmospherics Blast Door" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQl" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/computer/atmos_alert{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"bQm" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/engine/atmos) +"bQo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQp" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQq" = ( +/obj/machinery/camera{ + c_tag = "Security Post - Engineering"; + dir = 8 + }, +/obj/item/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/vending/wardrobe/sec_wardrobe, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bQr" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQs" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Air to Waste" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQt" = ( +/obj/item/crowbar, +/obj/item/wrench, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/aft) +"bQu" = ( +/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/plasteel, +/area/engine/atmos) +"bQv" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQw" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQx" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix to Distro" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQy" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bQz" = ( +/obj/machinery/computer/atmos_control/tank/mix_tank{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQA" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"bQB" = ( +/obj/machinery/air_sensor/atmos/mix_tank, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"bQC" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"bQD" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bQE" = ( +/obj/structure/table, +/obj/item/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bQF" = ( +/obj/machinery/vending/wardrobe/viro_wardrobe, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bQG" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/science/circuit) +"bQH" = ( +/obj/structure/closet/l3closet, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bQI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bQJ" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bQK" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Control Room"; + req_access_txt = "19; 61" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bQM" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bQN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology North"; + dir = 8; + network = list("ss13","rd") + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bQO" = ( +/obj/structure/closet/bombcloset, +/obj/machinery/light_switch{ + pixel_x = -20 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bQP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bQQ" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bQR" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/ears/earmuffs, +/obj/machinery/camera{ + c_tag = "Testing Lab North"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bQS" = ( +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_y = 30; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bQT" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"bQU" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"bQV" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"bQW" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"bQY" = ( +/obj/structure/table/reinforced, +/obj/item/integrated_circuit_printer, +/obj/machinery/computer/security/telescreen/circuitry{ + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bQZ" = ( +/turf/closed/wall/r_wall, +/area/science/misc_lab) +"bRa" = ( +/obj/structure/table/reinforced, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/stack/sheet/metal/ten, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bRg" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bRh" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bRi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bRj" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bRk" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bRl" = ( +/obj/structure/light_construct{ + dir = 8 + }, +/turf/open/floor/plating, +/area/construction) +"bRm" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bRn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/construction) +"bRo" = ( +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/engine{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bRp" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bRr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRs" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "Atmospherics Blast Door" + }, +/turf/open/floor/plating, +/area/engine/atmos) +"bRt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRu" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/computer/atmos_alert{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"bRv" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start/atmospheric_technician, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRw" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRx" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/engine/atmos) +"bRy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/atmos/glass{ + name = "Distribution Loop"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRD" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRE" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRF" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRG" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRI" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bRJ" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Unfiltered & Air to Mix" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRL" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"bRM" = ( +/obj/structure/table, +/obj/machinery/light_switch{ + pixel_x = -23 + }, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bRN" = ( +/turf/closed/wall, +/area/medical/virology) +"bRO" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bRP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + id_tag = "virology_airlock_interior"; + name = "Virology Interior Airlock"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bRQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/virology) +"bRR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology/glass{ + name = "Monkey Pen"; + req_access_txt = "39" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bRS" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start/depsec/engineering, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bRT" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/engine, +/area/science/xenobiology) +"bRU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bRV" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bRW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/xenobiology) +"bRY" = ( +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "xenobio8"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bRZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bSa" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/xenobiology) +"bSb" = ( +/obj/structure/closet/l3closet/scientist{ + pixel_x = -2 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bSc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bSd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bSe" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/electropack, +/obj/item/healthanalyzer, +/obj/item/assembly/signaler, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bSf" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bSg" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"bSh" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/engine, +/area/science/misc_lab) +"bSi" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"bSj" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"bSk" = ( +/obj/effect/landmark/start/scientist, +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bSl" = ( +/turf/closed/wall/r_wall, +/area/science/circuit) +"bSm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"bSn" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bSo" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bSp" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bSq" = ( +/obj/structure/rack, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bSs" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bSt" = ( +/obj/structure/closet/emcloset, +/obj/machinery/camera{ + c_tag = "Telecomms Monitoring"; + dir = 8; + network = list("tcomms") + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bSv" = ( +/obj/machinery/camera{ + c_tag = "Construction Area"; + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plating, +/area/construction) +"bSw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bSx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction) +"bSy" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bSz" = ( +/obj/structure/table, +/turf/open/floor/plating, +/area/construction) +"bSA" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bSB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Monitoring"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bSC" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bSD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/engine/atmos) +"bSE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/engine/atmos) +"bSF" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bSI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bSJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"bSK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"bSM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"bSN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"bSQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bSR" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bSS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology{ + name = "Break Room"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bST" = ( +/obj/machinery/doorButtons/airlock_controller{ + idExterior = "virology_airlock_exterior"; + idInterior = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Console"; + pixel_x = 8; + pixel_y = 22; + req_access_txt = "39" + }, +/obj/machinery/light_switch{ + pixel_x = -4; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bSU" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bSV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/firealarm{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bSW" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bSX" = ( +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/medical/virology"; + dir = 1; + name = "Virology APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/camera{ + c_tag = "Virology Module"; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bSY" = ( +/obj/machinery/vending/medical, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bTf" = ( +/obj/structure/rack, +/obj/item/wrench, +/obj/item/crowbar, +/obj/machinery/computer/security/telescreen{ + name = "Test Chamber Monitor"; + network = list("test"); + pixel_y = -30 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bTg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bTh" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bTi" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bTj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"bTk" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/engine, +/area/science/misc_lab) +"bTl" = ( +/turf/open/floor/engine, +/area/science/misc_lab) +"bTm" = ( +/obj/machinery/atmospherics/components/trinary/mixer/flipped{ + dir = 1 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"bTn" = ( +/obj/structure/table, +/obj/item/assembly/igniter{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/assembly/igniter{ + pixel_x = 5; + pixel_y = -4 + }, +/obj/item/assembly/igniter{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/assembly/igniter{ + pixel_x = 2; + pixel_y = -1 + }, +/obj/machinery/light{ + dir = 4 + }, +/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/item/assembly/timer{ + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"bTo" = ( +/obj/structure/table/reinforced, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bTp" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/glass/fifty, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bTr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bTz" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bTA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/port/aft) +"bTB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/maintenance/port/aft) +"bTC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/port/aft) +"bTD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bTE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bTF" = ( +/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bTG" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/pen, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bTH" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/security_space_law, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bTI" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bTJ" = ( +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/aft"; + dir = 8; + name = "Aft Hall APC"; + pixel_x = -25; + pixel_y = 1 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bTK" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"bTL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTN" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTQ" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Waste to Filter" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTR" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Filter to Waste" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTS" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTU" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTV" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "N2O Outlet Pump" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/cafeteria, +/area/engine/atmos) +"bTW" = ( +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"bTX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output{ + dir = 8 + }, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"bTY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/medical/virology) +"bTZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/virology) +"bUa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/medical/virology) +"bUb" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bUc" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Telecomms Admin"; + departmentType = 5; + name = "Telecomms RC"; + pixel_x = 30 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bUd" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio3"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bUe" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/xenobiology) +"bUg" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bUh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/xenobiology) +"bUi" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bUj" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bUk" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bUl" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2; + sortType = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bUm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bUn" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"bUo" = ( +/obj/structure/table, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/turf/open/floor/engine, +/area/science/misc_lab) +"bUp" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bUq" = ( +/obj/machinery/vending/assist, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bUs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bUt" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bUu" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bUv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bUx" = ( +/obj/structure/disposalpipe/junction/yjunction{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bUy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bUz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bUB" = ( +/obj/machinery/power/apc{ + areastring = "/area/tcommsat/computer"; + name = "Telecomms Monitoring APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bUC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"bUD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bUE" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/engine/atmos) +"bUF" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"bUG" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bUH" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUI" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor5" + }, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"bUJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"bUM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 10 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"bUO" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/visible, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bUP" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/atmos) +"bUQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Mix to External" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUT" = ( +/obj/machinery/computer/atmos_control/tank/nitrous_tank{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/white/corner, +/area/engine/atmos) +"bUU" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/atmospherics/miner/n2o, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"bUV" = ( +/obj/machinery/air_sensor/atmos/nitrous_tank, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"bUW" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"bUY" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bUZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bVa" = ( +/obj/machinery/smartfridge/chemistry/virology/preloaded, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bVb" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bVc" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bVd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bVe" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bVf" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bVg" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bVh" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bVi" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall, +/area/science/xenobiology) +"bVj" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bVk" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bVl" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bVm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bVn" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bVo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/break_room) +"bVp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bVq" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bVr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bVs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"bVt" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/target_stake, +/turf/open/floor/plasteel, +/area/science/circuit) +"bVx" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/maintenance/port/aft) +"bVy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bVA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bVB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bVC" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bVD" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/sign/warning/deathsposal{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bVE" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bVF" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bVG" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = -28 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bVI" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"bVJ" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"bVK" = ( +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bVM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bVN" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Access"; + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"bVO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bVP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bVQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bVR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/suit_storage_unit/atmos, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"bVS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/sign/warning/securearea, +/turf/closed/wall, +/area/engine/atmos) +"bVT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bVU" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/engine/atmos) +"bVV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bVW" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Air to External" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bVX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/suit_storage_unit/atmos, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bVY" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "External to Filter" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bVZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bWa" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bWc" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ + dir = 1 + }, +/turf/open/floor/plasteel/white/corner, +/area/engine/atmos) +"bWd" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input{ + dir = 8 + }, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"bWe" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bWf" = ( +/obj/structure/table/glass, +/obj/item/clothing/gloves/color/latex, +/obj/machinery/requests_console{ + department = "Virology"; + name = "Virology Requests Console"; + pixel_x = -32 + }, +/obj/item/healthanalyzer, +/obj/item/clothing/glasses/hud/health, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bWg" = ( +/obj/structure/table, +/obj/item/hand_labeler, +/obj/item/radio/headset/headset_med, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bWh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bWi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/medical/virology) +"bWj" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/medical/virology) +"bWl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/xenobiology) +"bWm" = ( +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "xenobio7"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bWn" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio7"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/xenobiology) +"bWo" = ( +/obj/item/radio/intercom{ + pixel_x = -25 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bWp" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bWq" = ( +/obj/machinery/atmospherics/components/binary/pump, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bWr" = ( +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bWs" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bWt" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bWu" = ( +/obj/machinery/door/airlock/engineering{ + name = "Telecommunications"; + req_access_txt = "61" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bWv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bWw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bWx" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bWy" = ( +/turf/open/floor/plasteel, +/area/maintenance/port/aft) +"bWz" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bWA" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bWB" = ( +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"bWC" = ( +/obj/machinery/telecomms/bus/preset_four, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"bWD" = ( +/obj/machinery/telecomms/server/presets/engineering, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"bWE" = ( +/obj/machinery/telecomms/processor/preset_three, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"bWF" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/tcommsat/server"; + dir = 1; + name = "Telecomms Server APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"bWG" = ( +/obj/machinery/telecomms/server/presets/security, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"bWH" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bWI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bWJ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bWK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bWL" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bWM" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/engine/atmos) +"bWN" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bWO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bWP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall, +/area/engine/atmos) +"bWQ" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/engineering) +"bWR" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/camera{ + c_tag = "Atmospherics Central"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bWT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/engine/atmos) +"bWU" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Mix to Engine" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bWV" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + req_access_txt = "24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bWW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bWX" = ( +/obj/structure/table/glass, +/obj/item/radio/intercom{ + pixel_x = -25 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/storage/box/syringes, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bWY" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/pen/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bWZ" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/virologist, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bXa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bXb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/medical/virology) +"bXc" = ( +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bXd" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bXh" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bXi" = ( +/obj/structure/table, +/obj/item/folder/white, +/obj/item/folder/white, +/obj/item/pen, +/obj/item/taperecorder, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bXj" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/button/ignition{ + id = "testigniter"; + pixel_x = -6; + pixel_y = 2 + }, +/obj/machinery/button/door{ + id = "testlab"; + name = "Test Chamber Blast Doors"; + pixel_x = 4; + pixel_y = 2; + req_access_txt = "55" + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bXk" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=AIE"; + location = "AftH" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bXl" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bXm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bXn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bXo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bXp" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bXq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering"; + req_access_txt = "32" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bXr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bXs" = ( +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bXt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/science/circuit) +"bXv" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bXw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/maintenance/port/aft) +"bXx" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel, +/area/maintenance/port/aft) +"bXy" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel, +/area/maintenance/port/aft) +"bXz" = ( +/obj/machinery/telecomms/processor/preset_four, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"bXA" = ( +/obj/machinery/telecomms/server/presets/common, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"bXB" = ( +/obj/machinery/telecomms/bus/preset_three, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"bXC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"bXD" = ( +/obj/machinery/telecomms/server/presets/command, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"bXE" = ( +/obj/machinery/computer/message_monitor{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bXF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bXG" = ( +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bXH" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bXI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bXJ" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/light/small, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/engine/atmos) +"bXK" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bXL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/closed/wall, +/area/engine/atmos) +"bXM" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "Atmospherics Blast Door" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bXN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bXO" = ( +/obj/structure/filingcabinet, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bXP" = ( +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = 30 + }, +/obj/structure/closet/secure_closet/security/engine, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bXQ" = ( +/obj/structure/fireaxecabinet{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bXR" = ( +/obj/machinery/power/floodlight, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/engine/atmos) +"bXS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/atmos) +"bXT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bXU" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bXV" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics East"; + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Plasma Outlet Pump" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bXW" = ( +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"bXX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{ + dir = 8 + }, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"bXY" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"bXZ" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bYa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bYb" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bYc" = ( +/obj/machinery/disposal/bin, +/obj/structure/sign/warning/deathsposal{ + pixel_y = -32 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bYd" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bYe" = ( +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bYf" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio2"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bYg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/xenobiology) +"bYh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio7"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/xenobiology) +"bYi" = ( +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + name = "test chamber blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/misc_lab) +"bYj" = ( +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + name = "test chamber blast door" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/misc_lab) +"bYk" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bYl" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bYm" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bYn" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYo" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"bYp" = ( +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYq" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYr" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bYs" = ( +/obj/structure/closet/crate, +/obj/item/clothing/under/color/lightpurple, +/obj/item/stack/spacecash/c200, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bYt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bYu" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bYv" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Space" + }, +/turf/open/floor/plasteel, +/area/maintenance/port/aft) +"bYw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/port/aft) +"bYx" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/port/aft) +"bYy" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Incinerator Access"; + req_access_txt = "12" + }, +/obj/structure/barricade/wooden{ + name = "wooden barricade (CLOSED)" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bYz" = ( +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"bYA" = ( +/obj/machinery/telecomms/broadcaster/preset_right, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"bYB" = ( +/obj/machinery/blackbox_recorder, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"bYC" = ( +/obj/machinery/telecomms/receiver/preset_right, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"bYD" = ( +/obj/machinery/computer/telecomms/server{ + dir = 4; + network = "tcommsat" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bYE" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bYG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/sign/departments/engineering{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYH" = ( +/turf/closed/wall, +/area/engine/break_room) +"bYI" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYJ" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"bYK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bYL" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bYM" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"bYO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bYP" = ( +/obj/effect/landmark/event_spawn, +/turf/closed/wall, +/area/crew_quarters/bar) +"bYT" = ( +/obj/machinery/computer/atmos_control/tank/toxin_tank{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bYU" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/atmospherics/miner/toxins, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"bYV" = ( +/obj/machinery/air_sensor/atmos/toxin_tank, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"bYW" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"bYX" = ( +/obj/structure/closet/l3closet/virology, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bYY" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bYZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/medical/virology) +"bZa" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology South"; + dir = 4; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bZb" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bZc" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"bZd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/junction/flip, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bZe" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/break_room) +"bZg" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bZh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bZi" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bZj" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bZk" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bZl" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Port" + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bZn" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"bZo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"bZp" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"bZq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bZr" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/tcommsat/computer) +"bZs" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bZt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bZu" = ( +/obj/machinery/camera{ + c_tag = "Engineering Foyer"; + dir = 1 + }, +/obj/structure/noticeboard{ + dir = 1; + pixel_y = -27 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bZv" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bZw" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bZx" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZy" = ( +/turf/open/floor/plasteel, +/area/engine/break_room) +"bZz" = ( +/obj/structure/table, +/obj/machinery/light_switch{ + pixel_x = -23 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/book/manual/wiki/engineering_hacking{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/book/manual/wiki/engineering_construction, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bZA" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bZB" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bZC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "privacy shutter" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"bZD" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "privacy shutter" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"bZE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bZF" = ( +/obj/machinery/power/apc{ + areastring = "/area/engine/atmos"; + dir = 8; + name = "Atmospherics APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bZG" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bZH" = ( +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bZI" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bZK" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bZL" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{ + dir = 8 + }, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"bZM" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bZN" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/aft) +"bZO" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bZP" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/medical/virology) +"bZQ" = ( +/obj/machinery/atmospherics/components/binary/valve/on{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bZR" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/item/wrench, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bZS" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bZT" = ( +/obj/structure/rack, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bZU" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/aft) +"bZV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/xenobiology) +"bZW" = ( +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio6"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bZX" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/xenobiology) +"bZY" = ( +/obj/item/radio/intercom{ + pixel_x = -25 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"bZZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/misc_lab) +"caa" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"cac" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cad" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cae" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"caf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/maintenance/port/aft) +"cag" = ( +/obj/machinery/ntnet_relay, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"cah" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"cai" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"cak" = ( +/obj/machinery/telecomms/hub/preset, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"cal" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Server Room"; + req_access_txt = "61" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"can" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Server Room"; + req_access_txt = "61" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"cao" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"cap" = ( +/obj/machinery/light, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"caq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"car" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/port/aft) +"cas" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cat" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cau" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cav" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"caw" = ( +/obj/structure/table, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cax" = ( +/obj/structure/closet/wardrobe/black, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cay" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"caz" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"caA" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"caC" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"caD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/checkpoint/engineering) +"caE" = ( +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plasteel, +/area/engine/atmos) +"caF" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"caG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/requests_console{ + department = "Atmospherics"; + departmentType = 4; + name = "Atmos RC"; + pixel_x = -30 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"caH" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"caI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"caK" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"caL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"caM" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"caN" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"caO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"caP" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/maintenance/aft) +"caQ" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"caR" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"caS" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"caT" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"caU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"caX" = ( +/obj/machinery/sparker{ + id = "testigniter"; + pixel_x = -25 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"caY" = ( +/obj/item/beacon, +/turf/open/floor/engine, +/area/science/misc_lab) +"caZ" = ( +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + name = "test chamber blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/engine, +/area/science/misc_lab) +"cba" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"cbb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"cbc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"cbd" = ( +/obj/machinery/power/apc{ + areastring = "/area/science/misc_lab"; + dir = 4; + name = "Testing Lab APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"cbe" = ( +/obj/structure/table/reinforced, +/obj/item/integrated_electronics/analyzer, +/obj/item/integrated_electronics/debugger, +/obj/item/integrated_electronics/wirer, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cbf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cbg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"cbh" = ( +/obj/structure/table, +/obj/item/folder/white, +/obj/item/folder/white, +/obj/item/pen, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cbi" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cbj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/maintenance/port/aft) +"cbk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Mix to Space" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/maintenance/port/aft) +"cbl" = ( +/obj/machinery/camera{ + c_tag = "Telecomms Server Room"; + dir = 4; + network = list("tcomms") + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"cbm" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/tcommsat/computer) +"cbn" = ( +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM" + }, +/turf/closed/wall, +/area/tcommsat/computer) +"cbo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"cbp" = ( +/obj/structure/closet/secure_closet/engineering_chief, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/crew_quarters/heads/chief"; + dir = 4; + name = "CE Office APC"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"cbq" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/mob/living/simple_animal/parrot/Poly, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"cbr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cbs" = ( +/obj/structure/sign/warning/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/engine/engineering) +"cbt" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/camera{ + c_tag = "Aft Primary Hallway 1"; + dir = 8; + pixel_y = -22 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cbu" = ( +/obj/machinery/power/apc{ + areastring = "/area/engine/break_room"; + dir = 8; + name = "Engineering Foyer APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cbv" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Research Delivery access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cbw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cbx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cby" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cbA" = ( +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbB" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Air Outlet Pump" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbC" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbD" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbE" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbF" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbG" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "CO2 Outlet Pump" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbH" = ( +/turf/open/floor/engine/co2, +/area/engine/atmos) +"cbI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output{ + dir = 8 + }, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"cbJ" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cbK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/aft) +"cbL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cbM" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cbN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cbO" = ( +/obj/machinery/door/airlock/atmos/abandoned{ + name = "Atmospherics Maintenance"; + req_access_txt = "12;24" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cbP" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cbQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cbR" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio1"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cbS" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/xenobiology) +"cbU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/science/xenobiology) +"cbV" = ( +/obj/machinery/camera{ + c_tag = "Testing Chamber"; + dir = 1; + network = list("test","rd") + }, +/obj/machinery/light, +/turf/open/floor/engine, +/area/science/misc_lab) +"cbW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"cbY" = ( +/obj/structure/table/reinforced, +/obj/item/multitool, +/obj/item/screwdriver, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_y = -30; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cbZ" = ( +/obj/structure/table/reinforced, +/obj/item/integrated_circuit_printer, +/obj/machinery/computer/security/telescreen/circuitry{ + dir = 1; + pixel_y = -30 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cca" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/solar{ + id = "portsolar"; + name = "Port Solar Array" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"ccb" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/solar{ + id = "portsolar"; + name = "Port Solar Array" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"ccc" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ccd" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cce" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Construction Area Maintenance"; + req_access_txt = "32" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"ccf" = ( +/obj/machinery/telecomms/broadcaster/preset_left, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"ccg" = ( +/obj/machinery/telecomms/message_server, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"cch" = ( +/obj/machinery/telecomms/receiver/preset_left, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"cci" = ( +/obj/structure/table, +/obj/item/multitool, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"ccj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"cck" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"ccl" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"ccm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ccn" = ( +/obj/machinery/camera{ + c_tag = "Engineering Access" + }, +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cco" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ccp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ccq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ccr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ccs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cct" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ccv" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ccw" = ( +/turf/closed/wall/r_wall, +/area/engine/engineering) +"ccy" = ( +/obj/machinery/space_heater, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ccz" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ccA" = ( +/obj/machinery/computer/atmos_control/tank/carbon_tank{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ccB" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/machinery/atmospherics/miner/carbon_dioxide, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"ccC" = ( +/obj/machinery/air_sensor/atmos/carbon_tank, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"ccD" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"ccE" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_y = 28 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ccF" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ccG" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"ccI" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ccJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ccK" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ccL" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ccM" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"ccN" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ccO" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ccQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/xenobiology) +"ccR" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"ccT" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"ccU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/starboard/aft) +"ccV" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ccW" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ccX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ccZ" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cda" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cdb" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cdc" = ( +/obj/machinery/telecomms/bus/preset_two, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"cdd" = ( +/obj/machinery/telecomms/server/presets/supply, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"cde" = ( +/obj/machinery/telecomms/processor/preset_one, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"cdf" = ( +/obj/machinery/telecomms/server/presets/medical, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"cdg" = ( +/obj/machinery/computer/telecomms/monitor{ + dir = 4; + network = "tcommsat" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"cdh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cdj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cdk" = ( +/obj/machinery/computer/atmos_alert, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cdl" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/chapel/main) +"cdm" = ( +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/item/paper/monitorkey, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/pen/fountain, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cdn" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cdo" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cdp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cdq" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cdr" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cds" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/starboard/aft"; + dir = 8; + name = "Starboard Quarter Maintenance APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/camera{ + c_tag = "Aft Starboard Solar Access"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cdt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdu" = ( +/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cdv" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cdw" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdx" = ( +/obj/machinery/atmospherics/components/unary/relief_valve/atmos/atmos_waste{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmos) +"cdB" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdC" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdD" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{ + dir = 8 + }, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"cdE" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdF" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdH" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdI" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdK" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdN" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cdQ" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cdR" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cdS" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"cdT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cdU" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/chief_engineer, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cdV" = ( +/obj/structure/table, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cdW" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/port/aft"; + dir = 8; + name = "Port Quarter Maintenance APC"; + pixel_x = -25; + pixel_y = 1 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cdX" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"cdZ" = ( +/obj/machinery/telecomms/processor/preset_two, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"cea" = ( +/obj/machinery/telecomms/server/presets/service, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"ceb" = ( +/obj/machinery/telecomms/bus/preset_one, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"cec" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_y = -32 + }, +/obj/machinery/light, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"ced" = ( +/obj/machinery/telecomms/server/presets/science, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"cee" = ( +/obj/structure/table, +/obj/item/radio/off, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"cef" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/tcommsat/computer) +"ceg" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/light, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"ceh" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/bridge) +"cei" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"cej" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/delivery, +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cek" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/shower{ + dir = 8 + }, +/obj/structure/sign/warning/enginesafety{ + pixel_x = 32 + }, +/obj/structure/sign/poster/official/safety_eye_protection{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cel" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cem" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cen" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ceo" = ( +/obj/machinery/keycard_auth{ + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cep" = ( +/obj/structure/sign/warning/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"ceq" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"cer" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ces" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cet" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cev" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cew" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cex" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics South West"; + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cey" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cez" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ceA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"ceB" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ceC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating, +/area/maintenance/aft) +"ceD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/maintenance/aft) +"ceE" = ( +/obj/structure/sign/warning/fire{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"ceF" = ( +/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ceG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ceH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/aft) +"ceI" = ( +/obj/structure/sign/warning/biohazard, +/turf/closed/wall, +/area/maintenance/aft) +"ceJ" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/maintenance/aft) +"ceK" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/closet/l3closet, +/turf/open/floor/plating, +/area/maintenance/aft) +"ceL" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/aft) +"ceM" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ceN" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ceO" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ceP" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"ceQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"ceR" = ( +/obj/effect/landmark/blobstart, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ceS" = ( +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ceT" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ceU" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ceV" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"ceW" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"ceX" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/science/research) +"ceY" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"ceZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Power Storage"; + req_access_txt = "11" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfa" = ( +/obj/structure/rack, +/obj/item/storage/belt/utility, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/weldingtool/largetank, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/clothing/glasses/welding, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfb" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/chief) +"cfc" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "privacy shutter" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"cfd" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/closet/radiation, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfe" = ( +/obj/structure/sign/warning/radiation/rad_area{ + pixel_x = -32 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/warning/securearea{ + pixel_x = 32 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cfg" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cfi" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfj" = ( +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"cfk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/atmos{ + name = "Turbine Access"; + req_access_txt = "32" + }, +/turf/open/floor/plating, +/area/maintenance/disposal/incinerator) +"cfl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"cfm" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/toy/minimeteor, +/obj/item/poster/random_contraband, +/turf/open/floor/plating, +/area/maintenance/aft) +"cfn" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/reagent_containers/food/snacks/donkpocket, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cfo" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/roller, +/turf/open/floor/plating, +/area/maintenance/aft) +"cfp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/c_tube, +/turf/open/floor/plating, +/area/maintenance/aft) +"cfq" = ( +/obj/structure/mopbucket, +/obj/item/caution, +/turf/open/floor/plating, +/area/maintenance/aft) +"cfr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + external_pressure_bound = 140; + name = "killroom vent"; + pressure_checks = 0 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology Kill Room"; + dir = 4; + network = list("ss13","rd") + }, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"cfs" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Air Supply Maintenance"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cft" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Testing Lab Maintenance"; + req_access_txt = "47" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cfu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/science/misc_lab) +"cfv" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Firefighting equipment"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cfw" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/port/aft) +"cfx" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/maintenance/solars/port/aft) +"cfy" = ( +/obj/structure/rack, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cfz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfB" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/clothing/under/misc/overalls, +/obj/item/clothing/under/misc/overalls, +/obj/item/radio/headset/headset_eng, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cfF" = ( +/obj/machinery/suit_storage_unit/ce, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/chief) +"cfG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfH" = ( +/obj/machinery/button/door{ + id = "ceprivacy"; + name = "Privacy Shutters Control"; + pixel_y = 26 + }, +/obj/machinery/holopad, +/obj/machinery/light{ + dir = 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 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"cfI" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/clothing/under/misc/overalls, +/obj/item/clothing/under/misc/overalls, +/obj/item/radio/headset/headset_eng, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfJ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfK" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall, +/area/engine/engineering) +"cfL" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfM" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/engineering{ + name = "Engine Room"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfP" = ( +/obj/machinery/atmospherics/components/trinary/mixer/airmix/inverse{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfQ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfT" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfU" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/turf/open/floor/plating, +/area/maintenance/disposal/incinerator) +"cfW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating, +/area/maintenance/aft) +"cfX" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/disposal/incinerator"; + name = "Incinerator APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating, +/area/maintenance/aft) +"cfY" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal/incinerator) +"cfZ" = ( +/obj/machinery/light_switch{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cga" = ( +/obj/machinery/power/smes{ + capacity = 9e+006; + charge = 10000 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating, +/area/maintenance/disposal/incinerator) +"cgb" = ( +/obj/machinery/disposal/bin, +/obj/structure/sign/warning/deathsposal{ + pixel_y = 32 + }, +/obj/structure/disposalpipe/trunk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/disposal/incinerator) +"cgc" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"cgd" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cge" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cgf" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cgg" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cgh" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cgi" = ( +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"cgj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/barricade/wooden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cgk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/biohazard, +/turf/open/floor/plating, +/area/science/xenobiology) +"cgl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + external_pressure_bound = 120; + name = "killroom vent" + }, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"cgm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cgn" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cgo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cgp" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/closet/toolcloset, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cgq" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cgr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/starboard/aft) +"cgs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cgt" = ( +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cgu" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cgv" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgy" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cgA" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"cgB" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"cgC" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"cgD" = ( +/obj/machinery/camera{ + c_tag = "Aft Port Solar Access"; + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cgE" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/maintenance/solars/port/aft) +"cgF" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cgG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cgI" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cgO" = ( +/obj/structure/rack, +/obj/item/lighter, +/obj/item/clothing/glasses/meson{ + pixel_y = 4 + }, +/obj/item/stock_parts/cell/high/plus, +/obj/item/reagent_containers/pill/patch/silver_sulf, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"cgQ" = ( +/obj/machinery/camera{ + c_tag = "Engineering East"; + dir = 8 + }, +/obj/machinery/vending/wardrobe/engi_wardrobe, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgR" = ( +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgS" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "privacy shutter" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"cgT" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/engineering{ + name = "SMES Room"; + req_access_txt = "32" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cgU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgV" = ( +/obj/machinery/computer/atmos_control/tank/nitrogen_tank{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgW" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgX" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgY" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "N2 Outlet Pump" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgZ" = ( +/obj/machinery/computer/atmos_control/tank/oxygen_tank{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cha" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chb" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "O2 Outlet Pump" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chc" = ( +/obj/machinery/computer/atmos_control/tank/air_tank{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/white/corner, +/area/engine/atmos) +"chd" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/engine/atmos) +"che" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/turf/open/floor/plating, +/area/engine/atmos) +"chf" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics South East"; + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Air Outlet Pump" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner, +/area/engine/atmos) +"chg" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"chh" = ( +/obj/machinery/atmospherics/components/unary/tank/toxins{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"chi" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general{ + level = 2 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"chj" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "plasma tank pump" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"chk" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"chl" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump{ + name = "atmospherics mix pump" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"chm" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/machinery/airalarm/all_access{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"chn" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cho" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"chp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/starboard/aft) +"chq" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"chr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Kill Chamber"; + req_access_txt = "55" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"chs" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"chu" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"chv" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"chw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"chx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"chy" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"chz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"chA" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"chB" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"chC" = ( +/obj/structure/rack, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"chD" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"chE" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"chH" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"chJ" = ( +/obj/machinery/power/tracker, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"chN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"chO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"chP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"chQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"chR" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"chS" = ( +/obj/machinery/door/airlock/engineering{ + name = "Port Quarter Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"chT" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"chY" = ( +/obj/machinery/shieldgen, +/turf/open/floor/plating, +/area/engine/engineering) +"cia" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cic" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cid" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/power/apc/highcap/fifteen_k{ + areastring = "/area/engine/engineering"; + dir = 1; + name = "Engineering APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cie" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cif" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cig" = ( +/turf/closed/wall, +/area/engine/engineering) +"cij" = ( +/obj/machinery/modular_computer/console/preset/engineering, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cik" = ( +/obj/machinery/computer/apc_control{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"cim" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cin" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"cio" = ( +/obj/structure/table/reinforced, +/obj/item/folder/yellow, +/obj/item/stamp/ce, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"ciq" = ( +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "privacy shutter" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"cis" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cit" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"ciu" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"civ" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"cix" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"ciy" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = -28 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4; + name = "input gas connector port" + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"ciz" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"ciA" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "input port pump" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"ciB" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/structure/reagent_dispensers/watertank, +/obj/item/extinguisher, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"ciD" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + name = "output gas connector port" + }, +/obj/machinery/portable_atmospherics/canister, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 28 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"ciE" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"ciF" = ( +/obj/structure/table, +/obj/item/cartridge/medical, +/turf/open/floor/plating, +/area/maintenance/aft) +"ciG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/firecloset/full, +/turf/open/floor/plating, +/area/maintenance/aft) +"ciH" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/latexballon, +/turf/open/floor/plating, +/area/maintenance/aft) +"ciI" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ciJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"ciK" = ( +/obj/structure/rack, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ciL" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ciM" = ( +/obj/machinery/power/compressor{ + comp_id = "incineratorturbine"; + dir = 1; + luminosity = 2 + }, +/obj/structure/cable/yellow, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/machinery/camera{ + c_tag = "Turbine Chamber"; + dir = 4; + network = list("turbine") + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"ciN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ciQ" = ( +/obj/machinery/power/solar_control{ + dir = 4; + id = "portsolar"; + name = "Port Quarter Solar Control" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"ciR" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/port/aft"; + dir = 4; + name = "Port Quarter Solar APC"; + pixel_x = 23; + pixel_y = 2 + }, +/obj/machinery/camera{ + c_tag = "Aft Port Solar Control"; + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"ciS" = ( +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"ciT" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"ciU" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"ciW" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/engine/engineering) +"ciX" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/obj/item/lightreplacer, +/obj/item/lightreplacer, +/turf/open/floor/plating, +/area/engine/engineering) +"ciY" = ( +/obj/machinery/door/poddoor{ + id = "Secure Storage"; + name = "secure storage" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"ciZ" = ( +/turf/open/floor/plating, +/area/engine/engineering) +"cja" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjb" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel{ + name = "floor" + }, +/area/engine/engineering) +"cjc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cje" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjf" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start/station_engineer, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cjg" = ( +/obj/machinery/computer/card/minor/ce{ + dir = 4 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Engineer's Desk"; + departmentType = 3; + name = "Chief Engineer RC"; + pixel_x = -32 + }, +/obj/machinery/camera{ + c_tag = "Chief Engineer's Office"; + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"cji" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjj" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/item/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"cjk" = ( +/obj/structure/sign/warning/securearea, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cjl" = ( +/obj/machinery/camera{ + c_tag = "Engineering MiniSat Access"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjm" = ( +/obj/machinery/door/airlock/command{ + name = "MiniSat Access"; + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjn" = ( +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/wood, +/area/maintenance/bar) +"cjo" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel, +/area/construction) +"cjp" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cjq" = ( +/obj/machinery/atmospherics/components/binary/valve{ + name = "Mix to Space" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cjr" = ( +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cjs" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cjt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cju" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Incinerator to Output" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cjv" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cjw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/aft) +"cjx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"cjy" = ( +/obj/structure/disposalpipe/segment, +/obj/item/shard, +/turf/open/floor/plating, +/area/maintenance/aft) +"cjz" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/closed/wall, +/area/maintenance/aft) +"cjA" = ( +/obj/structure/disposalpipe/segment, +/obj/item/cigbutt/roach, +/turf/open/floor/plating, +/area/maintenance/aft) +"cjB" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/structure/table, +/obj/item/folder/white, +/obj/item/pen, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cjC" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cjD" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard/aft) +"cjE" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cjF" = ( +/obj/machinery/door/airlock/engineering{ + name = "Starboard Quarter Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"cjG" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard/aft) +"cjH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cjI" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cjJ" = ( +/turf/closed/wall/r_wall, +/area/engine/engine_smes) +"cjK" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cjL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/construction) +"cjM" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Engineering Secure Storage"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cjN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjO" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjR" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/wardrobe/engineering_yellow, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjU" = ( +/obj/machinery/computer/station_alert{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/ce{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"cjV" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"cjX" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"cjY" = ( +/obj/structure/table/reinforced, +/obj/item/cartridge/engineering{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/cartridge/engineering{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/cartridge/engineering{ + pixel_x = 3 + }, +/obj/item/cartridge/atmos, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cka" = ( +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + name = "test chamber blast door" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/research/glass{ + name = "Test Chamber"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"ckb" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/structure/grille, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"ckc" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/structure/grille, +/obj/machinery/meter{ + name = "Mixed Air Tank In" + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"ckd" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/structure/grille, +/obj/machinery/meter{ + name = "Mixed Air Tank Out" + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cke" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"ckf" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/disposal/incinerator) +"ckg" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"ckh" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to MiniSat" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cki" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"ckj" = ( +/obj/item/cigbutt, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"ckk" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "Incinerator to Space" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"ckl" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/aft) +"ckm" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Biohazard Disposals"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cko" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/maintenance/starboard/aft) +"ckp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ckr" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cks" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"ckt" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/starboard/aft"; + dir = 8; + name = "Starboard Quarter Solar APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"cku" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"ckv" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"ckw" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"ckx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cky" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"ckz" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"ckA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"ckB" = ( +/obj/machinery/field/generator, +/turf/open/floor/plating, +/area/engine/engineering) +"ckC" = ( +/obj/machinery/power/emitter, +/turf/open/floor/plating, +/area/engine/engineering) +"ckD" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/storage/box/lights/mixed, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckG" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/closet/crate/solarpanel_small, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckI" = ( +/obj/machinery/suit_storage_unit/engine, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckK" = ( +/obj/structure/tank_dispenser, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckL" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"ckM" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"ckN" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/research/glass{ + name = "Test Chamber"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"ckO" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Chief Engineer"; + req_access_txt = "56" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"ckQ" = ( +/obj/structure/closet/cardboard, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"ckS" = ( +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ckT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckU" = ( +/obj/machinery/air_sensor/atmos/nitrogen_tank, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"ckV" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ + dir = 1 + }, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"ckW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{ + dir = 1 + }, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"ckX" = ( +/obj/machinery/air_sensor/atmos/oxygen_tank, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"ckY" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ + dir = 1 + }, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"ckZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ + dir = 1 + }, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"cla" = ( +/obj/machinery/air_sensor/atmos/air_tank, +/turf/open/floor/engine/air, +/area/engine/atmos) +"clb" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ + dir = 1 + }, +/turf/open/floor/engine/air, +/area/engine/atmos) +"clc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{ + dir = 1 + }, +/turf/open/floor/engine/air, +/area/engine/atmos) +"cld" = ( +/obj/effect/landmark/blobstart, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Mix to Incinerator" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cle" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"clf" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"clg" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/turf/open/floor/plating, +/area/maintenance/disposal/incinerator) +"clh" = ( +/obj/machinery/light/small, +/obj/structure/extinguisher_cabinet{ + pixel_y = -31 + }, +/obj/machinery/computer/turbine_computer{ + dir = 1; + id = "incineratorturbine" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cli" = ( +/obj/machinery/button/door/incinerator_vent_atmos_aux{ + pixel_x = 6; + pixel_y = -24 + }, +/obj/machinery/button/door/incinerator_vent_atmos_main{ + pixel_x = -6; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"clj" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"clk" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cll" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"clm" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"cln" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"clo" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/aft) +"clp" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"clq" = ( +/obj/structure/rack, +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"clr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cls" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"clt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"clu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"clv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"clw" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"clx" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"cly" = ( +/obj/structure/chair/stool, +/obj/machinery/camera{ + c_tag = "Aft Starboard Solar Control"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"clz" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"clA" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"clB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"clC" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"clD" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"clE" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/smes/engineering, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"clF" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"clG" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/smes/engineering, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"clJ" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/engine/engineering) +"clM" = ( +/obj/structure/table, +/obj/item/storage/box/lights/mixed, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"clN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"clO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/wardrobe/grey, +/obj/item/clothing/under/misc/assistantformal, +/obj/item/clothing/under/misc/assistantformal, +/obj/machinery/camera{ + c_tag = "Dorms East - Holodeck"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"clQ" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"clR" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"clT" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/atmospherics/miner/nitrogen, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"clU" = ( +/turf/open/floor/engine/n2, +/area/engine/atmos) +"clV" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/miner/oxygen, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"clW" = ( +/turf/open/floor/engine/o2, +/area/engine/atmos) +"clY" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/engine/air, +/area/engine/atmos) +"clZ" = ( +/turf/open/floor/engine/air, +/area/engine/atmos) +"cmb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/disposal/incinerator) +"cmd" = ( +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"cme" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"cmf" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{ + pixel_x = 38; + pixel_y = 6 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"cmg" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"cmh" = ( +/obj/structure/disposalpipe/junction/yjunction{ + dir = 2 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cmi" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cmj" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cmk" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cmo" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cmq" = ( +/obj/effect/landmark/xeno_spawn, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"cmr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/starboard/aft) +"cmt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cmu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/starboard/aft) +"cmv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"cmw" = ( +/obj/machinery/power/solar_control{ + dir = 1; + id = "starboardsolar"; + name = "Starboard Quarter Solar Control" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"cmx" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"cmy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cmz" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cmA" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cmB" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cmC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cmD" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Engineering" + }, +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cmF" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cmG" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cmL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cmN" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cmU" = ( +/obj/machinery/light/small, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"cmV" = ( +/obj/machinery/light/small, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"cmW" = ( +/obj/machinery/light/small, +/turf/open/floor/engine/air, +/area/engine/atmos) +"cmX" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction) +"cmY" = ( +/obj/machinery/atmospherics/components/binary/pump/on, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/warning/fire{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airlock_sensor/incinerator_atmos{ + pixel_x = 8; + pixel_y = 24 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"cmZ" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 + }, +/obj/structure/sign/warning/fire{ + pixel_x = 32 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"cna" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 8 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"cnb" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cnc" = ( +/obj/machinery/light/small, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"cnd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"cne" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"cnf" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cng" = ( +/obj/machinery/light/small, +/obj/structure/table, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/clipboard, +/turf/open/floor/plating, +/area/maintenance/aft) +"cnj" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"cnk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"cnl" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cnm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cnn" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cnp" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "SMES Room"; + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cnr" = ( +/obj/machinery/door/window/southleft{ + name = "Engineering Delivery"; + req_access_txt = "10" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cnt" = ( +/obj/machinery/camera{ + c_tag = "Engineering West"; + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/start/station_engineer, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cnv" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cny" = ( +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cnA" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/table, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/electronics/apc, +/obj/item/electronics/apc, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/twohanded/rcl/pre_loaded, +/obj/item/twohanded/rcl/pre_loaded, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cnB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/construction) +"cnC" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"cnD" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/aft) +"cnE" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cnF" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Waste Out" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cnG" = ( +/obj/structure/closet/emcloset, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cnH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cnJ" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cnK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"cnL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cnM" = ( +/obj/machinery/door/window{ + name = "SMES Chamber"; + req_access_txt = "32" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cnN" = ( +/obj/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cnO" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cnP" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engine_smes) +"cnQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cnR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engine_smes) +"cnS" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "SMES Access"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cnU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/warning/electricshock{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cnX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cnY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cnZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"coa" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cob" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"coh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"con" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"cop" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"coq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{ + dir = 1 + }, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cor" = ( +/obj/machinery/igniter{ + id = "Incinerator" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/air_sensor{ + pixel_x = -32; + pixel_y = -32 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cos" = ( +/obj/machinery/door/poddoor/incinerator_atmos_aux, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cot" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/aft) +"cou" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cov" = ( +/obj/machinery/power/port_gen/pacman, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cow" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cox" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"coy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"coz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"coA" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"coB" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + name = "SMES Room"; + req_access_txt = "32" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"coC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"coH" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"coI" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hydroponics) +"coJ" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"coL" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"coT" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/science/misc_lab) +"coZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/closet/secure_closet/engineering_electrical, +/obj/item/storage/toolbox/artistic{ + icon_state = "yellow"; + item_state = "toolbox_yellow"; + name = "Cable Toolbox"; + pixel_y = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpa" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/closet/secure_closet/engineering_welding, +/obj/item/clothing/glasses/welding, +/obj/item/clothing/glasses/welding, +/obj/item/clothing/glasses/welding, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpb" = ( +/obj/structure/closet/emcloset, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cpj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/chair/office/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cpk" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cpl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cpm" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cpn" = ( +/obj/machinery/light, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cpo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cpp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cpq" = ( +/obj/structure/sign/warning/electricshock{ + pixel_x = -32 + }, +/obj/machinery/computer/rdconsole/production{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cps" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/bridge) +"cpE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpF" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/sign/poster/official/space_cops{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"cpG" = ( +/obj/structure/table/optable, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"cpI" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Escape Pod Four" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cpN" = ( +/obj/machinery/power/turbine{ + luminosity = 2 + }, +/obj/structure/cable/yellow, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cpO" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Incinerator Output Pump" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/maintenance/disposal/incinerator) +"cpQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/maintenance/disposal/incinerator) +"cpR" = ( +/obj/machinery/door/airlock/abandoned{ + name = "Observatory Access" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cpS" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/engine/engine_smes"; + name = "SMES room APC"; + pixel_y = -24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/table, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cpT" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cpU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cpV" = ( +/obj/machinery/camera{ + c_tag = "Engineering Storage"; + dir = 4 + }, +/obj/machinery/rnd/production/protolathe/department/engineering, +/obj/structure/sign/poster/contraband/power{ + desc = "Lord Singuloth must feed. Annoyingly, it's really easy for people to sabotage containment and let Lord Singuloth eat the entire station.. For this reason, Nanotrasen prefers Supermatter reactors."; + pixel_x = -32; + poster_item_desc = "This poster depicts Lord Singuloth. Nanotrasen doesn't approve. Nanotrasen wants Supermatter over Singularities, as they are usually much safer." + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpX" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpY" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cqn" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cqo" = ( +/obj/structure/sign/warning/pods{ + pixel_x = 32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cqp" = ( +/obj/machinery/camera{ + c_tag = "Engineering Escape Pod"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cqr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cqs" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"cqt" = ( +/obj/machinery/door/poddoor/incinerator_atmos_main, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cqv" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cqw" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/rnd/production/circuit_imprinter, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cqx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cqy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cqz" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cqK" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cqL" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cqM" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"cqN" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cqO" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/item/stack/cable_coil, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cqP" = ( +/obj/structure/table, +/obj/item/folder/yellow, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cqQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"cqR" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cqY" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"crh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cri" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"crk" = ( +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"crl" = ( +/obj/structure/table, +/obj/item/taperecorder, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"crm" = ( +/obj/structure/table, +/obj/item/storage/box/matches, +/obj/item/storage/fancy/cigarettes, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"crn" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"cro" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"crp" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"crq" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"crr" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"crw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cry" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"crz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"crA" = ( +/obj/structure/transit_tube_pod, +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"crB" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"crC" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"crE" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"crG" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"crP" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/engine/engineering) +"crR" = ( +/obj/structure/transit_tube, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"crW" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"crX" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plating, +/area/engine/engineering) +"crY" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube, +/turf/open/floor/plating, +/area/engine/engineering) +"csc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/maintenance/aft) +"csg" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"csm" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/maintenance/aft) +"csq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/turbine{ + dir = 1; + pixel_y = -30 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"csr" = ( +/obj/machinery/button/ignition{ + id = "Incinerator"; + pixel_x = -6; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"csy" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"csD" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"csN" = ( +/obj/structure/transit_tube/horizontal, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"csO" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube/horizontal, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"csT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/xmastree, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"csU" = ( +/obj/structure/transit_tube/station/reverse, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"csV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"csW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"csX" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"csZ" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cta" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "MiniSat External Access"; + req_access_txt = "65;13" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"ctb" = ( +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"ctc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"ctg" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"cth" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"cti" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/securearea{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"ctj" = ( +/obj/machinery/camera{ + c_tag = "MiniSat Pod Access"; + dir = 1; + network = list("minisat"); + start_active = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"ctk" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/ai_monitored/turret_protected/aisat_interior) +"cto" = ( +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Foyer"; + req_one_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"ctp" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/ai_monitored/turret_protected/aisat_interior) +"ctq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/ai_monitored/turret_protected/aisat_interior) +"ctr" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/folder{ + pixel_x = 3 + }, +/obj/item/phone{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/pen, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cts" = ( +/obj/structure/rack, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/radio/off{ + pixel_y = 4 + }, +/obj/item/screwdriver{ + pixel_y = 10 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"ctt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"ctu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"ctw" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/computer/station_alert{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"ctx" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"cty" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"ctz" = ( +/obj/machinery/door/poddoor/shutters{ + id = "teledoor"; + name = "MiniSat Teleport Access" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"ctA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"ctB" = ( +/obj/structure/cable, +/obj/machinery/power/tracker, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"ctE" = ( +/obj/machinery/teleport/hub, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"ctF" = ( +/obj/machinery/button/door{ + id = "teledoor"; + name = "MiniSat Teleport Shutters Control"; + pixel_y = 25; + req_access_txt = "17;65" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"ctG" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"ctH" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -31 + }, +/obj/machinery/computer/monitor{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"ctI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"ctJ" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"ctK" = ( +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Teleporter"; + req_access_txt = "17;65" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"ctL" = ( +/obj/machinery/teleport/station, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"ctM" = ( +/obj/machinery/bluespace_beacon, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"ctP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"ctQ" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"ctR" = ( +/obj/structure/sign/warning/radiation/rad_area, +/turf/closed/wall, +/area/engine/engineering) +"ctS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"ctT" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/ai_monitored/turret_protected/aisat_interior) +"ctU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/ai_monitored/turret_protected/aisat_interior) +"ctV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/aisat_interior"; + dir = 4; + name = "MiniSat Foyer APC"; + pixel_x = 27 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"ctW" = ( +/obj/machinery/computer/teleporter{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"ctX" = ( +/obj/machinery/camera{ + c_tag = "MiniSat Teleporter"; + dir = 1; + network = list("minisat"); + start_active = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"ctY" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat/atmos) +"ctZ" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat/atmos) +"cua" = ( +/turf/closed/wall, +/area/ai_monitored/turret_protected/aisat_interior) +"cub" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cuc" = ( +/obj/structure/rack, +/obj/machinery/status_display/evac{ + pixel_y = -32 + }, +/obj/item/storage/box/donkpockets, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cud" = ( +/obj/machinery/turretid{ + control_area = "/area/ai_monitored/turret_protected/aisat_interior"; + name = "Antechamber Turret Control"; + pixel_y = -24; + req_access = null; + req_access_txt = "65" + }, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera/motion{ + c_tag = "MiniSat Foyer"; + dir = 1; + network = list("minisat") + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cue" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cuf" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat/service) +"cug" = ( +/obj/machinery/status_display/ai{ + pixel_y = -32 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cuh" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/rack, +/obj/item/wrench, +/obj/item/crowbar/red, +/obj/item/clothing/head/welding, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/atmos) +"cui" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/atmos) +"cuj" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"cuk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"cul" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Antechamber"; + req_one_access_txt = "65" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cum" = ( +/obj/machinery/recharge_station, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/service) +"cun" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to MiniSat" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/atmos) +"cuo" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/atmos) +"cup" = ( +/obj/structure/showcase/cyborg/old{ + dir = 8; + pixel_x = 9; + pixel_y = 2 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/atmos) +"cuq" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Air Out" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/atmos) +"cur" = ( +/obj/structure/showcase/cyborg/old{ + dir = 4; + pixel_x = -9; + pixel_y = 2 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cus" = ( +/obj/structure/showcase/cyborg/old{ + dir = 8; + pixel_x = 9; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cuu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cuv" = ( +/obj/structure/showcase/cyborg/old{ + dir = 4; + pixel_x = -9; + pixel_y = 2 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = 30 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/service) +"cuw" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/service) +"cux" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/clothing/head/welding, +/obj/item/stack/sheet/mineral/plasma{ + amount = 35 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/service) +"cuy" = ( +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cuz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"cuA" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "MiniSat Atmospherics"; + dir = 4; + network = list("minisat"); + start_active = 1 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/space_heater, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/atmos) +"cuB" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"cuC" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"cuD" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "MiniSat Antechamber"; + dir = 4; + network = list("minisat"); + start_active = 1 + }, +/obj/machinery/turretid{ + control_area = "/area/ai_monitored/turret_protected/aisat/atmos"; + name = "Atmospherics Turret Control"; + pixel_x = -27; + req_access = null; + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cuE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"cuF" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/turretid{ + control_area = "/area/ai_monitored/turret_protected/aisat/service"; + name = "Service Bay Turret Control"; + pixel_x = 27; + req_access = null; + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cuG" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cuH" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/service) +"cuI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/service) +"cuJ" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/service) +"cuK" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "MiniSat Service Bay"; + dir = 8; + network = list("minisat"); + start_active = 1 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/multitool, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/service) +"cuL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"cuM" = ( +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/aisat/atmos"; + dir = 8; + name = "MiniSat Atmospherics APC"; + pixel_x = -27 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/atmos) +"cuN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"cuO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"cuP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cuQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Atmospherics"; + req_one_access_txt = "65" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cuR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cuS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/mob/living/simple_animal/bot/secbot/pingsky, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cuT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/service) +"cuU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Service Bay"; + req_one_access_txt = "65" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cuV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/service) +"cuW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/service) +"cuX" = ( +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/aisat/service"; + dir = 4; + name = "MiniSat Service Bay APC"; + pixel_x = 27 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/service) +"cuY" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"cuZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/mob/living/simple_animal/bot/floorbot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"cva" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"cvb" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"cvc" = ( +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1447; + listening = 0; + name = "Station Intercom (AI Private)"; + pixel_y = -29 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cvd" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/structure/sign/warning/securearea{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cve" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/turretid{ + control_area = "/area/ai_monitored/turret_protected/aisat/hallway"; + name = "Chamber Hallway Turret Control"; + pixel_x = 32; + pixel_y = -24; + req_access = null; + req_access_txt = "65" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cvf" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"cvg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/mob/living/simple_animal/bot/cleanbot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/service) +"cvh" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/service) +"cvi" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/service) +"cvj" = ( +/turf/closed/wall, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvk" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvl" = ( +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cvm" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "MiniSat Maintenance"; + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Chamber Hallway"; + req_one_access_txt = "65" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvp" = ( +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"cvq" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "MiniSat Maintenance"; + req_access_txt = "65" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvr" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"cvs" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvu" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvv" = ( +/turf/closed/wall, +/area/ai_monitored/turret_protected/ai) +"cvw" = ( +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvx" = ( +/obj/effect/landmark/start/ai/secondary, +/obj/item/radio/intercom{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_y = 28 + }, +/obj/item/radio/intercom{ + freerange = 1; + name = "Common Channel"; + pixel_x = -27; + pixel_y = 5 + }, +/obj/item/radio/intercom{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_y = -25 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"cvy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvA" = ( +/obj/effect/landmark/start/ai/secondary, +/obj/item/radio/intercom{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_y = 28 + }, +/obj/item/radio/intercom{ + freerange = 1; + name = "Common Channel"; + pixel_x = 27; + pixel_y = 5 + }, +/obj/item/radio/intercom{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_y = -25 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"cvB" = ( +/obj/structure/rack, +/obj/item/crowbar/red, +/obj/item/wrench, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvD" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvE" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvG" = ( +/obj/machinery/porta_turret/ai{ + dir = 4; + installation = /obj/item/gun/energy/e_gun + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvJ" = ( +/obj/machinery/porta_turret/ai{ + dir = 4; + installation = /obj/item/gun/energy/e_gun + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvL" = ( +/obj/structure/sign/warning/securearea{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvM" = ( +/obj/machinery/camera/motion{ + c_tag = "MiniSat Core Hallway"; + dir = 4; + network = list("aicore") + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvN" = ( +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cvP" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "MiniSat Maintenance"; + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvU" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "MiniSat Maintenance"; + req_access_txt = "65" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvV" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvW" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvX" = ( +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cvZ" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/aisat/hallway) +"cwa" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/aisat/hallway"; + dir = 4; + name = "MiniSat Chamber Hallway APC"; + pixel_x = 27 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/aisat/hallway) +"cwb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cwc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/hallway) +"cwd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1447; + listening = 0; + name = "Station Intercom (AI Private)"; + pixel_x = -28; + pixel_y = -29 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/hallway) +"cwe" = ( +/obj/structure/sign/warning/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"cwf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Chamber Observation"; + req_one_access_txt = "65" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwg" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwh" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwi" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwk" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwm" = ( +/obj/structure/table/reinforced, +/obj/item/folder/white, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwp" = ( +/obj/structure/chair/office/dark, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwq" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/hallway) +"cwr" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"cws" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"cwt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "AI Core"; + req_access_txt = "65" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwv" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/status_display/evac{ + pixel_x = -32 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"cww" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwx" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwA" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwB" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/status_display/ai{ + pixel_x = 32 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"cwC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cwD" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/turretid{ + name = "AI Chamber turret control"; + pixel_x = 5; + pixel_y = -24 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"cwE" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/ai_monitored/turret_protected/ai"; + name = "AI Chamber APC"; + pixel_y = -24 + }, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = -11; + pixel_y = -24 + }, +/obj/machinery/camera/motion{ + c_tag = "MiniSat AI Chamber North"; + dir = 1; + network = list("aicore") + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"cwH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"cwT" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Escape Pod 2"; + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cxm" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cxo" = ( +/obj/structure/chair/wood/normal, +/turf/open/floor/wood, +/area/maintenance/bar) +"cxN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"cxP" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/security/processing) +"cxW" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"cxY" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Escape Pod 1"; + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cya" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/fore) +"cyb" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod One" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cyg" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/command{ + name = "Command Tool Storage"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"cyh" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Security Escape Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"cyl" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Port Docking Bay 2" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cyp" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Escape Airlock" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"cyr" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Cargo Escape Airlock" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"cyt" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Port Docking Bay 4" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cyu" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Port Docking Bay 3" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cyC" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cyD" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Supply Dock Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"cyE" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cyG" = ( +/turf/open/floor/plating, +/area/engine/atmos) +"cyK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"cyL" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cyM" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/engineering{ + name = "Engine Room"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cyU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"czg" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Escape Pod Four"; + shuttledocked = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"czk" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "MiniSat External Access"; + req_access_txt = "65;13" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"czG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"czH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"czJ" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/maintenance/disposal/incinerator) +"czK" = ( +/turf/closed/wall, +/area/security/vacantoffice) +"czO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"czQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"czR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"czS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"czT" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"czU" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"czW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"czX" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"czY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"czZ" = ( +/obj/structure/chair, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cAa" = ( +/obj/structure/chair, +/obj/item/storage/fancy/cigarettes, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cAb" = ( +/obj/structure/closet, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cAc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/starboard/aft) +"cAd" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cAe" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/aft) +"cAg" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"cAh" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cAi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cAy" = ( +/obj/structure/closet/secure_closet/freezer/kitchen/maintenance, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cAz" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"cAA" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cAB" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cAC" = ( +/obj/structure/sink/kitchen{ + dir = 8; + pixel_x = 11 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cAD" = ( +/obj/structure/table, +/obj/item/kitchen/knife, +/obj/item/storage/box/donkpockets, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cAE" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_y = 2 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = 2 + }, +/obj/item/reagent_containers/food/snacks/mint{ + pixel_y = 9 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cAF" = ( +/turf/open/floor/plating, +/area/maintenance/disposal) +"cAG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/hop"; + name = "Head of Personnel APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"cAH" = ( +/obj/machinery/processor, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cAI" = ( +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "garbage"; + name = "disposal conveyor" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cAJ" = ( +/obj/structure/closet, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cAK" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cAL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/start/janitor, +/turf/open/floor/plasteel, +/area/janitor) +"cAQ" = ( +/obj/structure/chair, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cAR" = ( +/obj/machinery/door/window{ + dir = 1; + name = "AI Core Door"; + req_access_txt = "16" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"cAS" = ( +/obj/effect/landmark/start/ai, +/obj/item/radio/intercom{ + freerange = 1; + name = "Common Channel"; + pixel_x = -27; + pixel_y = -9 + }, +/obj/item/radio/intercom{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_y = -31 + }, +/obj/item/radio/intercom{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = 27; + pixel_y = -9 + }, +/obj/machinery/newscaster/security_unit{ + pixel_x = -28; + pixel_y = -28 + }, +/obj/machinery/requests_console{ + department = "AI"; + departmentType = 5; + pixel_x = 28; + pixel_y = -28 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"cAT" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cAV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/showcase/cyborg/old{ + dir = 8; + pixel_x = 9; + pixel_y = 2 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cAW" = ( +/obj/structure/showcase/cyborg/old{ + dir = 4; + pixel_x = -9; + pixel_y = 2 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cAY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall, +/area/ai_monitored/turret_protected/ai) +"cAZ" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cBa" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"cBb" = ( +/obj/machinery/camera/motion{ + c_tag = "MiniSat AI Chamber South"; + network = list("aicore") + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"cBc" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"cBd" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cBe" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"cBg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/hydroponics) +"cBh" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/locker) +"cBi" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cBj" = ( +/obj/structure/table, +/obj/item/folder/blue, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"cBk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"cBl" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cBm" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"cBn" = ( +/obj/structure/closet, +/obj/item/stack/tile/carpet/royalblue{ + amount = 24 + }, +/obj/item/stack/tile/carpet/green{ + amount = 24 + }, +/obj/item/stack/tile/carpet/purple{ + amount = 24 + }, +/obj/item/stack/tile/carpet/orange{ + amount = 24 + }, +/obj/item/stack/tile/wood{ + amount = 24 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"cBo" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"cBp" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cBq" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cBr" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cBt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/science/explab) +"cBu" = ( +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/hor) +"cBv" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"cBw" = ( +/obj/machinery/door/firedoor, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cBx" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/science/research) +"cBy" = ( +/obj/machinery/door/airlock{ + name = "Custodial Closet"; + req_access_txt = "26" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/janitor) +"cBz" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/engine, +/area/science/xenobiology) +"cBA" = ( +/obj/machinery/button/massdriver{ + id = "toxinsdriver"; + pixel_y = 24 + }, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"cBB" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"cBC" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/storage/tech) +"cBD" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/aft) +"cBE" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/air_sensor/atmos/toxins_mixing_tank, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"cBF" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cBH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cBI" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"cBJ" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cBK" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"cBL" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cBM" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/item/twohanded/rcl/pre_loaded, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cBN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cBO" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cBP" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/landmark/event_spawn, +/turf/open/floor/engine/air, +/area/engine/atmos) +"cBS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/hallway) +"cBT" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cBZ" = ( +/obj/structure/table/wood, +/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/item/clothing/under/misc/burial, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"cCb" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + amount = 5 + }, +/obj/item/flashlight, +/turf/open/floor/plating, +/area/construction) +"cCc" = ( +/obj/structure/rack, +/obj/item/clothing/suit/hazardvest, +/turf/open/floor/plating, +/area/construction) +"cCd" = ( +/turf/open/floor/plasteel, +/area/construction) +"cCe" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/construction) +"cCf" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating, +/area/construction) +"cCi" = ( +/turf/closed/wall, +/area/security/vacantoffice/b) +"cCj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/detectives_office) +"cCk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/detectives_office) +"cCn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cCo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cCp" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_containers/blood, +/obj/item/reagent_containers/blood, +/obj/item/reagent_containers/blood/AMinus, +/obj/item/reagent_containers/blood/BMinus{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/reagent_containers/blood/BPlus{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/reagent_containers/blood/OMinus, +/obj/item/reagent_containers/blood/OPlus{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/APlus, +/obj/item/reagent_containers/blood/random, +/turf/open/floor/plasteel, +/area/medical/sleeper) +"cCq" = ( +/obj/machinery/deepfryer, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"cCt" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/obj/item/poster/random_official, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cCE" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cCF" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"cCT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cCY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cDl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/vending/tool, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cDm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/vending/engivend, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cDB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cDJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cDK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cDL" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cDN" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/engineering) +"cDZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cEo" = ( +/obj/structure/closet/boxinggloves, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cGz" = ( +/obj/structure/table/wood, +/obj/item/instrument/violin, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"cGG" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cHf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 20 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + dir = 1; + pixel_x = 3; + pixel_y = 20 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/reagent_containers/food/drinks/britcup, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"cHD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2; + sortType = 14 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"cHE" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mech Bay Maintenance"; + req_access_txt = "29" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/science/robotics/mechbay) +"cHF" = ( +/obj/machinery/button/door{ + id = "Skynet_launch"; + name = "Mech Bay Door Control"; + pixel_x = 6; + pixel_y = 24 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"cHG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"cHH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"cHI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"cHJ" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"cHK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research/glass{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"cHL" = ( +/obj/machinery/mech_bay_recharge_port{ + dir = 2 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/science/robotics/mechbay) +"cHM" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"cHN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit, +/area/science/robotics/mechbay) +"cHO" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "robo1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"cHP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass{ + amount = 20; + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"cHQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"cHR" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "robo1" + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"cHS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/landmark/start/roboticist, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"cHT" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"cHU" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"cHV" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "robo2" + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"cHW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/mecha_part_fabricator, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"cHX" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/clothing/glasses/welding, +/obj/item/multitool{ + pixel_x = 3 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"cHZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"cIa" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"cIb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "robo2" + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"cIc" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/bot, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"cId" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"cIe" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"cIf" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"cIh" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Port Docking Bay 1" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cIv" = ( +/obj/structure/sign/poster/official/cohiba_robusto_ad, +/turf/closed/wall, +/area/lawoffice) +"cJW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/circuit, +/area/ai_monitored/nuke_storage) +"cKC" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"cKT" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + req_access_txt = "24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/engine/atmos) +"cMp" = ( +/obj/machinery/light, +/turf/open/floor/plating, +/area/engine/engineering) +"cMC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/computer/security/telescreen/engine{ + dir = 8; + pixel_x = 30 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cMQ" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/solar{ + id = "starboardsolar"; + name = "Starboard Solar Array" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"cMS" = ( +/obj/item/chair/wood, +/turf/open/floor/plating, +/area/maintenance/port) +"cNa" = ( +/obj/structure/cable, +/obj/machinery/power/solar{ + id = "starboardsolar"; + name = "Starboard Solar Array" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"cNE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/crew_quarters/bar) +"cNG" = ( +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"cNI" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"cNJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"cNL" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/central"; + dir = 1; + name = "Central Maintenance APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"cNM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"cNN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"cNR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cNS" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/starboard"; + dir = 4; + name = "Starboard Maintenance APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cNT" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cNU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cNV" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + req_one_access_txt = "8;12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cNW" = ( +/turf/closed/wall, +/area/maintenance/starboard/aft) +"cNX" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "8;12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cNY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/starboard/aft) +"cNZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cOb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cOe" = ( +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cOw" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cOx" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cOz" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cOT" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cOV" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/machinery/door/poddoor/preopen{ + id = "Prison Gate"; + name = "prison blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/security/prison) +"cPn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"cPA" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cPH" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cPI" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cQw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/starboard/aft) +"cQB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cQF" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"cQT" = ( +/obj/structure/filingcabinet, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"cQU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cSA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/courtroom) +"cSE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"cSF" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"cSL" = ( +/obj/machinery/button/door{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_x = -24; + pixel_y = 10; + req_access_txt = "24" + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for secure storage."; + id = "Secure Storage"; + name = "Engineering Secure Storage"; + pixel_x = -24; + req_access_txt = "11" + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for the engineering security doors."; + id = "Engineering"; + name = "Engineering Lockdown"; + pixel_x = -24; + pixel_y = -10; + req_access_txt = "10" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"cSM" = ( +/obj/machinery/computer/station_alert, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cSN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cSO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cSP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cSQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cSR" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Engineering Power Storage" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cSS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cST" = ( +/obj/effect/landmark/start/station_engineer, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cSU" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cSV" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cSW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cSX" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cSY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cSZ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cTa" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cTb" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cTc" = ( +/obj/effect/spawner/structure/window, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cTd" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/engineering) +"cTe" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cTf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/requests_console{ + department = "Engineering"; + departmentType = 4; + name = "Engineering RC"; + pixel_y = 30 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cTD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/central/secondary"; + dir = 8; + name = "Central Maintenance APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/central/secondary) +"cTE" = ( +/obj/machinery/computer/shuttle/mining{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"cTF" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cTJ" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"cTK" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"cTL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"cTM" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/department/medical/morgue"; + dir = 4; + name = "Morgue Maintenance APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"cTO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"cTS" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"cTT" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/circuit, +/area/ai_monitored/nuke_storage) +"cTX" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/shieldwallgen/xenobiologyaccess, +/obj/structure/sign/poster/official/safety_eye_protection{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"cTY" = ( +/obj/structure/sign/poster/official/safety_internals{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cTZ" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cUx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge/meeting_room) +"cVb" = ( +/turf/closed/wall, +/area/hallway/secondary/service) +"cVs" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"cVt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cVK" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cXi" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cXU" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/light{ + light_color = "#c9d3e8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"cZe" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"daI" = ( +/obj/structure/window/reinforced, +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"daY" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"dbU" = ( +/obj/structure/light_construct{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"dce" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"dev" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/storage"; + name = "Cargo Bay APC"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"deE" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Gas to Filter" + }, +/obj/machinery/airalarm/engine{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"dfh" = ( +/obj/machinery/power/apc{ + areastring = "/area/science/circuit"; + name = "Circuitry Lab APC"; + pixel_x = 30 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"dfL" = ( +/obj/structure/reagent_dispensers/keg/gargle, +/turf/open/floor/wood, +/area/maintenance/bar) +"dgz" = ( +/turf/closed/wall, +/area/crew_quarters/cryopod) +"dgO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"dhT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Engineering Supermatter Starboard"; + dir = 8; + network = list("ss13","engine") + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"diq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"dly" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/security/range) +"dlO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"dml" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"dqb" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"dqu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"dsC" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/theatre) +"dtx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 25 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"dvc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/cryopod) +"dvO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/science/circuit) +"dyE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"dyS" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"dzi" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/carpet, +/area/crew_quarters/cryopod) +"dzQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"dBm" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"dCr" = ( +/obj/structure/pool/Rboard, +/turf/open/floor/plasteel/yellowsiding{ + dir = 8 + }, +/area/crew_quarters/fitness/pool) +"dCV" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/range) +"dDc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix Bypass" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"dFX" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/pool) +"dIt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/engine/engineering) +"dIH" = ( +/obj/structure/grille/broken, +/obj/effect/landmark/loneopspawn, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"dJL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/command{ + name = "Head of Security's Office"; + req_access_txt = "58" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"dKP" = ( +/turf/closed/wall, +/area/maintenance/bar) +"dKV" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/maintenance/bar) +"dMZ" = ( +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"dPk" = ( +/obj/structure/closet{ + name = "Costume Closet" + }, +/obj/item/clothing/head/russobluecamohat, +/obj/item/clothing/head/russobluecamohat, +/obj/item/clothing/head/ushanka, +/obj/item/clothing/head/ushanka, +/obj/item/clothing/head/ushanka, +/obj/item/clothing/head/ushanka, +/obj/item/clothing/under/misc/blue_camo, +/obj/item/clothing/under/misc/blue_camo, +/obj/item/clothing/under/misc/blue_camo, +/obj/item/clothing/under/misc/blue_camo, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"dPq" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"dSF" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"dSI" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"dTI" = ( +/obj/structure/urinal{ + pixel_y = 32 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"dUG" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"dVX" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"dXq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"dYZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/range) +"eaI" = ( +/obj/structure/table/reinforced, +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"ecg" = ( +/turf/open/floor/plasteel/yellowsiding/corner{ + dir = 4 + }, +/area/crew_quarters/fitness/pool) +"ecE" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix to Waste" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"edA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-04" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"egt" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/requests_console{ + department = "Bar"; + departmentType = 2; + pixel_x = -30; + pixel_y = 45; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"eih" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"elh" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"ene" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"enB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/execution/transfer) +"eon" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"epC" = ( +/obj/machinery/door/airlock{ + desc = "To keep the station within regulations, space IKEA requires one storage cupboard for their Nanotrasen partnership to continue."; + id_tag = "MaintDorm1"; + name = "Furniture Storage" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"epD" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/structure/chair/sofa/right{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"eqd" = ( +/obj/item/electropack/shockcollar, +/obj/item/assembly/signaler, +/turf/open/floor/plating, +/area/security/prison) +"eqA" = ( +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"esK" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Chemical Storage"; + req_access_txt = "12" + }, +/obj/structure/barricade/wooden, +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/fore) +"esL" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_y = 20 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"esZ" = ( +/obj/machinery/door/airlock{ + desc = "Private study room where nerds are probably playing Dungeons and Dragons 13e, or a place for blood cult rituals."; + id_tag = "PrivateStudy"; + name = "Private Study" + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/library) +"etE" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"evR" = ( +/turf/open/floor/plating, +/area/maintenance/bar) +"ewu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"exP" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-14" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"eyM" = ( +/obj/machinery/mineral/ore_redemption{ + input_dir = 2; + output_dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"eAG" = ( +/obj/item/clothing/under/misc/pj/blue, +/obj/item/clothing/shoes/sneakers/white, +/turf/open/floor/plating, +/area/maintenance/fore) +"eAJ" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"eBm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"eBX" = ( +/obj/machinery/vending/cola/space_up, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"eCr" = ( +/obj/structure/closet{ + name = "Suit Closet" + }, +/obj/item/clothing/under/suit/white, +/obj/item/clothing/under/suit/tan, +/obj/item/clothing/under/suit/red, +/obj/item/clothing/under/suit/black_really, +/obj/item/clothing/under/suit/navy, +/obj/item/clothing/under/suit/green, +/obj/item/clothing/under/suit/black/skirt, +/obj/item/clothing/under/suit/checkered, +/obj/item/clothing/under/suit/charcoal, +/obj/item/clothing/under/suit/burgundy, +/obj/item/clothing/under/suit/black, +/obj/item/clothing/under/rank/civilian/lawyer/black, +/obj/item/clothing/under/suit/black, +/obj/item/clothing/under/rank/civilian/lawyer/blue, +/obj/item/clothing/under/rank/civilian/lawyer/bluesuit, +/obj/item/clothing/under/rank/civilian/lawyer/female, +/obj/item/clothing/under/rank/civilian/lawyer/purpsuit, +/obj/item/clothing/under/rank/civilian/lawyer/really_black, +/obj/item/clothing/under/rank/civilian/lawyer/red, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"eCR" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"eEe" = ( +/obj/machinery/door/airlock{ + name = "Theatre Backstage"; + req_access_txt = "46" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"eFx" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"eHa" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/engine/engineering) +"eHI" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"eJa" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck{ + pixel_y = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"eMs" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"ePe" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ePU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/light, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/engine/engineering) +"eQb" = ( +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"eSe" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"eVC" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/crew_quarters/cryopod) +"eVJ" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/crew_quarters/fitness/pool) +"eVL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"eWL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Prison Gate"; + name = "prison blast door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/security/prison) +"eWV" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + req_access_txt = "24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"eXz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"fcn" = ( +/obj/structure/lattice, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"fcG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) +"fdQ" = ( +/obj/structure/bed, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/plating, +/area/maintenance/fore) +"feE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"feG" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"fft" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"fgG" = ( +/obj/structure/table/wood, +/obj/machinery/requests_console{ + department = "Theatre"; + name = "theatre RC"; + pixel_x = -32 + }, +/obj/item/reagent_containers/food/snacks/baguette, +/obj/item/toy/dummy, +/obj/item/lipstick/random{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/lipstick/random{ + pixel_x = -2; + pixel_y = -2 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/theatre) +"fjS" = ( +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"fkR" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"flc" = ( +/obj/structure/table/reinforced, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"flE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"fne" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/landmark/start/mime, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/theatre) +"fnC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"foo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 5 + }, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/engine/engineering) +"foT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"fpl" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"fpt" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"fpz" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"fpI" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-06" + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"fpW" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Gas to Chamber" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"fqD" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"fsa" = ( +/obj/machinery/button/door{ + id = "armory3"; + name = "Armory Shutters"; + pixel_y = 26; + req_access_txt = "3" + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"fsj" = ( +/obj/structure/table, +/obj/item/clothing/glasses/sunglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/glasses/sunglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/security/range) +"ftE" = ( +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"fup" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"fvY" = ( +/obj/machinery/computer/cryopod{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/cryopod) +"fxa" = ( +/obj/structure/chair/wood/normal, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/maintenance/bar) +"fxe" = ( +/obj/structure/chair/sofa, +/obj/structure/window{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"fxx" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/security/brig) +"fxS" = ( +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/machinery/power/rad_collector/anchored, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"fxV" = ( +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"fxZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"fyS" = ( +/obj/structure/pool/ladder{ + dir = 1; + pixel_y = -24 + }, +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"fzd" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, +/area/hydroponics) +"fAj" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/sign/poster/official/love_ian{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"fAX" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"fBy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"fCx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "holoprivacy"; + name = "Holodeck Privacy"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"fFA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"fGf" = ( +/obj/machinery/smartfridge/disks{ + pixel_y = 2 + }, +/obj/structure/table, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"fHs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"fHG" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"fJs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Cooling Loop Bypass" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"fJY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/security/processing) +"fJZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"fKl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/science/circuit) +"fMp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"fNu" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + req_access_txt = "24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"fOA" = ( +/obj/machinery/door/airlock{ + name = "Theatre Backstage"; + req_access_txt = "46" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"fOI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-18" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"fPL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"fPM" = ( +/obj/structure/rack, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/wrench, +/obj/item/weldingtool, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"fPU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/engine/engineering) +"fTg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"fTC" = ( +/obj/structure/filingcabinet, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"fUP" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber"; + req_access_txt = "10" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"fZm" = ( +/obj/structure/chair/sofa/left, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"gav" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"gbd" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"gbh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness) +"gbq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plating, +/area/construction) +"gbu" = ( +/obj/structure/bed, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/plating, +/area/security/prison) +"gbT" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"gcj" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"gcF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/light_construct{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"gfr" = ( +/obj/structure/bed, +/turf/open/floor/plating, +/area/maintenance/port) +"gfC" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"gfD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/crew_quarters/cryopod) +"gfJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ghD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"gii" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"gjl" = ( +/turf/closed/wall, +/area/quartermaster/warehouse) +"gkD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"glC" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/engine/engineering) +"glY" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/structure/closet/secure_closet/atmospherics, +/obj/item/cartridge/atmos, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gnf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/departments/custodian{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"gpD" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/circuit, +/area/ai_monitored/nuke_storage) +"grc" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"grA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness) +"gsM" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"gvX" = ( +/turf/open/floor/plasteel/yellowsiding, +/area/crew_quarters/fitness/pool) +"gwd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"gxc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"gyr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"gzf" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/curtain, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"gzv" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"gzY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fore) +"gAi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"gAE" = ( +/obj/structure/rack, +/obj/item/flashlight, +/obj/item/crowbar/large, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"gBa" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"gBo" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"gCd" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Engineering Supermatter Aft"; + network = list("ss13","engine"); + pixel_x = 23 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, +/area/engine/engineering) +"gCC" = ( +/obj/structure/sign/poster/contraband/tools, +/turf/closed/wall, +/area/storage/primary) +"gDB" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"gDP" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/item/radio/intercom{ + pixel_y = 20 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"gGH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"gIy" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"gJm" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"gLz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"gLH" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"gMl" = ( +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"gNC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"gNE" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/brig) +"gOZ" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"gQX" = ( +/obj/machinery/button/door{ + desc = "Alright, GAMER! Want to take your PWRGAME addiction to the MAX? Just smash this button with your chubby chetto encrusted hands an- oh, you broke the switch. Good job, idiot."; + id = "RIPFUN"; + name = "Powerful Gamer Toggle"; + normaldoorcontrol = 1; + pixel_x = -24; + pixel_y = 7; + specialfunctions = 4 + }, +/obj/structure/table_frame/wood, +/turf/open/floor/plating, +/area/maintenance/port) +"gRZ" = ( +/obj/structure/bookcase{ + name = "Forbidden Knowledge" + }, +/turf/open/floor/carpet, +/area/library) +"gTx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"gUu" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"gWd" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/construction) +"gWo" = ( +/turf/closed/wall, +/area/security/range) +"gZG" = ( +/obj/structure/closet/crate/freezer/surplus_limbs, +/obj/item/reagent_containers/glass/beaker/synthflesh, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/medical/sleeper) +"haM" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"hcb" = ( +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"hcA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"hew" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"hgO" = ( +/obj/structure/table, +/obj/item/storage/pill_bottle/dice{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/snacks/cherrycupcake, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"hhc" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"hid" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"hiV" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"hlT" = ( +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2"; + shuttledocked = 1 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/processing) +"hlV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/dorms) +"hnl" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/port) +"hnU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/window/westleft{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Shooting Range" + }, +/turf/open/floor/plating, +/area/security/range) +"hrF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"hsb" = ( +/obj/structure/table/wood, +/obj/item/book/codex_gigas, +/obj/item/clothing/under/suit/red, +/obj/structure/destructible/cult/tome, +/turf/open/floor/carpet, +/area/library) +"hsZ" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"hzK" = ( +/turf/open/floor/plasteel/yellowsiding/corner{ + dir = 1 + }, +/area/crew_quarters/fitness/pool) +"hAe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/gloves/color/black, +/obj/item/tank/internals/emergency_oxygen/engi{ + pixel_x = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"hBw" = ( +/obj/structure/lattice, +/turf/closed/wall, +/area/maintenance/fore) +"hBA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table, +/obj/item/storage/firstaid/regular{ + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"hGf" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"hGH" = ( +/obj/machinery/door/airlock{ + desc = "Private study room where nerds are probably playing Dungeons and Dragons 13e, or a place for blood cult rituals."; + id_tag = "PrivateStudy"; + name = "Private Study" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/wood, +/area/library) +"hHQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"hIL" = ( +/obj/structure/sign/poster/contraband/space_up{ + pixel_x = -32; + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"hIM" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"hLJ" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/engine/engineering) +"hNw" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Atmos to Loop" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"hOv" = ( +/obj/structure/table/wood/fancy, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/snacks/burger/plain, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"hOI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"hPs" = ( +/obj/structure/fireplace{ + pixel_y = -6 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"hPP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/quartermaster/warehouse) +"hRa" = ( +/obj/structure/table/reinforced, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"hRI" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"hSh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"hSl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"hSZ" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"hVs" = ( +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"hWd" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"iaZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ibK" = ( +/turf/open/floor/plasteel, +/area/security/processing) +"idK" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Firing Range"; + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/security/range) +"iiW" = ( +/turf/open/floor/wood, +/area/maintenance/bar) +"ijG" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/window, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"ikk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"ikm" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"imH" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/maintenance/bar) +"inq" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore) +"inw" = ( +/mob/living/simple_animal/hostile/retaliate/goose{ + desc = "Some evil loose goose."; + name = "Cere" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"inR" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/theatre) +"iou" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"ipA" = ( +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"itD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/security/brig) +"itG" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"itK" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/structure/light_construct{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"itQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/security/range) +"ium" = ( +/mob/living/simple_animal/bot/cleanbot{ + name = "C.L.E.A.N." + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"iuR" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"iwB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/port) +"izg" = ( +/obj/item/cigbutt/cigarbutt, +/turf/open/floor/plating, +/area/maintenance/fore) +"izv" = ( +/obj/machinery/vending/clothing, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"izw" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "Output to Waste" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/engine/engineering) +"iBv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"iEJ" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod One" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"iGX" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"iHk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"iJM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/engineering) +"iLJ" = ( +/obj/item/reagent_containers/glass/bucket, +/mob/living/simple_animal/pet/bumbles, +/turf/open/floor/plasteel, +/area/hydroponics) +"iMv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/table/glass, +/obj/structure/bedsheetbin/towel, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"iNn" = ( +/obj/machinery/camera{ + c_tag = "Kitchen Cold Room" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/reagent_dispensers/cooking_oil, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"iPp" = ( +/obj/structure/girder, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"iPX" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + desc = "Used to grind things up into raw materials and liquids."; + pixel_y = 5 + }, +/obj/item/lighter, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fore) +"iRj" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"iTq" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/theatre) +"iTU" = ( +/obj/structure/musician/piano{ + icon_state = "piano" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"iUK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/vacantoffice/b) +"iVJ" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"iVU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/crew_quarters/cryopod) +"iWx" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/coin/silver, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"iWD" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"iXc" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"iYC" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"iYE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"jaF" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"jaH" = ( +/obj/structure/door_assembly/door_assembly_mai, +/obj/item/electronics/airlock, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"jbf" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/service"; + dir = 1; + name = "Service Hall APC"; + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"jex" = ( +/obj/machinery/smartfridge/organ/preloaded, +/turf/closed/wall, +/area/medical/sleeper) +"jez" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"jfm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"jgm" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/camera{ + c_tag = "Circuitry Lab"; + dir = 8; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"jgA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"jhU" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"jjC" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel, +/area/security/prison) +"jkx" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/computer/slot_machine, +/obj/item/coin/iron, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"jkz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"jlm" = ( +/obj/machinery/rnd/production/techfab/department/cargo, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"jmV" = ( +/obj/structure/table/wood/fancy, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/reagent_containers/food/drinks/britcup{ + desc = "Kingston's personal cup."; + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"jqv" = ( +/obj/structure/chair/wood/normal{ + dir = 1 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"jqS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"jrl" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"jrE" = ( +/obj/structure/sign/poster/official/random{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"jsT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"juG" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/obj/item/reagent_containers/food/snacks/bluecherrycupcake{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"juQ" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"jvd" = ( +/obj/structure/closet/athletic_mixed, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"jxF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/port) +"jyO" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"jAN" = ( +/obj/machinery/vr_sleeper{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/crew_quarters/fitness) +"jBi" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness) +"jBA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"jCq" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"jEc" = ( +/obj/machinery/vr_sleeper{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/crew_quarters/fitness) +"jFH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"jGW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"jHh" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"jHt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"jIb" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"jIs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"jJF" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/maintenance/port/aft) +"jKP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"jLn" = ( +/obj/machinery/door/airlock/engineering{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"jLT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"jMW" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "PoolShut"; + name = "Pool Shutters"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"jRw" = ( +/obj/machinery/computer/arcade/minesweeper{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"jSO" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"jTJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable, +/obj/machinery/power/emitter/anchored{ + dir = 4; + state = 2 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"jVl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"jXN" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8; + filter_type = "n2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"jZT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "maint2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"kbm" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 2"; + name = "Cell 2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"kbT" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/engineering) +"kdO" = ( +/obj/machinery/pool/controller, +/turf/open/floor/plasteel/yellowsiding, +/area/crew_quarters/fitness/pool) +"kdP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/range) +"ker" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"keM" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/washing_machine, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"kfv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/storage/tech) +"kfX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/engine/engine_smes) +"kgr" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plating, +/area/security/prison) +"khb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/table, +/obj/item/kitchen/rollingpin, +/obj/item/shovel/spade, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"khB" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Pool Maintenance"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"khV" = ( +/obj/machinery/vending/cola/red, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"kjm" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Cooling Loop to Gas" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"kmw" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"kmS" = ( +/obj/structure/dresser, +/obj/item/flashlight/lamp/green{ + pixel_x = -2; + pixel_y = 15 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"knx" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"kob" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"kqI" = ( +/obj/structure/window, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"ksp" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/closed/wall, +/area/engine/atmos) +"ktP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"kuh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"kuA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/item/radio/intercom{ + pixel_y = 20 + }, +/turf/open/floor/plasteel, +/area/security/range) +"kvL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"kxf" = ( +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/fitness) +"kyF" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/wood, +/area/maintenance/bar) +"kyT" = ( +/obj/effect/landmark/loneopspawn, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"kzT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/science/mixing) +"kAH" = ( +/obj/machinery/camera{ + c_tag = "Bar West"; + dir = 4 + }, +/obj/machinery/computer/arcade/orion_trail, +/obj/structure/sign/poster/official/foam_force_ad{ + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"kAJ" = ( +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"kAO" = ( +/obj/structure/chair/sofa{ + dir = 1 + }, +/obj/structure/window, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"kCa" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/range) +"kCo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/theatre) +"kGJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"kHd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Prisoner Processing"; + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"kJc" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"kLz" = ( +/obj/structure/cable, +/obj/machinery/power/emitter/anchored{ + dir = 4; + state = 2 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"kMt" = ( +/obj/machinery/computer/prisoner/gulag_teleporter_computer, +/turf/open/floor/plasteel, +/area/security/prison) +"kNt" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"kNv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/free_drone{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"kOV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"kPd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"kPj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction/flip, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"kQk" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/storage/toolbox/electrical, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"kQz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"kQO" = ( +/obj/structure/reagent_dispensers/keg/semen, +/turf/open/floor/plating, +/area/maintenance/bar) +"kSb" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"kTj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/barricade/wooden, +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/fore) +"kUC" = ( +/obj/machinery/chem_master/condimaster, +/turf/open/floor/plating, +/area/maintenance/fore) +"kVO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable, +/obj/machinery/power/emitter/anchored{ + dir = 8; + state = 2 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"kXA" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"kYk" = ( +/obj/machinery/door/firedoor, +/obj/structure/sign/departments/evac{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"kZE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"kZS" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"laq" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/range) +"lfB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"lfV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"lgA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/camera{ + c_tag = "Engineering Supermatter Port"; + dir = 4; + network = list("ss13","engine") + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"lip" = ( +/obj/structure/closet{ + name = "Suit Closet" + }, +/obj/item/clothing/under/suit/white, +/obj/item/clothing/under/suit/tan, +/obj/item/clothing/under/suit/red, +/obj/item/clothing/under/suit/black_really, +/obj/item/clothing/under/suit/navy, +/obj/item/clothing/under/suit/green, +/obj/item/clothing/under/suit/black/skirt, +/obj/item/clothing/under/suit/checkered, +/obj/item/clothing/under/suit/charcoal, +/obj/item/clothing/under/suit/burgundy, +/obj/item/clothing/under/suit/black, +/obj/item/clothing/under/rank/civilian/lawyer/black, +/obj/item/clothing/under/suit/black, +/obj/item/clothing/under/rank/civilian/lawyer/blue, +/obj/item/clothing/under/rank/civilian/lawyer/bluesuit, +/obj/item/clothing/under/rank/civilian/lawyer/female, +/obj/item/clothing/under/rank/civilian/lawyer/purpsuit, +/obj/item/clothing/under/rank/civilian/lawyer/really_black, +/obj/item/clothing/under/rank/civilian/lawyer/red, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"lnk" = ( +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"lnu" = ( +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/bar) +"lpA" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"lsk" = ( +/obj/machinery/vending/autodrobe/all_access, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"ltK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"lva" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"lwN" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"lzX" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"lAB" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/science/circuit) +"lAH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"lBy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/tank/internals/plasma, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/supermatter) +"lBz" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/door/window/northleft{ + name = "Brig Operations"; + req_one_access_txt = "4; 1" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"lCi" = ( +/obj/docking_port/stationary/public_mining_dock{ + dir = 8 + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"lCo" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"lGV" = ( +/obj/machinery/button/door{ + id = "maintdiy"; + name = "Shutters Control Button"; + pixel_x = -6; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"lHe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/obj/item/wrench, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"lHk" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "External Gas to Loop" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"lIY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"lJC" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Escape Pod Three" + }, +/turf/open/floor/plating, +/area/security/main) +"lLa" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"lMg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"lNH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"lPl" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/quartermaster/miningdock) +"lPr" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "applebush" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"lQG" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/science/circuit) +"lRb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/security/range) +"lSa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"lUS" = ( +/obj/structure/table/wood/fancy/black, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"lZl" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/coin/gold, +/obj/item/coin/gold, +/obj/item/coin/gold, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"lZn" = ( +/obj/machinery/door/airlock/security/glass{ + id_tag = "innerbrig"; + name = "Brig Infirmary"; + req_access_txt = "2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"lZs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore) +"lZK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/crew_quarters/fitness/pool) +"mbP" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"mbU" = ( +/obj/machinery/vr_sleeper{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/crew_quarters/fitness) +"mcp" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/security/range) +"mdG" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"meb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/bed, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"mgF" = ( +/obj/structure/bed, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"mjr" = ( +/obj/structure/reagent_dispensers/keg/milk, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"mkv" = ( +/obj/machinery/camera{ + c_tag = "Gravity Generator Room"; + dir = 8 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"mkO" = ( +/obj/machinery/door/airlock{ + name = "Shower Room" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/toilet) +"mkU" = ( +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/security/processing) +"mml" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"mnC" = ( +/obj/structure/target_stake, +/obj/item/target/syndicate, +/turf/open/floor/plating, +/area/security/range) +"mos" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_x = -27; + pixel_y = -27; + prison_radio = 1 + }, +/obj/machinery/flasher{ + id = "Cell 3"; + pixel_x = -24; + pixel_y = -36 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/bed, +/obj/item/bedsheet/yellow, +/turf/open/floor/plasteel, +/area/security/brig) +"moD" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/bluecherrycupcake{ + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"mps" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"mpI" = ( +/obj/structure/table/wood, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"mqh" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/engine, +/area/engine/engineering) +"mqZ" = ( +/obj/structure/reagent_dispensers/keg/aphro/strong, +/obj/item/reagent_containers/glass/beaker, +/turf/open/floor/plating, +/area/maintenance/bar) +"mrR" = ( +/obj/effect/spawner/lootdrop/keg, +/turf/open/floor/wood, +/area/maintenance/bar) +"msM" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"mvt" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"mxn" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod Three" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/security/main) +"myh" = ( +/obj/structure/musician/piano, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"mzB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/window, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"mAH" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"mDB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating, +/area/engine/supermatter) +"mGw" = ( +/obj/machinery/door/airlock/security{ + name = "Labor Shuttle"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/security/range) +"mHl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"mHU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/light_construct{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"mIZ" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/security/prison) +"mJo" = ( +/obj/structure/door_assembly/door_assembly_mai, +/obj/item/electronics/airlock, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"mJG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"mKq" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"mNi" = ( +/obj/machinery/light_switch{ + pixel_x = -20 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"mNW" = ( +/obj/structure/sign/poster/official/fruit_bowl{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"mOB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"mPk" = ( +/obj/structure/bed, +/obj/machinery/button/door{ + id = "Dorm5"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_y = -25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"mPr" = ( +/obj/structure/rack, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/effect/decal/cleanable/cobweb, +/obj/item/clothing/under/color/grey, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"mPE" = ( +/obj/machinery/chem_dispenser/drinks, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/bar) +"mQS" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"mRe" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"mRQ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"mTG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"mZO" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"naN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"nbT" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"nbY" = ( +/obj/item/melee/baton/cattleprod, +/obj/item/stock_parts/cell/high, +/obj/item/electropack, +/obj/structure/closet/secure_closet{ + name = "Persuasion Storage"; + req_access = "list(2)" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"ncF" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ndq" = ( +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"nez" = ( +/obj/structure/table/wood, +/obj/item/instrument/piano_synth, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"nfm" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/wood, +/area/maintenance/bar) +"nfw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"ngs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"ngU" = ( +/obj/structure/rack, +/obj/item/storage/firstaid, +/obj/item/clothing/glasses/hud/health, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore) +"ngV" = ( +/obj/structure/table/wood, +/obj/item/instrument/guitar, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"nhY" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"nkP" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"nnp" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fore) +"noy" = ( +/obj/structure/sign/poster/contraband/smoke{ + desc = "This poster reminds us all that the Detective is a parasite. Year after year, they must get replacement lungs because of their addiction. "; + pixel_y = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"noF" = ( +/obj/machinery/door/airlock{ + name = "Instrument Storage" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"nss" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/door/window/northright{ + name = "Brig Operations"; + req_one_access_txt = "4; 1" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"nsA" = ( +/turf/closed/wall, +/area/crew_quarters/abandoned_gambling_den) +"nuw" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"nxv" = ( +/obj/machinery/power/apc{ + areastring = "/area/construction"; + name = "Construction Area APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/construction) +"nyb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"nBI" = ( +/obj/item/cigbutt/cigarbutt, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"nEj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/security/processing) +"nEI" = ( +/obj/structure/closet/emcloset/anchored, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"nGf" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"nGt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"nLu" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"nLw" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/window{ + dir = 1 + }, +/obj/structure/window{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"nQi" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"nRl" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "engsm"; + name = "Radiation Shutters Control"; + pixel_y = -24; + req_access_txt = "10" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/engine/engineering) +"nRG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"nSt" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"nTG" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"nUV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"nVR" = ( +/obj/docking_port/stationary{ + dir = 4; + dwidth = 1; + height = 4; + name = "escape pod loader"; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"nYe" = ( +/obj/structure/safe, +/obj/item/clothing/head/bearpelt, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, +/obj/effect/turf_decal/bot_white/left, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/gun/ballistic/revolver/nagant, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"nZE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"nZL" = ( +/obj/machinery/computer/arcade/minesweeper, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"oax" = ( +/obj/structure/table/wood/fancy, +/obj/machinery/light, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 20 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + dir = 1; + pixel_x = 3; + pixel_y = 20 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"oby" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 20 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"oce" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"ocv" = ( +/obj/structure/table, +/obj/item/clothing/gloves/boxing/yellow, +/obj/item/clothing/gloves/boxing/green, +/obj/item/clothing/gloves/boxing/blue, +/obj/item/clothing/gloves/boxing/blue, +/obj/item/clothing/gloves/boxing, +/obj/item/clothing/gloves/boxing, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"odx" = ( +/obj/machinery/vending/kink, +/turf/open/floor/plating, +/area/maintenance/bar) +"ofU" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"ohq" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"okG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"okK" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_x = -27; + pixel_y = -27; + prison_radio = 1 + }, +/obj/machinery/flasher{ + id = "Cell 1"; + pixel_x = -24; + pixel_y = -36 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/bed, +/obj/item/bedsheet/green, +/turf/open/floor/plasteel, +/area/security/brig) +"old" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/sign/departments/security{ + pixel_x = -32; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"olr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"omX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/security/prison) +"omY" = ( +/obj/item/flashlight/lamp/green{ + pixel_x = -2; + pixel_y = 15 + }, +/obj/structure/dresser{ + desc = "There's plenty of clothes here to change into! It has a surprising amount of variety, too."; + name = "Dresser"; + pixel_y = 7 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"oqj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"oqO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"osB" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/engine/engineering) +"ouQ" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 6 + }, +/obj/item/pen/fountain, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"ovv" = ( +/obj/structure/table, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/recharger, +/obj/item/gun/energy/laser/practice, +/obj/item/gun/energy/laser/practice, +/turf/open/floor/plasteel, +/area/security/range) +"owT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/geiger_counter, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/suit/radiation, +/obj/item/clothing/head/radiation, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"oxl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"oxm" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/brflowers, +/obj/effect/spawner/structure/window, +/turf/open/floor/grass, +/area/crew_quarters/bar) +"oyl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/door/window/eastleft{ + name = "Blue Corner" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"oyz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"oyX" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Air In" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"oAb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/bar) +"oAB" = ( +/obj/structure/fireplace{ + pixel_y = -6 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"oDb" = ( +/obj/effect/landmark/loneopspawn, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"oDm" = ( +/obj/machinery/gulag_teleporter, +/turf/open/floor/plasteel, +/area/security/prison) +"oDN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"oEe" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"oEZ" = ( +/obj/effect/spawner/lootdrop/keg, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"oHB" = ( +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) +"oHU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"oIJ" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"oIW" = ( +/obj/structure/toilet/secret/low_loot{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"oKh" = ( +/obj/structure/chair/wood/normal{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"oLl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"oNz" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"oNQ" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/supermatter) +"oRG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"oSl" = ( +/obj/machinery/door/airlock/security{ + name = "Firing Range"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/security/range) +"oTW" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/theatre) +"oUh" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"oVo" = ( +/obj/structure/pool/ladder, +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"oXJ" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"oYj" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/camera{ + c_tag = "Engineering Supermatter Fore"; + dir = 1; + network = list("ss13","engine"); + pixel_x = 23 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/engine/engineering) +"oYS" = ( +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/machinery/power/rad_collector/anchored, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"oZl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/wardrobe/pjs, +/obj/item/clothing/under/costume/maid, +/obj/item/clothing/under/costume/maid, +/obj/item/clothing/under/rank/civilian/janitor/maid, +/obj/item/clothing/under/rank/civilian/janitor/maid, +/obj/item/clothing/accessory/maidapron, +/obj/item/clothing/accessory/maidapron, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"oZv" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"pem" = ( +/obj/machinery/button/door{ + desc = "Bolts the doors to the Private Study."; + id = "PrivateStudy"; + name = "Private Study Lock"; + pixel_x = 25; + pixel_y = 25; + req_access_txt = ""; + req_one_access_txt = "28;63" + }, +/turf/open/floor/wood, +/area/library) +"peI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"pgf" = ( +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"pgn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/security/range) +"pjg" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore) +"pkF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"plC" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"plS" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 1"; + name = "Cell 1" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"poc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"pou" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"pqe" = ( +/obj/structure/chair/sofa, +/obj/structure/window{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"pqs" = ( +/obj/machinery/vending/clothing, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"psk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge/meeting_room) +"pst" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/vault, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"puh" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light/small, +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/crew_quarters/fitness) +"pzk" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"pAK" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 3"; + name = "Cell 3" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"pBd" = ( +/turf/open/floor/engine, +/area/engine/supermatter) +"pBp" = ( +/obj/effect/landmark/event_spawn, +/turf/closed/wall, +/area/crew_quarters/fitness) +"pDe" = ( +/obj/machinery/door/window/southright{ + name = "Target Storage" + }, +/obj/item/target/alien, +/obj/item/target/alien, +/obj/item/target/syndicate, +/turf/open/floor/plating, +/area/security/range) +"pHl" = ( +/obj/structure/table, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/storage/box/syringes, +/obj/item/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 7; + pixel_y = -3 + }, +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_x = 8; + pixel_y = -3 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = 6; + pixel_y = -3 + }, +/obj/item/radio/intercom{ + frequency = 1485; + name = "Station Intercom (Medbay)"; + pixel_x = 30 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"pHH" = ( +/obj/machinery/door/airlock/external{ + name = "Mining Dock Airlock"; + req_access_txt = "48"; + shuttledocked = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"pHO" = ( +/obj/effect/turf_decal/tile/blue, +/obj/structure/sign/poster/contraband/fun_police{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"pIf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/theatre) +"pJR" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/wood, +/area/library) +"pLn" = ( +/obj/machinery/conveyor/inverted{ + dir = 5; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"pPi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"pPs" = ( +/obj/structure/reflector/single/anchored{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"pPv" = ( +/obj/structure/sign/warning/radiation, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"pPI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"pQp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"pQr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"pQN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"pRg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall, +/area/maintenance/aft) +"pRs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"pRx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating, +/area/engine/supermatter) +"pRW" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"pSn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/meter, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"pUy" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"qaY" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"qcm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"qeb" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/abandoned_gambling_den"; + name = "Abandoned Gambling Den APC"; + pixel_y = -24 + }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"qeA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Pool" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"qeF" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"qeQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"qfk" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/window, +/obj/structure/window{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"qfD" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + desc = "Privacy shutters for the Private Study. Stops people spying in on your game."; + id = "PrivateStudy1"; + name = "Private Study Privacy Shutters" + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/wood, +/area/library) +"qiK" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"qje" = ( +/obj/structure/sign/mining{ + pixel_y = 7 + }, +/turf/closed/wall, +/area/quartermaster/miningdock) +"qmn" = ( +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/security/prison) +"qmG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"qqs" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink{ + dir = 1; + pixel_y = 25 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"qus" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/obj/item/reagent_containers/food/snacks/cheesynachos{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"qyj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"qzA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"qBi" = ( +/obj/structure/lattice, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/captain) +"qBq" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/camera{ + c_tag = "Supermatter Chamber"; + network = list("engine"); + pixel_x = 23 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"qGd" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Gas to Cooling Loop" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"qIw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/cryopod) +"qLR" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink{ + dir = 1; + pixel_y = 25 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"qOc" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/camera{ + c_tag = "VR Sleepers"; + dir = 1 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/crew_quarters/fitness) +"qOB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"qTA" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"qTG" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"qTV" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"qVP" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"qWV" = ( +/obj/machinery/pool/filter{ + pixel_y = 24 + }, +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"qXg" = ( +/obj/structure/chair/sofa/left, +/turf/open/floor/plasteel, +/area/security/prison) +"qXZ" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"rca" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/structure/closet/secure_closet/atmospherics, +/obj/item/cartridge/atmos, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rcD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/circuit) +"rcI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 1"; + name = "Cell 1 Locker" + }, +/obj/item/radio/headset{ + desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; + name = "prisoner headset"; + prison_radio = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"rdG" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"reA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/vending/kink, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"rfW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"rgx" = ( +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/obj/machinery/power/rad_collector/anchored, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"rhX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/processing) +"rjH" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"rjQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"rmN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/chair/comfy/brown, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"rmX" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/beer, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"rnt" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"roP" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"rqf" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"rqk" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"rqE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"rqW" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/dresser, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/theatre"; + dir = 8; + name = "Theatre APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/theatre) +"rrM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/wardrobe/black, +/obj/item/clothing/under/dress/skirt, +/obj/item/clothing/head/beret/black, +/obj/item/clothing/head/beret/black, +/obj/item/clothing/under/custom/trendy_fit, +/obj/item/clothing/under/custom/trendy_fit, +/obj/item/clothing/under/dress/sundress, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"rtl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/camera{ + c_tag = "Bar Backroom" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"rtC" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/fore) +"ruo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"rvr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"rvC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"rvS" = ( +/obj/structure/chair/comfy/brown{ + color = "#66b266"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ryr" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"rAR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"rBq" = ( +/obj/item/clothing/head/kitty, +/obj/item/clothing/under/costume/maid, +/obj/item/clothing/mask/muzzle, +/turf/open/floor/plating, +/area/maintenance/bar) +"rBE" = ( +/obj/structure/ladder, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"rBP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"rCl" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + 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/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"rEB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/light, +/obj/machinery/meter, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/engine/engineering) +"rEJ" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"rGq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"rGC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"rIA" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"rJv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/brig) +"rJw" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/maintenance/port/fore) +"rKP" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/construction) +"rMN" = ( +/obj/structure/bed, +/obj/item/tank/internals/anesthetic, +/obj/item/clothing/mask/breath, +/obj/effect/decal/cleanable/semen, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/plating, +/area/maintenance/bar) +"rNc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/computer/security/telescreen/toxins{ + dir = 1; + network = list("toxins"); + pixel_y = -28 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"rOg" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber"; + req_access_txt = "10" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"rPU" = ( +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/theatre) +"rQJ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fore) +"rQX" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/quartermaster/miningdock) +"rTu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/command{ + name = "Command Access To Vault"; + req_access = "19" + }, +/turf/open/floor/plasteel/dark, +/area/bridge/meeting_room) +"rTD" = ( +/obj/machinery/vending/snack/random, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"rUG" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"rXl" = ( +/obj/structure/chair/office/light, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"saK" = ( +/obj/structure/closet/crate, +/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/item/gun/energy/laser/practice, +/obj/item/gun/energy/laser/practice, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"saU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/engine/engine_smes) +"saX" = ( +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/grass, +/area/security/prison) +"sci" = ( +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/fitness) +"seP" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/security/brig) +"sfs" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore) +"slk" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"snF" = ( +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/obj/machinery/power/rad_collector/anchored, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"spl" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/pipe_dispenser, +/obj/item/flashlight, +/obj/item/storage/toolbox/mechanical, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"spz" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"sqg" = ( +/obj/structure/table/wood, +/obj/item/clothing/under/misc/pj/red, +/obj/item/clothing/shoes/sneakers/white, +/turf/open/floor/plating, +/area/maintenance/fore) +"sqp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/command{ + name = "Captain's Vault Access"; + req_access_txt = "20" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"sra" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/engine/engineering) +"srG" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"ssh" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ssB" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"sth" = ( +/obj/structure/table/glass, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"str" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/crew_quarters/fitness/pool) +"stF" = ( +/obj/structure/closet/secure_closet/personal, +/obj/item/toy/poolnoodle/yellow, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"svN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"swf" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"sxs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table, +/obj/item/storage/box/beakers{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"syJ" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"szG" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"sAk" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"sAM" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/bar) +"sAQ" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"sCS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"sEi" = ( +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/crew_quarters/fitness) +"sEt" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"sEM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"sFW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/sign/departments/restroom{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"sHx" = ( +/obj/structure/table, +/obj/item/book/manual/hydroponics_pod_people{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/paper/guides/jobs/hydroponics{ + pixel_x = -5; + pixel_y = 3 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"sJx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"sJI" = ( +/obj/structure/table/wood/fancy, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 9 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + dir = 1; + pixel_x = 3; + pixel_y = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"sLa" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"sLj" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"sLv" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"sNK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"sOs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance/abandoned, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"sOA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"sPm" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Engine Coolant Bypass" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/engine/engineering) +"sPT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"sPY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/engine_smes) +"sRH" = ( +/obj/machinery/autolathe/secure{ + name = "public autolathe" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"sRT" = ( +/obj/machinery/vending/cola/random, +/turf/open/floor/wood, +/area/maintenance/bar) +"sSW" = ( +/obj/structure/chair/office/light, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"sTo" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"sTI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"sUh" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/closed/wall, +/area/engine/atmos) +"sVb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"sWR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/computer/bounty{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"sXl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"sXy" = ( +/obj/machinery/door/airlock/external{ + name = "Security External Airlock"; + req_access_txt = "63" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"sXA" = ( +/obj/machinery/vending/boozeomat/all_access, +/turf/closed/wall, +/area/maintenance/bar) +"sXV" = ( +/turf/closed/wall/r_wall, +/area/security/range) +"sYC" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/engine/engineering) +"sYR" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"sZN" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/engine/engineering) +"tal" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/hallway/secondary/service) +"taY" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"tcF" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"tgH" = ( +/obj/structure/filingcabinet/employment, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"thz" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/engine/engineering) +"tif" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"tkq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"tkB" = ( +/obj/structure/sign/poster/official/help_others{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"tkU" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"tlu" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"tmO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/security/range) +"tqg" = ( +/obj/machinery/cryopod{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/carpet, +/area/crew_quarters/cryopod) +"trb" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ttL" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"tur" = ( +/obj/item/restraints/handcuffs/fake, +/turf/open/floor/plating, +/area/maintenance/bar) +"tvi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"twn" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"txm" = ( +/obj/structure/table/wood/fancy/royalblue, +/obj/item/crowbar/red, +/turf/open/floor/plating, +/area/maintenance/port) +"tyX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"tzQ" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/soap, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/dorms) +"tAC" = ( +/obj/structure/closet/athletic_mixed, +/obj/item/toy/poolnoodle/red, +/obj/item/toy/poolnoodle/blue, +/obj/item/toy/poolnoodle/yellow, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"tAH" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"tAR" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"tCa" = ( +/obj/structure/table/wood, +/obj/item/instrument/guitar{ + pixel_x = -7 + }, +/obj/item/instrument/eguitar{ + pixel_x = 5 + }, +/obj/item/instrument/violin, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"tCd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + alpha = 255; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"tGG" = ( +/obj/structure/reflector/double/anchored{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"tHh" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"tIV" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"tJi" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/structure/closet/crate/wooden/toy, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/sign/poster/contraband/clown{ + pixel_y = -32 + }, +/obj/item/megaphone/clown, +/turf/open/floor/plasteel, +/area/crew_quarters/theatre) +"tJK" = ( +/obj/machinery/door/airlock/engineering{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"tJS" = ( +/obj/effect/spawner/lootdrop/keg, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"tKb" = ( +/obj/item/radio/intercom{ + pixel_y = 20 + }, +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"tKk" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/warning/fire{ + desc = "A sign that states the labeled room's number."; + icon_state = "roomnum"; + name = "Room Number 1"; + pixel_x = -30; + pixel_y = -7 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"tMj" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"tMl" = ( +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"tNF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"tOn" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"tOq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"tPe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"tPT" = ( +/obj/machinery/chem_dispenser/drinks/beer, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/bar) +"tQY" = ( +/obj/machinery/atmospherics/components/binary/valve/digital/on{ + dir = 4; + name = "Output Release" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"tRe" = ( +/obj/machinery/chem_master, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"tRi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/engine/engineering) +"tRB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"tRF" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"tWj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"tXL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"tZe" = ( +/obj/effect/turf_decal/bot, +/obj/structure/sign/poster/official/pda_ad{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"uaw" = ( +/obj/machinery/power/apc{ + areastring = "/area/storage/art"; + dir = 1; + name = "Maint bar"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"ubj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/door/window/westright{ + name = "Red Corner" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"ucq" = ( +/obj/structure/sign/poster/contraband/red_rum{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"uei" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"ufD" = ( +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/crew_quarters/fitness) +"uge" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Gas to Mix" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ugu" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"uhm" = ( +/obj/machinery/door/airlock{ + name = "Recharging Station" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"ujv" = ( +/obj/structure/sign/departments/restroom, +/turf/closed/wall, +/area/crew_quarters/toilet) +"ujF" = ( +/obj/machinery/cryopod{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/cryopod) +"ujS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"ulB" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ulM" = ( +/obj/structure/closet/secure_closet/personal, +/obj/item/toy/poolnoodle/red, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"uml" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"unA" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"unR" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 8 + }, +/area/crew_quarters/fitness/pool) +"uoB" = ( +/obj/structure/table/reinforced, +/obj/item/multitool, +/obj/item/screwdriver, +/obj/machinery/camera{ + c_tag = "Circuitry Lab North"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"uoG" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/detectives_office"; + dir = 4; + name = "Detective's Office APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"uqX" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"usE" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/rack, +/turf/open/floor/plating, +/area/maintenance/fore) +"usO" = ( +/obj/machinery/vending/snack/random, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"utp" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"uua" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"uut" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/engine, +/area/engine/engineering) +"uuG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"uvd" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"uve" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/coin/silver, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"uvZ" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/wood, +/area/maintenance/bar) +"uxY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/junction, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"uzi" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"uzs" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 4 + }, +/area/crew_quarters/fitness/pool) +"uAH" = ( +/turf/open/floor/plasteel/yellowsiding/corner{ + dir = 8 + }, +/area/crew_quarters/fitness/pool) +"uBa" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/soda_cans/starkist{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb{ + pixel_x = -3; + pixel_y = 2 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"uBP" = ( +/obj/structure/reflector/box/anchored{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"uCo" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"uCU" = ( +/obj/machinery/door/airlock/security{ + name = "Interrogation"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"uDO" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"uEx" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PoolShut"; + name = "Pool Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) +"uEI" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"uFp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/poster/official/cohiba_robusto_ad{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"uFZ" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/light{ + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"uGI" = ( +/turf/open/floor/grass, +/area/security/prison) +"uHp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/main) +"uIO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"uJx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"uNu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"uOJ" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/vault, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"uPT" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"uQS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1; + pixel_x = 5 + }, +/obj/machinery/light/small, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"uRd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"uRx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"uRS" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/theatre) +"uSC" = ( +/obj/machinery/pool/drain, +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"uSL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"uTe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"uUi" = ( +/obj/effect/decal/cleanable/vomit, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore) +"uVS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"uXt" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"vaW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"vbi" = ( +/obj/structure/table, +/obj/item/instrument/guitar{ + pixel_x = -7 + }, +/obj/item/instrument/eguitar{ + pixel_x = 5 + }, +/obj/item/instrument/violin, +/obj/item/instrument/trombone, +/obj/item/instrument/saxophone, +/obj/item/instrument/piano_synth, +/obj/item/instrument/recorder, +/obj/item/instrument/accordion, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"vbD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "EVA Storage"; + req_access_txt = "18" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"vcN" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"vda" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/range) +"vdu" = ( +/obj/structure/table/wood, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"veS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/fitness/pool) +"vfX" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"vgJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/fore"; + dir = 1; + name = "Fore Maintenance APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"vhb" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/window{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/locker) +"viD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"viF" = ( +/obj/structure/table/wood, +/obj/item/instrument/trumpet, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"vjm" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/rag, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"vmQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "holoprivacy"; + name = "Holodeck Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"vnu" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"vnI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/warehouse"; + dir = 4; + name = "Cargo Warehouse APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"voa" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"vob" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/supermatter) +"voW" = ( +/obj/structure/pool/Lboard, +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"vpY" = ( +/obj/structure/closet/lasertag/blue, +/obj/item/clothing/under/misc/pj/blue, +/obj/item/clothing/under/misc/pj/blue, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"vqP" = ( +/obj/structure/bed/dogbed{ + desc = "A comfy-looking pet bed. You can even strap your pet in, in case the gravity turns off."; + name = "pet bed" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore) +"vsM" = ( +/obj/machinery/power/apc/auto_name/south, +/obj/structure/cable, +/turf/open/floor/carpet, +/area/crew_quarters/cryopod) +"vsT" = ( +/obj/structure/closet/crate, +/obj/item/book/manual/wiki/telescience, +/obj/item/book/manual/wiki/engineering_guide, +/obj/item/book/manual/wiki/engineering_construction, +/obj/item/book/manual/wiki/atmospherics, +/obj/item/book/manual/wiki/detective, +/obj/item/book/manual/wiki/tcomms, +/obj/item/book/manual/wiki/engineering_singulo_tesla, +/obj/item/book/manual/wiki/experimentor, +/obj/item/book/manual/wiki/research_and_development, +/obj/item/book/manual/wiki/robotics_cyborgs, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/book/manual/wiki/medicine, +/obj/item/book/manual/wiki/medical_cloning, +/obj/item/book/manual/wiki/infections, +/obj/item/book/manual/ripley_build_and_repair, +/obj/item/book/manual/hydroponics_pod_people, +/obj/item/book/manual/wiki/toxins, +/obj/item/book/manual/wiki/grenades, +/obj/item/book{ + desc = "An undeniably handy book."; + icon_state = "bookknock"; + name = "A Simpleton's Guide to Safe-cracking with Stethoscopes" + }, +/turf/open/floor/wood, +/area/library) +"vwZ" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"vxh" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"vxV" = ( +/obj/structure/reflector/single/anchored{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"vxX" = ( +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/processing) +"vyp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/crew_quarters/dorms) +"vyK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/brig) +"vzp" = ( +/obj/structure/table/reinforced, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/item/stock_parts/cell/high, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"vzO" = ( +/obj/structure/chair/wood/normal{ + dir = 1 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"vAi" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"vAl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/camera{ + c_tag = "Pool East"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"vBa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge/meeting_room) +"vCa" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"vCb" = ( +/obj/machinery/rnd/production/techfab/department/service, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"vCn" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"vCt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"vCy" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/starboard/fore"; + dir = 1; + name = "Starboard Bow Maintenance APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"vEc" = ( +/obj/machinery/power/supermatter_crystal/engine, +/turf/open/floor/engine, +/area/engine/supermatter) +"vEi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"vEp" = ( +/obj/structure/sign/poster/contraband/lizard{ + pixel_x = -32 + }, +/obj/structure/sign/poster/contraband/lizard{ + pixel_x = -32 + }, +/obj/structure/sign/poster/contraband/lizard{ + pixel_x = -32 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"vFr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"vGn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prisoner Processing"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"vHj" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Cryogenics " + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/cryopod) +"vHx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"vHz" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"vHT" = ( +/obj/machinery/door/firedoor, +/obj/structure/sign/departments/evac{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"vHY" = ( +/turf/open/floor/plating, +/area/science/mixing) +"vIi" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/security/range"; + dir = 4; + name = "Firing Range APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/security/range) +"vIo" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Brig East"; + dir = 8 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"vJu" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"vLo" = ( +/obj/structure/closet/secure_closet/chemical, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fore) +"vLM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"vOF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"vOU" = ( +/obj/structure/sign/warning/securearea, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"vPs" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"vPE" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"vTP" = ( +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/security/processing) +"vUs" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Gas" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"vZA" = ( +/obj/structure/cable, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"vZR" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/wood, +/area/library) +"wag" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"wbd" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"wbE" = ( +/obj/effect/turf_decal/tile/blue{ + alpha = 255 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + alpha = 255; + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"wcB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"wcR" = ( +/turf/open/floor/plasteel/yellowsiding/corner, +/area/crew_quarters/fitness/pool) +"wdr" = ( +/obj/machinery/door/window/southleft{ + name = "Target Storage" + }, +/obj/item/target/clown, +/obj/item/target/clown, +/obj/item/target, +/obj/item/target, +/turf/open/floor/plating, +/area/security/range) +"wfR" = ( +/obj/item/electropack/shockcollar, +/obj/item/assembly/signaler, +/turf/open/floor/plating, +/area/maintenance/bar) +"wgZ" = ( +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/engine/engineering) +"wig" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"wje" = ( +/obj/structure/rack, +/obj/item/instrument/banjo, +/obj/item/instrument/harmonica, +/obj/item/instrument/accordion, +/obj/item/instrument/recorder, +/turf/open/floor/plating, +/area/maintenance/fore) +"wjz" = ( +/obj/structure/table, +/obj/item/pipe_dispenser, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"wkN" = ( +/turf/closed/wall, +/area/science/circuit) +"wlf" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"wlI" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"woR" = ( +/obj/machinery/cryopod{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/cryopod) +"wph" = ( +/obj/docking_port/stationary{ + area_type = /area/construction/mining/aux_base; + dheight = 4; + dir = 8; + dwidth = 4; + height = 9; + id = "aux_base_zone"; + name = "aux base zone"; + roundstart_template = /datum/map_template/shuttle/aux_base/default; + width = 9 + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"wql" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"wqF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"wrp" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"wun" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"wvX" = ( +/obj/structure/table/reinforced, +/obj/machinery/light, +/obj/item/stack/sheet/metal/ten, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"wxT" = ( +/obj/structure/chair/sofa/left, +/obj/structure/window{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"wzX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"wAh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, +/area/engine/engineering) +"wAN" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"wBd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/hallway/secondary/service) +"wHk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"wHz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"wHT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"wIY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"wKe" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "maintdiy"; + name = "Security Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) +"wKZ" = ( +/turf/open/floor/engine, +/area/engine/engineering) +"wLY" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"wQg" = ( +/obj/structure/pool/ladder{ + dir = 2; + pixel_y = 24 + }, +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"wTf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"wUg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"wUr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"wUY" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) +"wWu" = ( +/turf/open/openspace/icemoon, +/area/icemoon/surface/outdoors) +"wWT" = ( +/obj/effect/landmark/start/roboticist, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"wWW" = ( +/obj/structure/closet/secure_closet/personal, +/obj/item/toy/poolnoodle/yellow, +/obj/machinery/button/door{ + id = "PoolShut"; + name = "Pool Shutters"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"wXl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/camera{ + c_tag = "Pool West"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"wYc" = ( +/obj/machinery/vr_sleeper{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"wZI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"xal" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/brig) +"xaB" = ( +/obj/structure/closet/athletic_mixed, +/obj/item/toy/poolnoodle/red, +/obj/item/toy/poolnoodle/blue, +/obj/item/toy/poolnoodle/yellow, +/obj/machinery/button/door{ + id = "PoolShut"; + name = "Pool Shutters"; + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"xaS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"xbn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/table, +/obj/item/coin/gold, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"xfY" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"xgk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"xgC" = ( +/obj/machinery/power/apc{ + areastring = "/area/engine/gravity_generator"; + dir = 8; + name = "Gravity Generator APC"; + pixel_x = -25; + pixel_y = 1 + }, +/obj/structure/table, +/obj/item/paper/guides/jobs/engi/gravity_gen, +/obj/item/pen/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"xgF" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"xhS" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"xhV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/construction) +"xib" = ( +/obj/machinery/door/window/westleft{ + base_state = "right"; + icon_state = "right"; + name = "Unisex Showers" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"xiw" = ( +/obj/machinery/door/airlock{ + name = "Service Hall"; + req_one_access_txt = "25;26;35;28" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/hallway/secondary/service) +"xkd" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"xmo" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"xmS" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/entry) +"xnm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"xol" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/obj/machinery/meter, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"xqG" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/item/reagent_containers/food/drinks/soda_cans/starkist{ + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"xrc" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"xrN" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"xtP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"xuz" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"xxi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"xxp" = ( +/turf/open/floor/plating, +/area/security/range) +"xzv" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"xAk" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"xAv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"xBk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet) +"xBw" = ( +/obj/structure/closet/wardrobe/cargotech, +/obj/item/radio/headset/headset_cargo, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"xDM" = ( +/obj/machinery/camera{ + c_tag = "Locker Room South"; + dir = 8 + }, +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"xEu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"xEB" = ( +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/nuke_storage"; + dir = 1; + name = "Vault APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/circuit, +/area/ai_monitored/nuke_storage) +"xEC" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"xEE" = ( +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/machinery/vending/wardrobe/curator_wardrobe, +/turf/open/floor/carpet, +/area/library) +"xGQ" = ( +/obj/structure/sign/plaques/golden{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"xIa" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"xJV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"xJW" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Security Maintenance"; + req_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/main) +"xJY" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"xOx" = ( +/obj/structure/chair/comfy/brown{ + color = "#596479"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"xPk" = ( +/obj/structure/bed, +/obj/machinery/button/door{ + id = "Dorm6"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_y = -25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"xPY" = ( +/obj/structure/table/wood, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/instrument/trombone, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"xSW" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"xTe" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"xTy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"xUe" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/prison) +"xUL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light, +/obj/machinery/camera/motion{ + c_tag = "Vault"; + dir = 1; + network = list("vault") + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"xUX" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/rack, +/obj/item/storage/box/zipties{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/storage/box/zipties{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"xWq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/security/processing) +"xXi" = ( +/obj/machinery/vending/clothing, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"xZD" = ( +/obj/structure/closet/lasertag/red, +/obj/item/clothing/under/misc/pj/red, +/obj/item/clothing/under/misc/pj/red, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"xZL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"ycd" = ( +/obj/structure/toilet/secret/low_loot{ + dir = 4 + }, +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink{ + dir = 1; + pixel_y = 25 + }, +/obj/machinery/button/door{ + id = "LockerShitter2"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 14; + pixel_y = 38; + specialfunctions = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet/locker) +"ycu" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"ycY" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#d1dfff" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"yds" = ( +/obj/effect/decal/cleanable/vomit, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ydD" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/suit_storage_unit/rd, +/turf/open/floor/plasteel, +/area/science/mixing) +"ydM" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"yhx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/security/brig) +"yhz" = ( +/obj/structure/table, +/obj/item/folder/blue, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"ykN" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) + +(1,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(2,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(3,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(4,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(5,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(6,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(7,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(8,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(9,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(10,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(11,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(12,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(13,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(14,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(15,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(16,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(17,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(18,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(19,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(20,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(21,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(22,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(23,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(24,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(25,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(26,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(27,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(28,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(29,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aud +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +auC +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(30,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(31,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(32,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(33,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +crk +aBM +aBM +aBM +aBM +aBM +crk +auj +crk +aBM +aBM +aBM +crk +crk +crk +crk +crk +aBM +aBM +aBM +crk +auj +crk +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(34,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +crk +crk +aBM +crk +crk +aBM +crk +crk +aBM +arB +asE +cyb +asE +arB +aBM +aBM +crk +crk +crk +crk +crk +aBM +aBM +arB +asE +cyb +asE +arB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(35,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +apJ +apJ +apJ +apJ +apJ +apJ +apJ +apJ +apJ +apJ +apJ +auO +auP +cwT +aAC +aBM +aBM +crk +crk +crk +crk +crk +aBM +aBM +aAC +auO +auP +cxY +arB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(36,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +apJ +apN +apN +apN +apN +apN +apN +apN +apN +apN +apJ +avP +iEJ +asE +arB +aBM +crk +crk +crk +crk +crk +crk +crk +aBM +arB +asE +iEJ +avP +arB +aBM +aBM +aBM +aBM +aBM +arB +arB +arB +arB +aAC +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(37,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +crk +apJ +apN +apN +apN +apN +apN +apN +apN +apN +apN +apJ +fpI +ayk +awW +aAD +awW +crk +crk +crk +crk +crk +crk +crk +awW +awW +awW +aQG +aRX +arB +aBM +aBM +aBM +aBM +aBM +arB +awZ +ayk +awW +aAD +awW +crk +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(38,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +crk +apJ +apN +apN +apN +apN +apN +apN +apN +apN +apN +apJ +awZ +ayl +azy +auP +cIh +crk +crk +crk +crk +crk +crk +crk +azy +auP +cIh +ayl +aRY +awW +aBM +aBM +aBM +aBM +aBM +awW +awZ +ayl +beK +auP +cyt +avb +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(39,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +crk +apJ +apN +apN +apN +apN +apN +apN +apN +apN +apN +apJ +awZ +ayk +awW +awW +awW +crk +crk +crk +crk +crk +crk +crk +awW +awW +awW +awV +aRY +awW +aBM +aBM +aBM +aBM +aBM +awW +awZ +ayk +awW +awW +awW +crk +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(40,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +apJ +apN +apN +apN +apN +wph +apN +apN +apN +apN +apJ +awZ +cqr +azz +aAF +awW +crk +crk +crk +crk +crk +crk +crk +awW +aOf +azz +aPu +aRY +awW +aBM +aBM +aBM +aBM +aBM +awW +awZ +aym +azz +aAF +awW +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(41,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +crk +apJ +apN +apN +apN +apN +apN +apN +apN +apN +apN +apJ +awZ +aIK +ayl +aAE +awW +crk +crk +crk +crk +crk +crk +crk +awW +aOe +ayl +ayl +aRY +awW +aBM +aBM +aBM +aBM +aBM +awW +awZ +ayl +ayl +aAE +awW +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(42,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +crk +apJ +apN +apN +apN +apN +apN +apN +apN +apN +apN +apJ +awZ +aIK +ayl +aAH +awW +crk +crk +crk +crk +crk +crk +crk +awW +aOh +ayl +jHh +aRY +awW +aBM +aBM +aBM +aBM +aBM +awW +awZ +ayl +ayl +bgi +awW +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(43,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +crk +apJ +apN +apN +apN +apN +apN +apN +apN +apN +apN +apJ +awZ +cry +azA +aAG +awW +crk +crk +crk +crk +crk +crk +crk +awW +aOg +azA +aQH +aRY +awW +aBM +aBM +aBM +aBM +aBM +awW +awZ +ayn +azA +bgh +awW +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(44,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +crk +apJ +apN +apN +apN +apN +lCi +apN +apN +apN +apN +apJ +awZ +crz +awW +awW +awW +crk +crk +crk +crk +crk +crk +crk +awW +awW +awW +awV +aRY +awW +aBM +aBM +aBM +aBM +aBM +awW +awZ +ayk +awW +awW +awW +crk +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(45,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +apJ +apJ +apJ +ajZ +asF +atp +asF +asF +asF +asF +apJ +axh +aIK +azy +auP +cIh +crk +crk +crk +crk +crk +crk +crk +azy +auP +cIh +ayl +aRY +awW +aBM +crk +auS +crk +aBM +awW +awZ +ayl +beL +auP +cyu +crk +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(46,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +apJ +asH +atI +atI +arE +ayq +ayq +auc +avp +axI +ayp +awW +aAD +awW +crk +crk +crk +crk +crk +crk +crk +awW +awW +awW +aQG +aRX +arB +aBM +aWa +aXI +awW +aBM +arB +awY +ayk +awW +aAD +awW +crk +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(47,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +asF +asI +auQ +auQ +auQ +auQ +aCX +aub +aLu +axH +ayo +azB +awW +aBM +crk +crk +crk +auA +crk +crk +crk +aBM +awW +aPt +aPu +aRY +arB +awW +awW +auP +awW +awW +arB +awZ +aym +fOI +awW +crk +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(48,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +apJ +asJ +cTE +avQ +axc +aCT +atb +aIH +apJ +clB +aIK +azC +arB +arB +arB +awW +awW +awW +awW +awW +arB +arB +arB +aPv +ayl +aRZ +asE +aAF +awW +cyl +awW +baF +asE +bbb +ayl +beN +arB +crk +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(49,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +apJ +apJ +apJ +apJ +apJ +apJ +apJ +apJ +apJ +axG +aIK +aym +aAI +aBH +azz +azz +azz +azz +azz +azz +aLv +aBH +azz +aPu +ayl +ayl +aNh +aym +azz +ayl +azz +aPu +ayl +aIK +ayl +beM +aAC +crk +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(50,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +alU +atJ +amC +aKf +bEJ +axb +ayr +azD +aAJ +azD +aCp +aEz +aFG +aHu +ayl +ayl +ayl +aNb +ayl +ayl +ayl +ayl +aTr +aUM +ayl +ayl +aWc +baG +ayl +aIK +ayl +beM +arB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(51,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +alU +alU +alU +aCW +amC +asK +alU +alU +atO +alU +alU +aBI +aBI +aBI +aBI +aBI +aNh +aKj +aLw +aLw +aLw +aLw +aQI +aNh +czK +czK +czK +czK +aXX +czK +czK +bbc +beO +beO +beO +beO +beO +beO +beO +beO +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(52,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +oDb +ayF +ayF +ayF +ayF +aqJ +amC +gLH +ase +avq +aum +avq +avq +cwH +avq +aAj +aBK +aCL +aEG +aFI +aBI +aIM +aKk +aLy +aNd +aOj +aPx +aQJ +ayl +czK +aUO +aUy +aWm +aWf +vdu +czK +bhN +bcl +beQ +pLn +bhI +bjb +bkz +blS +bnv +wWu +wWu +wWu +wWu +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(53,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +alU +alU +alU +alU +asc +atn +aLt +aue +aue +aue +aue +aAe +aBJ +aCs +aEE +aFH +aGZ +aIJ +aJX +aLi +aMO +aNR +aOY +aQl +bcD +aTs +aUN +baH +aWi +aXY +baH +aTs +bbd +beO +beP +bgj +beO +bja +beO +bja +bja +wWu +wWu +wWu +wWu +wWu +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(54,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +alU +apL +aqK +alU +asc +atq +aon +amC +axe +ays +alU +auT +aBI +aCY +aEI +aFK +aHy +aIM +aKk +aLz +aNe +aNe +aLz +aQo +aSb +czK +aUQ +aUA +aWr +aXZ +aUQ +czK +bbe +beO +beS +bgj +bhJ +bjd +bkB +cAI +bja +wWu +wWu +wWu +wWu +wWu +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayB +ayB +ayB +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(55,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +crk +alU +alU +apM +aqL +alU +asc +atq +auX +avS +amC +amC +alU +auT +aBI +aDc +aEH +bxM +aHa +aIL +aJY +aLj +aMP +aMP +aPa +aQn +ayl +czK +aUO +aUO +aXL +aXZ +aUO +czK +bbe +beO +beR +bgj +bgj +bjc +cAF +cAF +bja +wWu +wWu +wWu +wWu +wWu +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ayF +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(56,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +aAM +ayB +ayB +ayF +ayF +ayF +ayF +ayF +ayF +alU +aoS +amC +aom +ank +asc +atq +auZ +bsU +axf +amC +alU +auT +aBI +aDf +aEK +aFM +aHy +ayl +aKk +aLA +xmS +aNf +aLA +aQD +aSd +czK +aUQ +aUW +aXL +aXZ +baJ +czK +bbe +beO +beU +bgk +bhL +bjc +cAF +blV +beO +wWu +wWu +wWu +wWu +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +chJ +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(57,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBD +ayF +ayF +ayF +ayF +ayF +ayF +ayF +anO +ayF +ayF +ayF +atl +ayF +ayB +ayF +ayF +ayF +ayF +ayF +ayF +alU +aoR +apO +aqM +arF +asc +atq +auY +amC +amC +ayt +alU +aAw +aBl +aCZ +aEJ +aFL +aBI +aIO +aKk +asE +asE +asE +asE +aQD +ayl +czK +aUl +aUR +aWs +aXZ +aUQ +czK +bbf +beT +beT +bdQ +beZ +bje +bkC +cAJ +beO +wWu +wWu +wWu +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayB +ayB +ayB +ayB +ayF +ayF +ayF +hrF +ayF +ayF +ayF +ayB +ayB +aAM +ayB +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(58,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBD +ayF +ads +adS +aeG +ayF +ads +adS +aeG +ayF +ads +adS +aeG +ayF +ayB +ayF +ayF +ayF +ayF +ayF +ayF +alU +aoT +amC +aqO +arG +asc +atq +ava +amC +axg +ayu +azF +azF +azF +azF +azF +azF +azF +aIQ +aKk +aLC +aNg +aOk +aPy +aRd +aRM +aTt +aUm +aUm +aWt +aYd +aZn +aTt +bbg +bdG +bdu +bdT +beO +bjf +beO +beO +beO +wWu +wWu +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ayF +ayF +ayF +ayF +ayF +ayF +hrF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(59,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBD +ayF +ads +adu +aeG +ayF +ads +adu +aeG +ayF +ads +adu +aeG +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +alU +alU +alU +alU +arG +ash +atq +alU +alU +alU +alU +azF +aAP +aAP +aAP +aEF +aFN +azF +aIP +aKl +aLB +aLB +aLB +aLB +aQK +aSe +czK +aUQ +aUQ +aXN +aUO +aUQ +czK +bcI +aPz +bdt +bdR +aSg +aYf +bkD +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +cca +cca +cca +cca +cca +ayF +csZ +ayF +cca +cca +cca +cca +cca +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(60,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBD +ayF +ads +adu +aeG +ayF +ads +adu +aeG +ayF +ads +adu +aeG +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ali +aoX +arI +asi +atr +atN +atN +atN +ayi +azq +aAK +aBv +aDa +aAQ +aAQ +azF +aIR +ayl +ayl +aNi +ayl +ayl +ayl +aSf +czK +czK +czK +czK +czK +czK +czK +aPz +aPz +bdB +aWv +aTu +bjg +bkD +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayB +ayF +ccc +ccX +ccX +ccX +ccX +vZA +crk +uDO +cjH +cjH +cjH +cjH +cnl +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(61,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ads +adu +aeG +ayF +ads +adu +aeG +ayF +ads +adu +aeG +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ali +amC +arH +atP +auV +auV +auV +axK +ayh +azi +aAx +aBm +aAQ +aAQ +aAQ +azF +azF +azF +aLD +aNh +aNh +aPz +aPz +aPz +aPz +aSg +aWj +aXP +aZr +baL +bbI +bcK +aPz +bdB +aWv +bfh +aPz +aPz +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayB +ayF +ccb +ccb +ccb +ccb +ccb +ayF +vPs +ayF +ccb +ccb +ccb +ccb +ccb +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(62,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayB +ayB +ayF +ayF +ads +adu +aeG +ayF +ads +adu +aeG +ayF +ads +adu +aeG +ayF +ayF +ayF +ajV +alR +alR +alR +alR +alU +alU +alU +aqP +arJ +alU +atQ +ats +atV +atO +asK +azF +aAT +aBw +aDg +aAQ +aAQ +aHz +aIS +aKn +aLF +aLF +aLF +aPz +aQL +aSg +aSg +aSg +aWl +aSg +aZs +baN +bbK +bcM +bdH +bdD +bea +bfq +bji +bkF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayB +ayF +ayF +ayF +ayF +ayF +ayF +ayF +hrF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aAM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(63,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ayF +ayF +ayF +ayF +csZ +ayF +ayF +ayF +csZ +ayF +ayF +ayF +csZ +ayF +ayF +ajV +ajV +ajV +alQ +amy +ang +alR +aoj +amC +apP +amC +arH +alU +ats +atS +ats +atO +asK +azF +aAS +aFP +aAQ +aAQ +aAQ +aAQ +aAQ +aKm +aLE +aNj +aLE +aPz +aPz +aPz +aTu +aUS +aWk +aWk +aWk +baM +bbJ +bcL +aWk +bdC +bdZ +bhO +bjh +bkE +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayB +ayF +cca +cca +cca +cca +cca +ayF +csZ +ayF +cca +cca +cca +cca +cca +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(64,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +abX +jIs +jIs +vZA +crk +uDO +jIs +vZA +crk +uDO +jIs +vZA +crk +uDO +jIs +ajW +akB +alh +alT +amA +ani +anI +aol +aol +aol +aol +arL +alU +atR +atQ +atV +atO +asK +azF +aAU +aBG +aAQ +aAQ +aAQ +aAQ +aAQ +aKn +aLE +aNl +aOm +aPB +aQM +aQM +aTv +aUT +aPz +aXQ +aXQ +aXQ +aXQ +aPz +aPz +epC +aPz +bhQ +bjj +bkF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayB +ayF +ccc +ccX +ccX +ccX +ccX +vZA +crk +uDO +cjH +cjH +cjH +cjH +cnl +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(65,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ayF +ayF +ayF +ayF +vPs +ayF +ayF +ayF +vPs +ayF +ayF +ayF +vPs +ayF +ayF +ajV +ajV +ajV +alS +amz +anh +anH +amC +aok +anJ +aFJ +arK +alU +alU +ali +alU +atO +asK +azF +aAP +aAP +aAP +aAQ +aFO +aHA +aIT +azF +aLG +aNk +aOl +aPA +aPA +aPA +aPA +aPA +aPA +aXQ +aZt +aXQ +ycd +aPz +omY +cMS +gQX +bhQ +bjj +bkF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayB +ayF +ccb +ccb +ccb +ccb +ccb +ayF +vPs +ayF +ccb +ccb +ccb +ccb +ccb +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(66,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +aAM +ayB +ayF +ayF +ads +crE +aeG +ayF +ads +crE +aeG +ayF +ads +crE +aeG +ayF +ayF +ayF +ajV +alR +alR +alR +alR +amC +aom +apP +amC +arN +amC +amC +amC +amC +axi +asK +azF +azF +azF +azF +aEL +azF +azF +azF +azF +aLE +aNm +aOl +aPA +aQO +aSh +aTw +aUU +aWn +aXQ +aZv +aXQ +bbL +aPz +bdJ +txm +bgr +iwB +hew +bkF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aAM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +hrF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(67,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ads +crE +aeG +ayF +ads +crE +aeG +ayF +ads +crE +aeG +ayF +ayF +ayF +ayF +ayF +alU +alF +anj +anJ +aoU +alU +amC +arM +alU +avc +asO +avV +atO +ayw +atN +aAV +aBQ +aDh +aDo +aFQ +aHe +aIN +aKp +aLE +aNm +aOl +aPA +aQN +aQN +aQN +aUn +aTy +aWy +aYe +bbq +aZw +aPz +bct +bfa +gfr +bhQ +bjk +bkE +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayB +ayF +cca +cca +cca +cca +cca +ayF +csZ +ayF +cca +cca +cca +cca +cca +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(68,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ads +crE +aeG +ayF +ads +crE +aeG +ayF +ads +crE +aeG +ayF +ayF +ayF +ayF +ayF +alU +alF +anl +amC +alU +alU +amC +alU +alU +apP +alU +alU +atP +auV +axK +aAN +aBL +aDd +aDd +aFR +aDd +aDd +aJZ +aLk +aNo +aOo +aPA +aQS +aQN +aSV +aUo +aUX +aXp +baO +aZo +baw +aPz +hPs +cBn +bgs +hnl +bjk +bkF +aBM +aBM +aBM +aBM +aBM +aBM +avd +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +avT +aBM +aBM +aBM +ayF +ayB +ayF +ccc +ccX +ccX +ccX +ccX +vZA +crk +uDO +cjH +cjH +cjH +cjH +cnl +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(69,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ads +crE +aeG +ayF +ads +crE +aeG +ayF +ads +crE +aeG +ayF +ayF +ayF +ayF +ayF +alU +alU +ank +alU +alU +alU +amC +amC +amC +arN +alU +avW +amC +ayx +atO +aAL +aBQ +aDb +aDo +aFY +aDo +aDo +aKp +aLE +aLE +aOn +aPA +aQP +aQN +aTB +aUt +aWo +aXQ +aXQ +aXQ +aXQ +aPz +aPz +aPz +aPz +bhQ +bjk +aPz +aBM +aBM +boI +bqi +brJ +boI +brJ +bvS +boI +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +avU +ayF +ayF +crk +ayF +ayB +ayF +ccb +ccb +ccb +ccb +ccb +ayF +vPs +ayF +ccb +ccb +ccb +ccb +ccb +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(70,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ads +crG +aeG +ayF +ads +crG +aeG +ayF +ads +crG +aeG +ayF +ayB +ayF +ayF +ayF +alU +amD +anm +amC +amC +ali +amC +alU +asO +atL +alU +avX +axf +amC +atO +aAY +aBQ +aDl +bxk +aDo +aDo +aIX +gCC +aLE +aLE +aOp +aPA +aQR +aQN +aQN +aUt +aWq +aQN +aQN +aQN +aQN +vhb +bbO +aPA +bgt +bhS +bjk +aPz +aBM +aBM +blW +bqj +brK +blW +brK +bvT +blW +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +oDb +avU +ayF +ayF +ayF +ayF +ayB +ayF +ayF +ayF +ayF +ayF +ayF +ayF +hrF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(71,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayB +ayF +ayF +ayF +alU +amC +amC +amC +amC +ali +amC +alU +alU +alU +alU +alU +axj +alU +atO +aAY +aBQ +aDk +aDo +aDo +aDo +aIW +aBQ +aLE +aLE +aOl +aPC +aQN +aQN +aTz +aUp +ubj +aXr +aZx +aQN +aQN +cBh +bdL +aPA +bgt +bhR +bjk +aZE +blW +blW +blW +bqi +cyD +blW +cyD +bvS +blW +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +avU +ayF +ayF +ayF +ayF +ayB +ayB +ayB +ayF +ayF +ayF +ayF +ayF +hrF +ayF +ayF +ayF +ayF +ayF +ayB +ayB +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(72,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayB +ayB +ayB +ayB +ayB +ayF +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayF +ayF +ayF +alU +amE +ann +amC +amC +alU +amC +alU +arN +atU +alU +atU +amC +atJ +atO +aAY +aBQ +aDn +aDo +aDo +aHD +aIZ +aBQ +aLE +aLE +aOq +aPD +aQT +aQN +aTC +aUs +aUY +aXv +aYS +aQN +aQN +vhb +bbO +aPA +aSg +bhT +bjk +aZE +blY +bnw +boJ +bql +brL +btr +bnw +bvV +blW +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +ayF +avU +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +cfx +chO +cfx +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(73,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +oDb +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +alU +alU +alU +ank +alU +alU +amC +amC +amC +amC +alU +avc +amC +atJ +atO +aAY +aBQ +aDm +aDo +aDo +aDo +aIY +gCC +aLE +aLE +aOl +aPA +pqs +aQN +aTC +aUs +mTG +aXt +ijG +aQN +aQN +aPA +aPA +aPA +bel +bfI +bgq +bhY +bkj +bqm +bqm +bps +bjr +bjr +buB +bvU +aZE +ayF +ayF +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +bVx +caf +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +cfx +chN +cfx +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(74,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +alU +amF +alU +amC +alU +alU +alU +alU +amC +amC +alU +atM +axl +auV +azG +aAY +aBQ +aDp +aDo +aFU +aDo +aJb +aKp +aLE +aLE +aOl +aPE +aQV +aQN +aTC +aUu +gxc +aXt +ijG +aQN +aQN +aZB +aPA +bfc +bew +bfM +bjl +bkG +bkp +bmj +bjt +cCo +bjt +bjt +biq +bvV +blW +aBM +aBM +aBM +aBM +ayF +ayF +ayF +lPl +rQX +lPl +ayF +ayF +ayF +bCq +bCq +bCq +bLv +bCq +ayF +cbj +crk +crk +crk +ayF +bCq +bCq +bCq +bCq +bCq +bCq +cfx +cfx +cyK +cfx +cfx +ayF +ayF +oDb +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(75,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +alU +alU +alU +amC +alU +crk +rJw +arO +amC +amC +avc +atO +axk +ayy +ayy +aAO +aBN +aDe +aDe +aFT +aDe +aIU +aKa +aLH +aLE +aOl +aPA +aiB +aQN +nLw +sLa +oyl +aXw +qfk +aQN +aQN +aZA +aPA +aWv +aYb +aZE +aZE +aZE +bkn +bmh +bjr +bmb +bjr +bjr +buC +bvV +blW +aBM +aBM +aBM +aBM +ayF +ayF +bxy +bxy +pHH +bxy +bxy +ayF +ayF +bCq +ajD +bCq +bSn +bCq +bCq +cbj +bLv +bXv +bLv +ayF +bCq +cAy +cAB +ajG +cAD +cAH +cfw +cgA +chP +ciQ +cfw +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(76,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ali +anK +ali +ayF +alU +rJw +alU +atW +atW +atO +axn +alU +aoX +atJ +aBQ +aDq +aDo +aFZ +aHE +aJc +aKs +aLK +aLK +aOr +aPA +aQX +aQN +aSi +aUv +aWp +aTy +aTy +aTy +aTy +bbs +bcw +bfd +bgw +aZE +bjn +bjr +bkt +bmh +boK +bpz +boK +bjr +bkt +bvV +blW +aBM +aBM +aBM +aBM +ayF +ayF +bxy +vCa +avl +vCa +bxy +ayF +ayF +bCq +bHE +bJP +bHE +bJP +bCq +cbk +bLv +bHE +bLv +ayF +bCq +cAA +bHE +bHE +ccZ +cAK +cfw +cgC +chR +ciS +cfw +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(77,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ali +aKY +ali +ayF +ayF +ayF +alU +ali +ali +atO +axo +ayz +ayz +ayz +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aLm +aLE +aOl +aPA +vJu +aQN +aTD +ocv +aUZ +aYU +aYU +aYU +aYU +aYU +bcu +bfe +aYb +aZE +bjm +bjr +bjr +bmh +boK +bjr +boK +bjr +bjr +bvV +bxu +aBM +aBM +aBM +aBM +ayF +ayF +bxy +juQ +gzv +byE +bxy +ayF +ayF +bCq +bHE +bHE +bHE +bHE +bCq +bVy +bLv +cyE +bLv +bLv +bCq +bHE +cAC +ccZ +cAE +ceV +cfw +cgB +chQ +ciR +cfw +crk +crk +crk +ayF +aBM +aBM +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(78,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ali +ali +amC +alU +alU +alU +ayF +ayF +ayF +crk +avY +axo +arP +fgG +rqW +aGD +tJi +aCr +hcb +qTG +hcb +aKu +aLM +aLF +aOs +aPG +aPG +aPG +aPG +aPG +lip +aQW +aQW +aQW +aQW +xDM +aPA +jxF +aYb +aZE +bjp +bjr +bjr +bmh +boK +bjr +cBp +bjr +buB +bvV +bxu +bxu +bxx +bxu +bxu +avf +ayF +bxy +avl +rBE +byE +bxy +ayF +ayF +bCq +bHE +bPW +bHE +bHE +bCq +bVB +bHE +bHE +bYu +bZk +bCq +cTF +bCq +bCq +bCq +bCq +cfw +cgE +chS +cfw +cfw +bCq +bXv +bCq +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(79,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ali +yds +amC +aon +aoW +arP +aqQ +aqQ +aqQ +aqQ +avZ +axo +arP +rPU +fne +aGr +aHI +fOA +tWj +oyz +hcb +aKu +aLL +bDe +aOl +aPF +aQY +aSk +aTE +aPG +aPA +aPA +aPA +aPA +aPA +aPA +aPA +aWv +aYb +aZE +bjo +bjr +bjr +bmh +boK +bjr +boK +bjr +bjr +bub +bxu +bvF +bzP +bAS +bxu +ayF +ayF +bxy +gii +eBm +byE +bxy +ayF +ayF +bCq +bHE +bHE +bSo +bHE +bCq +bVA +bWw +bXw +bYt +bZj +bCq +bHE +bCq +bSq +cdW +ceW +bCq +cgD +bUs +bHE +cjI +bCq +clA +bCq +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(80,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ali +aKY +amC +amC +amC +gsM +aqR +aqR +aGh +aqR +awb +axo +arP +aCh +pIf +kCo +aHK +aCr +uJx +ikk +hcb +aKu +aLN +aLE +aOl +aPH +aRa +aRa +aTG +aPG +aWu +aYc +aZD +aZD +vnI +aZD +aZD +bff +dev +aZE +xBw +bjr +ama +bmh +bjr +bjr +bjr +bjr +bjr +bvX +bxu +byA +bzR +byd +bxx +ayF +ayF +bxy +qTA +avl +qTA +bxy +ayF +ayF +bCq +bPV +bCq +bCq +cTF +bCq +bVD +bWy +bXx +bYw +bZj +bYy +bHE +bTz +bHE +bUs +ceY +bCq +bJP +bUs +bHE +bLu +bCq +cyE +bCq +ayF +ayF +ayF +ayF +bCq +bCq +bLv +bLv +bLv +ayF +aBD +aBD +aBD +aBD +aBD +aBD +aBD +aBD +aBD +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(81,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ali +nBI +anL +aoo +aoX +arP +arP +arP +arP +arP +avZ +axp +ayC +azH +eEe +aGv +aCr +aCr +uJx +ikk +hcb +aKu +aLN +aLE +aOl +aPF +aQZ +aRa +aTF +aPG +aSX +hPP +aZF +aZF +aZF +aZF +aZF +aZF +bgy +gjl +bjq +bjr +bjr +bmh +bjr +bjr +bjr +bjr +bjr +bjr +bxw +byz +bzQ +byc +bxx +ayF +ayF +bGi +bGi +bJb +bGi +bGi +ayF +ayF +bCq +bPU +bHE +bSp +bHE +bCq +bVC +bWx +bWy +bYv +bZl +bCq +bHE +bCq +cda +cgF +bCq +cqn +cAh +chT +bHE +bHE +ckv +bHE +bCq +bLv +bLv +bLv +bLv +bCq +ciT +cqK +crl +bLv +ayF +aBD +azl +azl +azl +azl +azl +azl +azl +aBD +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(82,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ali +ali +ali +alU +alU +arP +aqR +wje +rQJ +uUi +avZ +xtP +ayA +sNK +xmo +aBV +mzB +mJG +szG +aHG +aJe +aKw +aLP +aMR +aNU +aPJ +aPJ +aPJ +aPJ +aPJ +aVC +aXJ +bgA +aZp +baY +bcJ +bcF +bfg +bgA +bhW +bjt +biq +bjr +bmh +bjr +bqn +brN +brN +brN +brN +bxx +byC +bzT +byl +bxx +ayF +ayF +bGi +bHz +avl +bKk +bGi +ayF +ayF +bCq +bPW +bCq +bCq +cOw +bCq +bVF +bWA +bXy +bYx +bWz +bCq +bHE +bCq +bQa +cpY +cyL +cqy +cAi +bQa +bHE +bHE +bHE +bHE +bHE +bHE +bHE +bHE +bHE +cpR +bHE +cAQ +crm +bLv +ayF +aBD +aBD +aBD +aBD +aBD +aBD +aBD +aBD +aBD +oDb +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(83,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +crk +crk +crk +crk +crk +crk +crk +crk +crk +arP +vqP +inw +gzY +rtC +izg +awa +axq +qyj +azI +rjQ +aBU +myh +inR +wUr +iTq +hcb +aKu +aLN +aMQ +aNT +aPI +aRb +aRb +aRb +aRb +aWx +aXE +baS +baS +bbP +bcR +bcE +baS +bex +aZF +bgu +bic +bku +bmh +bjr +aZE +brM +bts +buD +bvY +bxx +byB +bwS +byg +bxx +ayF +ayF +bGi +bHy +avl +bKj +bGi +ayF +ayF +bCq +bHE +bHE +mPr +cdb +bCq +bVE +bWz +bHE +bHE +bLu +bCq +bLu +bCq +cdb +bSs +bCq +bCq +cgG +bCq +bCq +bCq +bCq +cTF +bCq +bLv +bLv +bLv +bLv +bCq +cqv +cqL +bJe +bLv +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBD +aBD +aBD +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(84,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +crk +crk +crk +crk +crk +crk +crk +crk +crk +aqQ +uCo +gzY +eAG +aqR +aqR +kTj +xxi +ayD +cGz +aMr +ngs +aDv +uRS +uJx +dsC +hcb +aKu +aLN +aMS +aOt +aPK +aPK +aPK +aPK +aPK +aWA +aXM +bfi +cBi +bbS +bcS +bbt +bfi +beD +gjl +aZE +biA +bmg +bmH +bkJ +aZE +aZE +aZE +aZE +aZE +bxu +byD +bwU +byn +bxu +ayF +bxy +bxy +bxy +bJd +bKm +bxy +ayF +ayF +bCq +bPY +cOw +bCq +bCq +bCq +bCq +bCq +bYy +bCq +bCq +bCq +bCq +bCq +bCq +bCq +bCq +bCq +bUs +bLv +ayF +bCq +ckv +bHE +bCq +ayF +ayF +ayF +ayF +bCq +bCq +bCq +bCq +bCq +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBD +azl +aBD +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(85,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +crk +crk +crk +crk +crk +crk +crk +crk +crk +aqQ +aqR +aqR +pjg +sqg +inq +avZ +xxi +ayD +viF +aMr +aMr +aOH +uRS +lSa +oTW +hcb +aKu +aLN +aMS +aOi +lPr +aPK +aSl +aTH +aPK +aWz +aWC +baS +baS +baS +bcR +baS +baS +baS +gjl +bju +biv +bmf +bmt +boN +bqo +brO +btt +buE +bvZ +bxu +bxx +bwT +bym +bxu +bxy +bxy +bGj +bHA +tIV +bKl +bxy +crk +crk +bCq +bPX +bRg +bRg +bCq +bHE +bVG +bHE +bHE +bCq +tPT +tRF +mrR +dKP +odx +rBq +kQO +bCq +bUs +bLv +ayF +bLv +bJf +ccd +bCq +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +gUu +crn +bij +bij +bij +bij +bij +jkz +btG +ayF +aBD +azl +aBD +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(86,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +crk +crk +crk +crk +crk +crk +crk +crk +crk +aqQ +uCo +gzY +arP +arP +arP +avZ +xxi +ayD +nez +ngV +xPY +aOH +hcb +hcb +syJ +hcb +aKu +aLN +aMS +aOi +aLE +aRc +aSm +aTJ +aPK +aWA +aWC +baS +aZI +baS +cCn +bdS +bdU +ckQ +gjl +bgz +biT +boU +bmP +buF +bbR +bbR +btu +bbR +bOL +qje +byF +bwW +bGm +bCo +bDk +bEK +byE +byE +avl +byE +bGi +ayF +ayF +bLv +bQa +bHE +bHE +bCq +bHE +bCq +bCq +bCq +sXA +mPE +kyF +sAM +imH +evR +evR +rMN +bCq +bUs +bLv +ayF +cjJ +cjJ +cjJ +cjJ +cjJ +cjJ +cjJ +kfX +saU +saU +bij +crn +bij +bij +eCR +wUg +bnT +bph +bsc +mQS +bsc +tNF +btG +ayF +aBD +azl +aBD +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(87,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +crk +crk +crk +crk +crk +crk +ato +crk +crk +arP +aqR +aqR +arP +asQ +aqR +awb +axr +ayE +ayE +ayE +ayE +ayE +ayE +ayE +ayE +ayE +ayE +aLl +aMT +aOi +aPL +aPK +aSm +aTI +aPK +aWB +cCj +apd +apd +apd +cCk +apd +aZK +bgB +bhX +bgv +biF +bkw +bnE +bny +btv +btv +bjv +btv +buc +bxz +eVL +bwV +byy +bBa +bAb +bzY +bBa +bEQ +bGM +bKn +bGi +ayF +ayF +bLv +bPZ +bHE +bHE +cTF +bHE +bCq +iiW +iiW +iiW +iiW +iiW +dfL +dKP +mqZ +tur +wfR +bCq +bUs +bLv +ayF +cjJ +ckw +clC +cmy +cnm +cnL +cov +cpj +cpS +cjJ +fjS +sPT +btG +rXl +xgC +ugu +bnV +bph +bih +big +bii +bsc +btG +ayF +aBD +azl +aBD +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(88,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aiU +hlT +aiU +ayF +aiU +vxX +aiU +ayF +arP +lZs +dPq +arP +asP +cya +awa +axu +ayH +ayH +ayH +ayH +ayH +ayH +aFV +ayH +ayH +aKy +aLn +aMU +aOw +aPN +aPK +aSn +aTK +aPK +uoG +sOA +asW +baW +bLE +bLG +apd +bfj +bgC +bia +aZK +bjs +bkx +bmQ +bnA +bpB +bpB +brR +bsV +bwc +bxA +bvI +bwX +byG +bvI +bAm +bBG +bDo +xJV +gzv +bKp +bGi +ayF +ayF +bLv +bHE +bHE +bSs +bCq +bHE +bCq +uvZ +dKP +vjm +bcU +bcU +bcU +dKP +dKP +dKP +dKP +bCq +bUs +bLv +ayF +cjJ +cky +clE +cmA +clE +cnN +cox +cpl +cpU +jLn +xTy +xTy +tJK +xTy +xTy +xhS +mOB +bph +big +bgN +big +bsc +btG +ayF +aBD +azl +aBD +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(89,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aoV +ayF +ayF +ayF +gWo +gWo +gWo +dYZ +gWo +gWo +ayF +ayF +ayF +aiU +alp +aiU +ayF +aiU +alp +aiU +arP +arP +arP +arP +arP +arP +arP +avZ +axt +ayG +ayG +ayG +ayG +ayG +ayG +ayG +ayG +ayG +ayG +aLm +aMS +aOv +aPM +aPQ +aPQ +aPQ +aPQ +apd +aYi +aqW +aqW +bbQ +uFp +apd +aZH +aZK +bhZ +aZK +cNM +bfQ +bnG +bnz +bpA +bbR +sWR +jlm +bud +eyM +kSb +bAZ +bGm +bzF +bAc +bGm +byE +cBB +byE +bKo +bxy +crk +crk +bCq +bHE +bRh +bLu +bCq +bHE +bCq +iiW +iiW +dKV +xgF +dKV +dKV +iiW +gMl +gMl +iiW +bLv +bUs +bLv +ayF +cjJ +ckx +clD +cmz +cnn +cnM +cow +cpk +cpT +cjJ +fjS +dXq +btG +rtl +oqO +vFr +bnV +bph +bii +big +bih +bsc +btG +ayF +aBD +azl +aBD +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(90,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +abc +abc +abc +afu +abc +wdr +itQ +pgn +tmO +gWo +xUe +aiU +aiT +nEj +vTP +aiU +amK +aiU +mkU +xWq +arP +asR +gzY +fdQ +ngU +kUC +arP +awc +axt +ayG +azK +aBe +aBe +aDj +aER +aFX +aHj +aJa +aKc +aLp +aMV +aOy +aLE +aPQ +aRV +aSW +aVa +apd +aWE +aqW +aqW +bcG +bLG +apd +aZH +bgD +bfN +bgE +cNN +bkH +bfm +boS +bfm +bNK +bkN +bfm +bwe +bwe +bwd +bwY +byJ +bwe +bAc +bBI +bGn +bGn +bGn +bKq +bxy +ayF +ayF +bCq +bOK +bCq +bCq +bCq +bUt +bCq +uaw +tkU +iiW +lnu +cjn +iiW +cxo +bcU +bcU +vzO +bLv +bUs +bLv +ayF +cjJ +cky +clG +cmB +clG +cnP +coz +cpn +sPY +sPY +bgO +dgO +bgO +pPI +uRd +ktP +bnW +bph +bsc +mkv +bsc +jFH +btG +ayF +aBD +azl +aBD +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(91,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +abc +aea +aeH +aft +abc +pDe +dly +mnC +mcp +gWo +oDm +ibK +akb +ahq +akI +ahU +aiT +aiD +akI +uFZ +hBw +vLo +gzY +aqR +gzY +gzY +esK +awb +axt +ayG +azJ +aBd +aBX +aDi +aEQ +aFW +aHh +aIV +ayG +aLN +aMS +aOx +aPc +aRe +aRT +aSt +aWF +apd +aWG +aZa +baX +bcH +bdE +apd +aZH +bnL +cNG +cNJ +cNM +cNI +bnI +boR +bqs +bbR +bkM +bbR +bwd +bxB +bvL +byI +byH +bwe +bAn +bBH +bxy +bxy +bxy +bxy +bxy +bLv +bLv +bCq +bHE +bLv +ayF +bLv +uuG +jJF +gBo +sEt +cxo +bcU +bcU +jqv +cxo +bcU +mpI +vzO +bLv +bUs +bLv +ayF +cjJ +ckz +clF +cmy +cnp +cnO +coy +cpm +cjJ +ayF +ayF +ayF +ayF +ayF +iHk +bgO +bgO +bgO +bgO +bgO +bgO +jBA +btG +ayF +aBD +azl +aBD +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(92,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +crk +abc +abu +abu +abu +abc +abc +aec +aeJ +afw +abc +abc +dly +xxp +mcp +dYZ +kMt +nTG +rhX +ahr +ahD +ahV +agr +fJY +eXz +pUy +arP +arP +arP +arP +iPX +nnp +arP +awb +axt +ayG +azM +aBg +aBZ +aDx +aET +aET +bCx +aHJ +aKd +aLq +aMY +aOA +aPO +aRf +aSc +aSc +aUw +apd +aXK +avr +aZJ +bbT +bSy +apd +aZH +beF +bfl +bmi +bjw +bmk +bbR +boT +bbR +bbR +buI +bbR +bwd +bxD +byL +byK +byT +bwe +bAx +bTE +bCq +bHD +bJe +bCq +nkP +bHE +bHE +bHE +bHE +bLv +ayF +bLv +bUs +bCq +iiW +iiW +fxa +bcU +bcU +vzO +iiW +oKh +oKh +iiW +bLv +bUs +bLv +ayF +cjJ +cjJ +cjJ +cjJ +cjJ +cnR +coB +cjJ +cjJ +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBD +azl +aBD +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(93,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aai +aai +aai +abb +abt +aca +acz +acX +adC +aeb +aeI +afv +agf +abc +dly +xxp +mcp +gWo +gDP +lAH +lNH +akG +akG +kHd +vGn +gav +cxP +pUy +arP +aqU +arg +arP +arP +arP +arP +vgJ +hSl +ayG +azL +aBf +aBY +aDw +aES +aJh +aHv +aJh +aKA +aLN +aMS +aOz +exP +aPQ +aSa +aSr +aSr +apd +aYZ +bLE +aqW +aqW +noy +apd +beA +bqp +cNG +cNJ +bLF +aZK +sRH +bbR +bqt +cBq +bbR +bbR +bwd +bxC +byK +cBv +byO +bwe +bAo +bTE +bGo +bHC +bHE +bCq +bCq +bLv +bLv +bHE +bLv +bCq +ayF +bLv +bUs +bCq +sRT +usO +iiW +oKh +oKh +iiW +iiW +iiW +izv +nfm +bCq +bUs +bCq +ayF +ayF +ayF +ayF +ayF +cjJ +cnQ +coA +cpo +cjJ +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBD +aBD +aBD +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(94,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aai +eqd +kgr +abe +abw +acc +acB +acZ +adE +aee +aeL +afy +agh +abc +kCa +hnU +vda +sXV +agv +amM +aiX +aiX +aiX +aiX +aiX +foT +ibK +pUy +arP +aqR +arl +arP +asS +sfs +aqR +awb +axt +ayG +azN +aBe +aBe +aDy +aEU +aGf +aHL +aJi +aKB +aLT +aNp +aOC +aPQ +aPQ +aTL +aTP +aWD +apd +aYj +aZL +baU +baU +bcV +apf +bfn +beW +bfR +bKF +bNH +aZK +bnJ +bbR +bbR +bbR +bty +buJ +bwe +bxE +byM +bAd +bBf +bwe +bAJ +bCe +bCq +bHE +bJf +bCq +ayF +ayF +bLv +bHE +bLv +ayF +ayF +bTB +bUv +bES +bES +bES +bES +bGp +bGp +bGp +bGp +bES +bES +bES +car +bUs +bCq +bCq +bCq +bCq +bCq +bCq +cjJ +cnS +coC +cpp +cjJ +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(95,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aai +gbu +aay +abd +abv +acb +acA +acI +adD +aed +aeK +afx +agg +abc +ovv +dCV +idK +age +kZS +agu +agj +amL +apK +amX +aiX +aiE +aiK +aiN +arP +arc +arP +arP +usE +aqR +aqR +awb +axt +ayG +ayG +ayG +ayG +ayG +ayG +ayG +ayG +ayG +ayG +aHP +aNc +aOB +aPQ +aPQ +aSs +aSs +aSs +apd +apd +apd +baV +bON +apd +apd +aZK +beV +cNI +bKP +cNI +aZK +bnK +bnK +bqu +bqu +bnK +bnK +bwe +bwe +bwe +bwe +bwe +bwe +bAI +bCd +bCq +bCq +bCq +bCq +bLv +bLv +bLv +bOK +bLv +bLv +bLv +bTA +bUu +bLw +bLw +bLw +bLw +bLw +bLw +bLw +bLw +bLw +bLw +bLw +caq +cbw +bHE +ciT +bCq +bSs +ceY +ccw +ccw +cnR +cgT +cjJ +ccw +ccw +ccw +ccw +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(96,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +aai +acd +mIZ +abg +enB +aby +aby +aby +aby +aeg +aeN +afA +afA +abc +kuA +laq +kdP +mGw +akm +akr +alZ +amO +arQ +aor +aiX +aiF +aqI +asv +aqT +apS +arn +apS +apS +apS +apS +ajw +ajy +ayJ +ayJ +aBi +aqR +aqR +aqR +aqR +aqR +aqR +arP +aLI +aNr +bBo +aJq +aRh +aJq +aJq +aJq +aJq +aJq +aLY +aJq +aJq +aRh +bbV +bfo +bkS +bfo +bgn +bfo +bmn +bfo +boW +bmE +bmE +btz +btz +bwf +btz +btz +btz +bBh +bCr +bAK +bCn +bGq +bGq +bGq +rGq +bLw +bGq +bGq +bGq +bLw +bGq +rGq +bTD +bUx +bVI +bVI +bVI +bVI +bVI +bVI +bVI +bVI +bVI +bVI +bVI +bTA +xgk +bHE +bHE +bHE +bHE +bHE +cmD +cnr +cnU +chD +cpq +cpV +cqw +cqO +crp +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(97,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +aai +aai +abf +aaK +jRw +aaU +acd +acC +ada +adF +aef +aeM +afz +oSl +ail +lRb +vIi +fsj +sXV +xnm +rAR +uCU +and +arS +anq +aiX +aiT +ass +aiT +arP +arP +arP +arP +arP +arP +arP +ajx +axw +ayI +azO +aBh +akL +aDz +aEV +aGg +aHx +aqZ +apg +aLx +aNq +aOD +aPe +aJq +aJq +aJq +aJq +aJq +aJq +aLY +aJq +aJq +bHt +aJq +aJq +beX +aJq +bgm +bjx +bmm +bnM +boV +bnM +bnM +bnM +bnM +bnM +bnM +bnM +bAe +bBg +bCq +bCq +bDt +bGp +bGp +bGp +bES +bGp +bGp +bGp +bGp +bGp +bGp +bES +bTC +bAx +bVI +bWB +bWB +bYz +bYz +cag +cbl +bYz +bWB +bWB +bVI +cax +cbx +cdh +ciU +cjK +ckA +ckA +cmC +cmC +cfJ +chB +cpW +cgR +cgR +cqN +cro +swf +ncF +swf +ykN +ykN +ykN +ykN +ykN +ncF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(98,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aiS +aai +aai +aai +aai +aaI +aat +aat +aat +aat +ace +aat +aat +adH +aei +aeO +afJ +sXV +sXV +sXV +sXV +sXV +sXV +oby +ajX +agj +amL +asp +nbY +aiX +iRj +anz +aov +cCi +apU +ajd +arU +apU +apU +cCi +awg +axy +ayL +azQ +aBk +ayL +ayL +ayL +ayW +ayW +ayW +ayW +aLW +aNs +aJq +aLX +aLX +aLX +aLX +aLX +aJq +aYl +aZN +aYl +aYl +aYl +aYl +aYl +bgG +bid +aYl +bBi +aLY +bnN +boY +bqw +aJq +aJq +aYl +fAj +aLX +aJq +aJq +bBi +aJw +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +bCq +bTF +bAx +bVI +bWD +bXA +bYB +bYz +cai +cSF +ccg +cdd +cea +bVI +caz +cby +cdj +cdv +cem +cem +cem +cfe +cfD +cgv +chE +ciN +ciN +cji +cDZ +crr +utp +utp +utp +swf +ykN +ykN +ykN +ykN +dUG +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(99,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aai +aan +aaw +aaB +qmn +aaJ +aat +abh +aat +acd +abK +acY +adG +aeh +aeO +ado +afq +afH +agY +ahS +aiI +afn +vfX +akD +agj +agj +agj +agj +aiX +ycY +anz +aov +cCi +air +aqY +arT +apU +apU +cCi +awg +axy +ayK +azE +aBj +aBO +aDC +ayL +aGo +aHN +aJj +ayW +aLV +aJq +aOE +aJn +aJn +aJn +aJn +aJs +aJq +aYk +aZM +aZM +bbW +bcX +bcX +aZM +aZM +aZM +bjz +bkT +bjz +bjz +aiV +bqv +bqv +bqv +bqv +bwg +aJw +aJq +aJq +bBi +aJw +ayF +bEU +bGr +bGr +bGr +bKr +ayF +ayF +ayF +ayF +ayF +ayF +bCq +bTE +bAx +bVI +bWC +bXz +bYA +bZn +cah +bWB +ccf +cdc +cdZ +bVI +cay +ccw +ccw +ccw +ccw +ccw +ccw +ccw +ccw +cfL +coH +cBO +cgR +cDB +cqP +crq +utp +utp +utp +jhU +ykN +ykN +ykN +ykN +ncF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(100,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aak +aap +saX +aaD +aau +aat +aat +aat +abA +acd +acd +acd +acd +aek +acp +aav +agO +afI +ahb +ahZ +aiL +lZn +akg +kuh +aly +anP +gyr +okK +xal +aqC +anz +aov +cCi +aqX +arR +asj +iUK +ajr +atY +auo +axy +ayN +azE +aAW +aCa +aDB +aDI +azW +azW +azW +ayW +aLX +aJq +aOE +aJn +ayF +ayF +aJn +aJs +aJq +aYn +aZM +aZu +bbY +bcY +bdX +bbX +bgH +bie +bjB +bkW +bmp +bjz +ajh +bqy +cBr +bqy +buK +tZe +aJw +aJq +aJq +bBi +aJw +ayF +bEW +bGt +bHG +bJh +bEW +ayF +ayF +ayF +ayF +bKv +bLB +bES +bMj +bAx +bVI +bWF +bXC +bXC +bZp +cak +bWB +bWB +bWB +cec +bVI +kNv +ccw +chY +ciX +cjM +ckB +ckB +ckB +ccw +cnY +coH +cgR +cgR +cqx +cgR +crp +utp +utp +utp +swf +ykN +ykN +ykN +ykN +dUG +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(101,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aaj +aao +aax +aaC +aaA +aat +aat +aat +aei +acd +acE +add +adF +aej +aeQ +adp +ahv +afK +aht +aid +aiM +ajz +alz +cZe +alg +plS +dyE +pQr +aou +aqC +anz +aov +ape +arT +aqV +ajf +apU +ajt +cCi +awg +axy +ayM +azs +aAR +aBP +aDA +aEW +aGi +aHB +aEZ +aBt +aJs +aJq +aOE +aJn +ayF +ayF +aJw +aVb +aWH +aYm +aZM +aZq +bbX +bbX +bbX +bfp +aZP +aZP +bjA +cAG +bmo +bmr +boZ +bqx +brU +bmr +bmr +bmr +bmr +byN +aJq +bBj +aJw +ayF +bEV +bGs +cBC +bJg +bKs +ayF +ayF +ayF +ayF +bJQ +bLg +cem +cem +bNg +bVI +bWE +bXB +bYC +bZo +bWB +bWB +cch +cde +ceb +bVI +cay +ccw +chY +ciZ +ciW +ckB +ckB +ckC +ccw +cnX +coH +cps +cpX +cqz +cqR +ccw +utp +utp +utp +jhU +ykN +ykN +ykN +ykN +ncF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(102,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aal +aar +uGI +aaF +aat +aat +aaW +aat +abB +acf +abM +acG +adI +aem +omX +afG +aim +afL +ahu +aie +aiO +afn +xzv +agL +akT +gNE +gLz +rcI +seP +aqC +anz +aov +cCi +tKb +arT +arT +asn +atK +auq +avs +axz +ayP +azU +aBo +aCg +azW +aEX +aEZ +aEZ +aEZ +vbD +aJs +aJq +bJx +aJn +ayF +ayF +aTQ +aVd +aWJ +aYp +aZM +aZz +baI +bda +bda +bca +bgJ +aZP +cNL +bkY +bmo +bnP +bpc +bqA +brW +btB +buM +bwi +bmr +aMm +aJq +vEi +bCs +bCs +bEY +bGu +bHI +bJi +bEY +bCs +bCs +bNI +bNI +bRn +cce +bNI +bNI +bUz +bVI +bWG +bXD +bYz +cSE +bWB +bYz +bYz +cdf +ced +bVI +cay +ccw +ciZ +ciZ +ciZ +ckC +ckC +ckC +ccw +coa +coJ +clJ +clJ +cig +cig +ccw +utp +utp +utp +swf +ykN +ykN +ykN +ykN +dUG +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(103,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aaj +aaq +dyS +aaE +aat +aaN +aaV +rvS +aat +acd +abL +adb +acd +ael +aeO +afF +agj +agj +afn +afn +agj +agj +agM +sAk +akp +akQ +amB +amn +amS +anz +anz +aov +cCi +arT +arT +asl +arT +apU +cCi +awg +axy +ayv +azE +aBn +aCb +aDD +aEY +aGj +aHC +aEZ +aBt +aJs +aJq +aOE +aJn +ayF +ayF +aPR +aVc +aWI +aYo +aZM +aZy +bay +bcZ +bdY +bdF +bgI +aZP +bjC +bkX +bmo +bnO +bpb +bqz +bqq +brS +bsY +bue +bmr +aMn +aJq +bBi +bCs +bDv +bEX +bFb +kfv +bFa +bKt +bLx +bCs +cCe +bRl +apV +bLC +cCf +bNI +bUz +bVI +bWB +bWB +bYz +bZq +cal +cbm +bYz +bWB +bWB +bVI +cay +ccw +ccw +ciY +ciY +ccw +ccw +ccw +ccw +cnZ +coH +cgR +cgR +cig +nEI +ccw +utp +utp +utp +jhU +ykN +ykN +ykN +ykN +ncF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(104,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aal +aat +aat +aat +aat +qXg +jjC +xOx +abD +acd +acd +acd +acd +aen +aeO +ahE +afq +aii +afM +aig +agp +agj +lfV +akl +akM +amm +gyr +anM +rJv +aqC +anz +aox +cCi +cCi +cCi +cCi +cCi +cCi +cCi +awg +axy +ayQ +azE +aBq +aBr +aDE +aFc +azW +azW +aJf +ayW +aJr +aJq +aOE +aJn +ayF +aPR +aPR +aPR +aWL +aPR +aZM +bbX +bay +bbM +bcN +bdK +bgL +aZP +aZP +aZP +bmo +bnR +bpe +bqB +bqq +btD +buO +bwk +bmr +aLY +cBw +bBk +bCs +bDx +bFa +bFa +bHJ +bFa +bFa +bLz +bCs +cCe +bNJ +apV +xhV +gWd +bNI +bUz +bVJ +bWI +bXF +bXF +bZs +cao +cbo +bXF +bXF +cef +bVJ +cay +ccw +cig +cjb +cjb +cig +cig +cmG +cnt +cob +coL +wgZ +cgR +thz +mZO +fpt +utp +jhU +dUG +swf +ykN +ykN +ykN +ykN +dUG +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(105,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aaj +aas +aat +aat +aat +aat +uEI +aat +abC +acd +acH +adc +acd +aeo +aev +aeS +ahw +ajg +afM +akU +afM +lBz +alA +ene +alg +kbm +dyE +cKC +seP +aqC +anR +aow +apg +aqZ +aqZ +aqZ +apW +aqZ +avh +awh +axz +ayO +azE +aBp +aCc +aDF +ayL +aGq +aHO +aJl +ayW +ftE +aJq +aOE +aJn +ayF +aPR +aTR +aVe +aWK +aYq +aZO +aZC +baK +rnt +bbC +bdI +bgK +bgK +bjE +bgK +bmq +bnQ +bpd +bpd +bqr +btC +buN +bwj +bmr +byP +aJq +bBi +bCs +bDw +bEZ +bGv +bHH +bJj +bKu +bLy +bCs +bNJ +bNJ +bKx +cjL +gbq +bNI +bUz +bVJ +bWH +bXE +bYD +bZr +can +cbn +cci +cdg +cee +bVJ +cay +ccw +cia +cSN +cSS +ckD +cTc +cTe +cfG +cgw +abY +fkR +uvd +ccw +ccw +ccw +xJY +gkD +sYC +spz +sYC +sYC +fft +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(106,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aam +aav +aav +aav +aav +aav +aav +aav +abE +acg +acJ +ade +adJ +aep +aeT +ahE +aim +ajL +akj +afM +afM +nss +kQz +alB +akT +gNE +gLz +anB +amR +aqC +anz +aov +aph +aph +aph +arW +aso +auf +avi +awi +axy +ayS +azS +aBs +aCi +aDI +ayL +ayW +ayW +ayW +ayW +aJq +aJq +aOE +aJn +ayF +aPR +aTT +aVg +aWN +aYs +aZQ +bbi +bde +kvL +bcd +bcd +gNC +bcd +bcd +bcd +bms +bnS +ajs +bqC +brZ +btE +bnS +bwl +bxG +byR +bnM +bBl +bCs +bFa +bFa +bFa +bHH +bFa +bFa +bFa +bCs +bNJ +bNJ +apV +cjL +nxv +bNI +bUz +bVJ +bOo +bOD +bQb +bZv +bSd +bXG +bOC +bWt +cBK +bVJ +cay +ccw +cid +cSO +cen +ckG +clJ +cmF +cgR +cgI +hsZ +eon +bHg +bHg +bHg +lgA +gDB +hOI +qmG +uqX +oEe +tcF +uSL +fft +ccw +ccw +ccw +ccw +ccw +ccw +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(107,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aai +wYc +wYc +aaG +wYc +aaP +aaX +keM +xib +acd +acD +acY +adG +aeq +aeV +agj +agj +agj +tHh +ahG +ajY +fxx +ako +ene +amj +akQ +amB +amn +amS +anz +anz +aov +aph +aob +ara +arV +apZ +aph +aph +awg +axA +ayR +azR +aBr +azW +afO +azW +agm +aBt +ayF +aJn +aLY +aLY +aOF +aPR +aPR +aPR +aTS +aVf +aWM +aYr +aZP +bbh +bcc +bdd +cVs +bfr +bgM +bif +aZM +aZM +bmr +bmr +bmr +bmr +bmr +bmr +bmr +bmr +bmr +byQ +aJq +bBi +bCs +bFa +bFa +bGw +bER +bJk +bFa +bLA +bCs +cCd +bQc +bKA +rKP +bSv +bNI +bUB +bVJ +bOl +bOC +bPQ +bQK +bYF +bTI +bUy +bWs +ceg +bVJ +cay +ccw +cic +cSP +cST +cTa +ceZ +clQ +cgR +vOF +hSh +ssh +wKZ +wKZ +wKZ +wKZ +qGd +wKZ +wKZ +kjm +wKZ +mdG +tcF +vOF +fAX +hVs +iWD +hVs +fPM +ccw +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(108,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aai +aai +aai +aai +aai +aai +aai +abj +abF +acd +acd +acd +acd +aeP +afC +agk +cOV +agP +ajJ +agT +all +all +aku +akl +amk +amm +gyr +mos +rJv +aqC +anz +aov +aph +aoc +ata +arY +ata +auh +aph +awg +axA +ayT +azR +azW +azW +aBt +azW +aio +aBt +ayF +aJn +aJq +aJq +aOE +aPT +aRj +aSv +aTV +aVi +aWP +aYu +aYt +bbk +bbk +bfu +bbk +bfs +rTu +aZM +aZM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +fxV +aXf +aJq +bBi +bCs +bAM +bFa +bGy +bFc +bJm +bFa +bHO +bCs +cCd +cCd +aYg +cjL +cCc +bNI +bEP +bVJ +bVJ +bOM +bQd +bQP +bSt +bUc +bVb +bWv +cei +bVJ +cay +ccw +cif +cSQ +cSU +cTb +cTd +ckF +ckF +qiK +cQU +wKZ +uut +cVt +cVt +svN +vHx +rjH +fJs +nyb +rBP +foo +sZN +tAR +oRG +oRG +mHl +hVs +hVs +ccw +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(109,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +aai +abi +eqA +ach +acK +adf +acd +aer +afB +agi +eWL +afN +ajK +aiH +akF +aiy +akv +uXt +alg +pAK +dyE +anQ +seP +aqC +anz +aov +api +ata +arb +arX +atc +aug +aph +awg +axA +azW +ayU +azW +aCj +ayW +ayW +ayW +ayW +aJn +aJn +aJq +aJq +aOE +aPS +aRi +aSu +aTU +cpC +aWO +aYt +aYx +bbj +bce +bdf +beb +aYv +cUx +fcn +ayF +ayF +ayF +ayF +ayF +fxV +fxV +fxV +fxV +fxV +fxV +aXf +aJq +byU +bCs +bAL +bFa +bGx +bET +bJl +bHh +bHN +bCs +cjo +cCd +bSx +cjL +cCb +bNI +bEP +bLu +bVJ +bVJ +bVJ +bVJ +bVJ +bVJ +bUC +bWu +bVJ +bVJ +cay +ccw +cie +cdT +cCY +cnA +cev +cfg +cgU +osB +kZE +wKZ +tRi +lHe +xEC +vnu +oNQ +lBy +oNQ +vnu +oZv +iVJ +glC +jrl +peI +kXA +ciZ +ciZ +cMp +ccw +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(110,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +aiS +aai +aai +aai +aai +aai +aai +aai +aaZ +aaZ +aiX +aiX +afS +ahx +aiX +aiQ +xUX +akx +uTe +akT +amx +any +arD +amR +aqC +anz +aov +aph +aqb +are +arZ +ata +aui +aph +awg +axA +ayX +azY +azW +azW +afP +aFb +aEZ +cyg +aJp +aKE +aMa +aNw +aOE +aPU +aRl +aSx +aTX +aVi +aWR +aYv +aZS +aZR +aZR +bbm +bec +bfu +vBa +aBa +aBa +aBa +aBa +aBa +aBa +fxV +bsb +yhz +ouQ +cQT +nbT +aXf +aJq +bBi +bCs +bFa +bFa +bFa +bET +bJn +bHi +bHQ +bCs +cjo +bJu +bSx +cmX +bSz +bNI +bUD +bVM +bVM +bVM +bVM +bVM +cat +bCq +bVd +bWK +bYp +bCq +cay +ccw +cig +cSR +cSV +cig +cig +cTf +cgR +ccw +spl +sXl +eHa +tOn +xEC +bkZ +qBq +sTo +vwZ +bkZ +cOz +jXN +dIt +uvd +ciZ +cxm +jTJ +kLz +ciZ +ccw +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(111,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +aAu +ayF +abx +aaZ +aeF +ack +agJ +acT +adK +aew +afT +ahy +aij +aiR +ajc +akz +ene +als +akQ +amB +amn +amS +aqD +anz +aov +aph +cIv +ard +ard +ard +aph +aph +awj +axA +ayW +ayW +aBt +aBt +ayW +ayW +ayW +ayW +aJo +aJq +aLZ +aNv +aOE +aPS +aRk +aSw +aTW +aVj +aWQ +aYv +aZR +aZR +aZR +aZR +aZR +bft +psk +aBa +aBT +aDs +aEN +aGb +aBa +bqD +bsa +vCn +dzQ +bsa +nbT +byS +aJq +wTf +bCs +bCs +bCs +bCs +bFe +bCs +bLD +bCs +bCs +bNI +bNI +bKU +cnB +bNI +bNI +bCq +bCq +bCq +bCq +bCq +bCq +cas +bCq +bVc +bWJ +bYn +bZB +caC +ccw +cSM +cjd +cSW +ckI +clJ +cmL +cBO +ccw +hAe +wKZ +ePU +pPv +bkZ +kJc +snF +snF +rgx +bkZ +dlO +gAi +dIt +ccw +ePe +hVs +hVs +hVs +hVs +ccw +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(112,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +aAu +ayF +abG +aaZ +aeW +acl +agJ +adg +adL +adL +ago +ahz +aim +aiW +ajc +akz +ene +alg +alt +amp +aot +apR +aqE +anz +old +apk +anw +anw +anw +anw +aVh +avj +awl +axC +ayY +cpF +azZ +azZ +azZ +azZ +aGt +aHQ +aJr +aJq +aMc +aNy +aOE +aPS +aRn +aSz +aTY +aVl +aWT +aYx +aZR +bbm +bbm +bdh +bee +bfv +xUL +aBb +gpD +aDr +cJW +aGa +aHF +bqF +buQ +buQ +pzk +buQ +bxI +bwa +bAg +bBq +bCu +bAO +bFd +bFd +bFj +bJp +bHk +bHR +bIe +bFd +bJz +bRp +cav +bSA +bTJ +bSA +bSA +bWL +bSA +bSA +bZx +bSR +bUl +bVf +bXm +bYE +bCq +bHE +ccw +cij +cjf +cSX +ckK +clJ +cmL +cgR +fkR +sVb +lIY +oYj +taY +deE +voa +vAi +vAi +vAi +bkZ +hid +lLa +gGH +uvd +tGG +hVs +hVs +pPs +hVs +ccw +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(113,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +aBD +ayF +abG +aaZ +aeX +acm +agK +aaZ +aaZ +aex +agt +aaZ +aaZ +aaZ +fsa +akz +itD +alg +vyK +amI +alg +alv +aqE +anS +aoy +apj +anz +anz +anz +anz +anz +anz +awk +axB +anz +anz +anz +anz +anz +anz +apj +aHP +aJq +aJq +aMb +aNx +aOE +aPS +aRm +aSy +aTX +aVk +aWS +aYw +aZT +cBj +bcf +bdg +bed +bfv +tyX +pst +cTT +alu +aEM +aGd +uOJ +bqE +bqE +bqE +bqE +bqE +knx +bvW +bAf +bBp +aHP +bAN +bQg +bQg +bFh +bGN +bHj +bNN +bNN +bNN +bNN +bNN +cau +cBH +bMG +bLZ +bLZ +bLZ +bLZ +bLZ +bQQ +bSw +cbr +bVe +bXk +bYq +bCq +ceW +ccw +cdk +cMC +cSY +ckI +clJ +cmL +cnv +uvd +sCS +wKZ +sPm +rOg +pBd +fUP +pBd +vEc +pBd +vob +gCd +wAh +wAh +uvd +uBP +hVs +uBP +iPp +hVs +ccw +ayF +oDb +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(114,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +aAu +ayF +abG +aaZ +aeY +acn +agR +agW +ahA +aeE +agz +ahW +ain +aiZ +jyO +ajC +akC +akX +alw +amJ +aoY +rCl +aqE +anz +aoz +apm +aqd +anA +asa +atd +anA +avk +awk +axE +ayZ +pHO +aBu +aAa +aAa +aAa +aGu +aHR +aJt +aJq +aMe +aNA +aOE +aPV +aRp +aSB +aTZ +aVn +aWV +aYz +aZR +bbm +bbm +bdh +bef +bfv +gTx +aBc +xEB +aDt +aEO +aGc +vOU +rTD +dml +dml +oNz +dml +bxK +bwh +bAh +bBs +bzG +bAP +bCp +bDp +bFq +bGO +bHl +bHS +bLI +apI +bQg +bQg +bQg +bQg +bQg +bQg +bQg +bQg +bQg +bYI +bDG +bHP +cbt +bVh +bXo +bYM +cfb +cfb +cfb +cfb +cfb +cfb +cfb +ccw +cmN +cgR +fkR +viD +lIY +nRl +mKq +fpW +dSI +fxZ +fxZ +fxZ +bkZ +wLY +gJm +qzA +uvd +hVs +hVs +hVs +vxV +hVs +ccw +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(115,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aAu +ayF +abG +aaZ +aeZ +aco +agS +aho +ahX +afb +agH +agH +aip +aja +xTe +akz +alg +agn +agn +amN +aoZ +apT +anw +anz +cXU +apl +aqc +aqc +aqc +aqc +aqc +aqc +awm +axD +ahn +ahn +ahn +ahn +ahn +ahn +ahn +ahn +aJs +aJq +aMd +aNz +aOE +aPS +aRo +aSA +aTX +aVm +aWU +aYy +aZR +aZR +aZR +aZR +aZR +bfw +wZI +aBa +aBW +bjy +aEP +nYe +aBa +bqG +bsa +eih +pQN +bsa +nbT +bwb +aJq +bBr +bCv +bCv +bCv +bCv +bCv +bJq +bKw +bLH +bQf +bNO +bQg +bQf +bQt +bTK +bTK +bVU +bUE +bWM +bXJ +bMK +bMK +bYH +bYH +bVg +bXn +bYG +cfb +cfF +cfb +cik +cjg +cjU +cfb +clM +cfz +cgR +ccw +owT +wKZ +rEB +bkZ +oXJ +roP +oYS +oYS +fxS +bkZ +dlO +gAi +dIt +ccw +ePe +hVs +hVs +hVs +hVs +ccw +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(116,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBD +ayF +abG +aaZ +afc +aco +agU +ahp +ahY +afd +afd +ahB +aiq +ajb +mml +ajF +akN +akY +alE +amU +apH +apX +aqC +anz +gfC +aod +aqf +ahT +ahT +ahT +ahT +ahT +awn +axF +anF +anF +anF +anF +anF +anF +anF +aoa +aJu +aKF +aMf +aNB +aOE +aPW +aRr +aSD +ceh +aVp +aWX +aYB +aZU +aZR +aZR +bbm +beh +bfx +qcm +aBa +aBa +aBa +aBa +aBa +aBa +wql +bsg +yhz +ouQ +fTC +nbT +aJq +aJq +bBu +bCv +bAT +bDL +bDq +bCv +bJs +bKy +bLK +bLK +bML +bOT +bQi +bRs +bSC +bUO +bUG +bVO +bWO +bXK +bLK +bZz +caw +bYH +bVo +bXq +bZe +cfb +cfH +cSL +cim +cim +ceo +cfb +cfa +cje +cgR +ccw +owT +fJZ +fPU +lHk +uzi +bkZ +qeF +naN +xrc +bkZ +lpA +xuz +dIt +uvd +ciZ +wbd +kVO +hLJ +ciZ +ccw +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(117,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +adR +abo +adR +adR +adR +abI +acM +adh +adM +afe +agI +ahQ +ait +aje +eFx +alj +afM +akZ +alM +amV +apc +aqr +aqC +anT +aoA +apn +aqe +arf +arf +arf +arf +arf +arf +arf +arf +arf +dgz +dgz +dgz +dgz +dgz +dgz +aJn +aJn +aJq +aJq +aOE +aPS +aRq +aSC +aUa +aVo +aWW +aYA +aYz +bbn +bcg +aZU +beg +aYB +qOB +qBi +ayF +ayF +ayF +ayF +ayF +fxV +fxV +fxV +fxV +fxV +fxV +aJq +aJq +bBt +bCv +bDH +bFf +bGB +bCv +bJs +bKy +bLJ +agd +bNP +bOS +bQh +bRr +bSB +bTL +bUF +bVN +bWN +bXM +bYJ +bRi +bZy +cbu +bVm +bXp +bYO +cfc +cgO +ccj +cBM +cdU +cSZ +ckL +cmF +cje +cgR +uvd +oxl +gAi +fPU +lHk +uzi +vnu +mDB +pRx +mDB +vnu +gIy +gAi +izw +jrl +peI +gBa +ciZ +ciZ +cMp +ccw +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(118,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +adR +aaY +abJ +abR +adR +acq +ahX +adi +adP +ahK +ahK +ahR +aiv +adg +xSW +ajI +alC +ala +alN +amW +apv +aqt +aqF +anz +aoB +aod +aqe +arf +aqa +atf +arf +aqa +atf +arf +aqa +atf +dgz +tqg +ujF +ujF +ujF +dgz +ayF +aJn +aJq +aJq +aOE +aPX +aRs +aSE +aUc +aVm +aWY +aYC +aYA +bbp +bbp +bfx +bbp +bfz +sqp +aZV +aZV +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +fxV +aJq +aJq +aXf +bCv +bDK +bFi +bGE +bCv +bJs +bKy +bLM +alk +bNQ +bOV +bQk +bRt +bSD +bTM +bUH +bVQ +bVZ +bXM +bLK +cew +bTh +cdt +bVq +bXI +bZg +bZD +cbq +ccl +cdm +cio +cjY +ceq +clQ +cje +cgR +uvd +oxl +gAi +daY +rGC +rGC +kOV +xol +etE +dDc +pSn +uml +uRx +sra +uvd +hVs +sTI +iaZ +hVs +hVs +ccw +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(119,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +abo +abk +abk +abk +adR +agq +agV +aaZ +aaZ +agX +aih +aaZ +aaZ +aaZ +xGQ +ajN +amc +alo +alY +ans +ary +agn +anA +anz +gfC +aod +aqe +arf +apY +ate +arf +apY +ath +arf +apY +ath +dgz +fvY +dvc +dzi +vsM +dgz +ayF +aJn +aLY +aLY +aOG +aPR +aPR +aPR +aUb +aVq +aWM +aYr +aZV +bbo +bch +bdi +bbw +bfy +bgS +bik +aZV +aZV +bmx +bmx +bmx +bqH +bsh +bsh +bsh +bsh +bqH +aJq +aJq +gnf +bCv +bDJ +bCt +bGD +bCv +bJs +bKy +bLL +bOd +bNQ +bOU +bTO +bRr +bSE +bTN +gfJ +bVP +bWP +bXL +bLK +bRj +bTg +bUm +bVp +bXH +bUm +bZC +cbp +cck +cin +cjj +cjX +ckO +ckH +cja +cny +ccw +jqS +lfB +hNw +wKZ +wKZ +wKZ +vUs +wKZ +wKZ +uge +wKZ +mqh +tQY +ccw +dSF +vLM +sAQ +hVs +gAE +ccw +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(120,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +adR +abO +wlI +abO +abV +ags +ags +adj +afQ +afr +akc +aik +akh +adR +esL +aiG +amf +anr +aqN +arC +asq +agn +anA +anz +aoD +aod +aqe +arf +aqn +ath +arf +auw +ath +arf +ayV +ath +dgz +aCd +qIw +gfD +woR +dgz +aJw +aJw +aMh +aJq +aOE +aJn +ayF +aPR +aUe +aVs +aXa +aYD +aZX +baf +bdk +mRQ +bek +bfB +bgU +bdk +bjF +blc +bmz +bnY +bpk +bqJ +bsj +btI +btd +bwr +bqH +aMm +aJq +bBv +cBy +bDM +bCw +bDr +bCy +bGP +bHn +bLN +alX +bNS +bOX +bQm +bRv +cGG +glY +bTP +bVX +bWQ +bWQ +bWQ +bRm +bTj +caA +cer +ccs +bZu +cfb +cfb +cgS +ciq +cfb +cfb +cfb +clR +cgR +cgR +uvd +fqD +jsT +xfY +xaS +fHs +dhT +gcj +fHs +fHs +gcj +wun +rvC +jfm +tPe +tPe +okG +ccw +ccw +ccw +ccw +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(121,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +abo +abO +abO +abO +abO +abO +abO +adk +abo +afD +afU +aju +aki +akk +akq +lwN +amq +agn +amb +ant +agn +agn +anA +anz +aoC +aod +aqe +arf +asd +atg +arf +asd +awo +arf +asd +aAb +dgz +iVU +aDK +vHj +eVC +dgz +aJv +khV +aMg +bHt +aOE +aJn +ayF +aPR +aUd +aVr +aWZ +aYq +aZW +aZG +bej +bdj +bej +bfA +bgT +bil +bej +blb +bmy +bnX +bpj +bqI +bsi +btH +btc +bwq +bqH +aJq +aJq +aXf +bCv +bAU +cAL +bFg +bFs +bJt +bKy +bLK +bMK +bNR +bOW +bQl +bRu +iYC +rca +bUI +bVR +bWQ +bOO +bQe +bRk +bTi +caA +bVr +bXN +bZt +bZE +cbs +cCT +cdn +cej +cep +ces +clN +ccm +ckF +ckF +tlu +wlf +rUG +ccw +ccw +ccw +lzX +hVs +hVs +kNt +wIY +wjz +iGX +iJM +kbT +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(122,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +adR +abl +abN +abN +abN +abN +acO +adl +aet +agy +aha +aah +afo +adR +agD +agF +gyr +alq +amd +anu +asb +agn +aqH +anz +aoF +apo +aqh +arh +asg +atj +aul +auR +atj +mps +tKk +atj +aAX +azc +atj +aFe +aul +aHT +aJy +aJy +aMj +aJq +aOE +aJn +ayF +aPR +aPR +aPR +aXc +aPR +aZV +baq +baQ +wcB +bcQ +bfC +bgV +bim +bjG +aZV +bmB +bnZ +bpl +bqH +bsl +btK +buW +bwt +bqH +aLY +aLY +bBx +bCv +apG +bFk +bDs +bCv +bJs +bHo +bLK +bMK +bMK +bOY +bQn +bRx +bMK +bUP +bUJ +bVS +bWQ +bXP +cBI +bRS +bTH +caA +bWh +cdt +bZA +cfh +cfM +cco +cdp +cel +cyM +ckT +cgU +cco +cgU +cgU +cis +cjN +wAN +cgR +uvd +hVs +ulB +cXi +cXi +rEJ +hVs +hhc +ccw +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(123,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +abo +abm +abP +abS +abS +abS +acP +adm +afR +agx +agZ +ahI +aiw +adR +vIo +ake +ame +aaQ +amg +anv +apQ +agn +anA +anz +aoE +aod +aqg +aun +asf +ati +auk +aux +avt +axL +bbl +azT +nZE +ker +aDG +aFd +auk +aHH +aJg +aKo +aLO +aJq +aOE +aJn +ayF +ayF +aPR +aVt +aXb +aYo +aZV +bao +baP +asD +bcP +cBo +bgS +bbw +bbw +aZV +bmA +bmx +bmx +bqH +bsk +btJ +buV +bws +bqH +aJq +aJq +byW +bCv +bAV +bCv +bCv +bCv +bJs +bKz +bLK +bQr +bNT +bOV +bQo +bRw +bSF +daI +bTP +bRA +bWQ +bXO +bQq +bRo +bTG +caA +bVK +bYb +bZw +cap +ctR +ccn +cdo +cek +ccw +cet +cfd +cfB +cfI +cgQ +cjS +cjN +wAN +cgR +twn +sAQ +jIb +qXZ +dVX +dVX +hVs +hVs +ccw +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(124,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +adR +abn +abH +abn +abn +abn +adR +adR +adR +agA +afU +ahF +aiz +adR +akf +akJ +yhx +agn +agn +agn +agn +agn +anC +anU +anC +cSA +aqe +arf +arf +arf +arf +arf +ltK +xAv +awr +awr +ruo +aAh +aAh +aAh +aAh +aAh +aAh +aAh +aLR +aJq +aOE +aJn +ayF +ayF +aTQ +aVd +aXe +aYp +aZV +bbv +bcm +bcm +bem +bfD +bgW +bfD +bjI +aZV +bmC +boa +bpm +bqH +bsn +btL +buY +buY +bqH +ftE +aJq +aXf +bCv +bDP +bCv +bAw +bHV +bJw +bKC +bLK +bMN +bNV +bOV +bQo +bRw +bSF +daI +bVW +bVY +bWQ +bWQ +bWQ +bWQ +caD +bWQ +ccw +ccw +cey +ccw +ccw +ccw +ccw +ccw +ccw +ccw +ccw +ccw +ccw +ccw +cDl +cjN +hGf +iXc +ccw +ccw +ccw +ccw +ccw +uvd +uvd +uvd +ccw +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(125,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +abq +abq +abq +abT +abW +abq +abq +aff +aeU +ajA +akd +adB +agl +uHp +agQ +agN +akw +alb +alG +amr +amY +amY +ajp +ajp +aoG +cSA +aqe +arf +aqo +atm +fPL +arf +avv +awu +awr +aAd +tkq +aAh +aDL +aAh +aGk +aAh +aJz +aAh +aLQ +aJq +aOE +aJn +ayF +ayF +aJw +aVu +aXd +aYE +aZV +bbu +bbw +bbw +bbw +bbw +bbw +bbw +bjH +aZV +bmx +bmx +bmx +bqH +bsm +btL +buX +buX +bqH +aJq +aJq +bBy +bzs +bDO +bFl +bGH +bHU +bJv +bKB +bLK +bMM +bNV +bOQ +bQj +bRy +cfN +bUQ +bUK +bVT +bWR +bXQ +cfN +bZF +bXT +bYK +ccv +cdw +cex +caG +cfN +cbF +bLQ +cdx +bOh +bOh +bOh +bOh +bOh +ccw +cDm +cjP +ckF +cDJ +ckF +cpE +cjR +crW +csg +crk +crk +crk +ayF +ayF +ayF +ayF +azl +azl +azl +aAu +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(126,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +abq +adN +aeu +aez +aci +acs +acR +afh +afV +agB +ahd +ahI +akO +abp +ajj +ajP +aky +alc +alI +ams +amZ +amZ +cqQ +anW +aoH +cSA +aqe +arf +asm +atm +blU +avg +awp +axN +awr +awr +haM +aAh +aDQ +aAh +aGl +aAh +aBy +aAh +rqf +aJq +aOE +aJn +ayF +ayF +aJn +aVv +aXg +aYF +aZV +nZL +bcn +tgH +ben +bfE +bgX +bbw +bjJ +bld +bmD +cTD +bmD +bqK +bso +btN +buZ +buZ +bqH +byN +aJq +bBA +bCz +bDQ +bFn +bGJ +bHX +bJy +bKE +bLP +bMP +bIG +bJB +bKV +bRB +bSI +bUS +bUM +bVV +bVV +bVV +bWT +bZG +caE +cbA +ccy +bZH +bZI +bQu +bOd +cgW +cit +axs +ckb +ckV +clU +clU +bOh +ccw +coZ +cgU +cgU +cDK +crw +cjO +ccw +crX +cfK +ayF +ayF +crk +ayF +ayF +ayF +ayF +aAu +aAu +aAu +aAu +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(127,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aaL +adO +acr +acQ +adn +agw +abq +afg +afU +afU +ahc +ahH +akR +abp +aji +ajO +akw +ajn +alH +amr +amY +amY +ajp +anV +ajo +cSA +aqe +arf +ari +asu +mPk +aun +avR +xAv +ofU +awr +sFW +aAh +aDM +aGx +aDM +aDM +aDM +aAh +aMm +aJq +aOE +aJn +aJn +aJn +aJn +aJs +aXf +aYk +aZV +aZV +aZV +aZV +aZV +aZV +aZV +aZV +aZV +aZV +bmx +bmx +bmx +bqH +bqH +btM +bqH +bqH +bqH +aJq +bHt +bBz +bzs +bzs +bFm +bGI +bHW +cBD +bKD +bLO +bMO +bIF +bOZ +bQp +bRA +bTP +bOd +bOd +bOd +bOd +bOd +bXS +bOd +bXU +cbA +ccy +bZH +bZI +cfi +bOd +cgV +bMQ +crk +bQA +ckU +clT +cmU +bOh +ccw +cpa +cjc +cqo +cDL +cjk +cjm +ccw +ccw +cig +ayF +ayF +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aAu +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(128,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aaM +abr +abQ +abU +acj +acv +dJL +afj +afX +agC +ahf +aks +akS +abp +ajl +ajR +akw +ald +alJ +amt +ajp +ajp +ajp +anY +ajo +apq +aqe +arf +arf +arf +arf +arf +ltK +axP +azb +aAi +uIO +aCn +xBk +dtx +aGm +aHV +aDM +hIM +aJq +aJq +aJq +aJr +aJr +aJr +aJr +aJr +aXh +aYG +aZY +aYG +aYG +bdn +bep +aYG +aYG +aYG +aYG +ble +bmE +bmE +bpn +bqL +bsp +btO +bva +bwu +bwu +bwu +kPj +bBB +eBX +bzs +bFp +bGJ +bHX +bJA +bKG +bLK +bMR +bIH +bJF +bRy +bTQ +ecE +bOd +bOd +bOd +bOd +bOd +bXS +bOd +bOd +bOd +bOd +bOd +bOd +bOd +cfQ +cgY +ciu +aAg +ckb +ckW +clU +clU +bOh +ccw +ccw +cpI +ccw +cDL +cjl +cjQ +cjV +cig +ayF +ayF +ayF +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aAu +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(129,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aaO +adQ +act +acu +acu +acF +abq +afi +afW +afW +ahe +ahJ +ais +abp +ajk +ajQ +akw +ajn +alH +amr +amY +amY +ajp +anX +ajo +app +aqi +arf +ask +atm +fPL +arf +awq +axO +aza +kmw +xrN +aAh +aAh +aAh +aAh +aAh +aDN +aAh +aMo +aNC +aJq +aJq +aJq +aJq +aJq +aJq +aJq +aJq +aLY +aJq +bco +aJq +beo +aJq +aJq +aJq +aJq +aJq +aJq +aJq +aJq +aLY +aJq +bAk +aJq +aJq +aJq +aJq +bAj +aJq +aKG +bzs +bFo +bDu +bFt +bGQ +bHp +bLK +bMQ +bNY +bPa +bYN +bRC +bSK +bOd +bOd +bOd +bOd +bOd +bXS +bOd +bOd +bOd +bOd +bOd +bOd +bOd +apa +cgX +apF +crk +bOh +bOh +bOh +bOh +bOh +cig +cpb +ciZ +cqp +cDN +cjT +cgR +crP +cig +ayF +ayF +ayF +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aAM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(130,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +abq +aes +aey +aeD +afs +acL +acS +afk +afZ +agE +ahh +ahM +aiC +abp +aiY +ajE +ajH +akn +ale +alD +ana +ana +fMp +amu +ajo +aps +aqk +arf +aqo +atm +aHw +avn +awv +axX +aze +awr +flE +aAh +aDU +aBz +aBz +aAh +dTI +ujv +aJq +aJq +aJq +aJq +aRt +aJq +aJq +aJq +aJq +aJq +aLY +aJq +bcp +aJq +beq +aJq +bgY +aJq +aJq +aJq +bAi +bmS +bmS +bpC +bqN +aNr +aJq +aJq +bxL +byX +aXh +bmE +bCA +bzs +bCC +bDA +bFx +bGW +bKI +bLQ +bMT +bOb +bPd +cBF +bRD +bSK +bOd +bOd +bOd +bOd +bOd +bXS +bOd +bOd +bOd +cBJ +bOd +bOd +bOd +bOd +cha +civ +axs +ckb +ckY +clW +clW +bOh +cig +cig +czg +cig +cDN +crh +crA +crR +crY +azj +crk +ayF +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aAu +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(131,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +abq +abq +abq +abq +abq +abq +abq +afg +afY +afY +ahg +ahL +aiu +abp +ajm +ajS +ajn +ajT +akA +amr +amY +amY +ajp +anV +ajo +apr +aqj +arf +ark +asu +xPk +aun +awt +awr +awr +azX +aAZ +aCe +aDT +cPn +cPn +mkO +uQS +aAh +aJC +aJC +aJC +aQg +bYP +aJC +aQg +aJC +aJC +aQg +aJC +aJC +aHP +aHP +aHP +bfF +bfF +bfF +bfF +bfF +bfF +bfF +bfF +bfF +bqM +brV +bof +bwv +bvj +bvj +bvj +bvj +bvj +bvj +bCB +bCP +bvj +bvd +bKH +bLK +bMS +cfQ +bPc +bQs +bTR +bSJ +bOd +bOd +bOd +bOd +bOd +bXR +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bOd +cgZ +bSK +crk +bQA +ckX +clV +cmV +bOh +cig +crk +nVR +crk +cDN +cqY +cqY +cqY +cig +crk +azn +ayF +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +dIH +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(132,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +abo +aeB +afm +agb +agG +ahi +ahN +aix +abp +ajp +ajU +ajn +trb +ajn +amr +ajp +ajp +ajp +ajp +ajo +apt +aqm +arf +arf +arf +arf +arf +awz +awr +awr +avG +aBA +aAh +aDP +aBx +aBx +aAh +qqs +sYR +aMq +adq +aQb +aPZ +aRu +kAH +aKR +tCa +aXi +hgO +baa +aJC +bcq +bcq +bcq +bfF +bha +bio +bgF +blf +bmF +bob +bnB +bfF +bqR +brX +bof +bwx +bvj +bwB +bxa +byZ +bzI +bAX +bCF +bDB +bFB +bvd +bKJ +bLR +bMV +bTP +bOR +bQv +bRF +bSM +bTS +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bOd +cbD +chb +wzX +aAg +ckb +ckZ +clW +clW +bOh +cig +ayF +ayF +ayF +cDN +ayF +ayF +ayF +ayF +ayF +azP +ayF +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(133,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +abo +aeA +afl +aga +abp +ahj +abp +xJW +abp +ajo +ajo +ajo +ajo +ajo +ajo +ajo +ajo +ajo +aoa +ajo +apt +aql +pRW +pRW +pRW +pRW +avw +awy +nfw +nfw +vaW +wqF +aAh +aAh +aAh +aAh +aAh +aAh +aAh +aKR +aKR +fxe +aPY +kAO +aRx +aKR +iTU +pqe +aPY +aZZ +aQg +aYV +aYV +aYV +bfF +bgZ +bin +bin +bjK +bkK +bkK +bkK +bpD +bqO +bLX +btf +bui +bvi +bww +bwZ +byY +bzH +bAW +bCE +bFv +bFz +bvd +bKH +bLK +bMU +bOc +bPe +bTP +bRE +bUL +cfT +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bOd +cfP +ccz +bSJ +crk +bOh +bOh +bOh +bOh +bOh +ccw +ayF +ayF +ayF +cDL +ayF +ayF +ayF +ayF +ayF +azV +ayF +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aAM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(134,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +asX +abp +abp +adR +abp +lJC +agj +adR +ahl +uHp +aic +ahT +ahT +ahT +ahT +ahT +ahT +ahT +alL +ahT +anb +ahT +ydM +anZ +apu +arf +arf +arf +arf +arf +awA +axT +axW +aAl +cHf +aJC +aDR +aFl +kqI +aHZ +aJC +aKJ +hIL +aKR +wxT +moD +aQd +aQa +aKR +elh +wxT +uBa +bac +aJC +aYV +aYV +aYV +bfF +bhc +bip +bgP +bjL +bkL +bmT +bnD +bpM +bqT +bFD +bJG +bJG +bvl +bwE +bxc +bzb +bzK +bBb +cpG +bDC +bId +bvd +bKH +bLK +bMX +bTP +bPg +bQx +bRF +bSM +bTU +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bOd +bMZ +bTS +caH +cbE +chd +bQy +axv +ckc +clb +clY +clZ +bOh +ayF +ayF +ayF +ayF +awX +ayF +ayF +ayF +ayF +ayF +azV +ayF +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aAu +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(135,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +crk +acU +adr +sXy +aeC +anF +agc +abp +ahk +aoJ +aib +aif +aif +aif +aif +aif +fpz +bkV +jKP +alK +aif +anc +anc +anD +aoI +arf +eSe +asN +aur +avy +nSt +axS +azk +aAk +tvi +aJC +aDY +aDY +kqI +aKR +aJk +aKR +aKR +aKR +aKR +aKR +aKR +aKR +aKR +aKR +aKR +aKR +bab +aJC +ucq +aYV +ber +bfF +bhb +bip +bjO +bip +bmG +bip +bnC +bpF +bqS +brY +bwz +bwy +bvj +bza +bxb +bvh +bCD +bAY +bCH +bDR +bIc +bvd +bKH +bLK +bMW +bOe +bPf +bQw +bRG +bSN +bPg +bTS +bTS +cCE +bWa +bTS +bTS +bTS +bYL +bTS +cdB +caF +cbB +cfT +chc +bMQ +crk +bQA +cla +cBP +cmW +bOh +ayF +ayF +axR +ayF +awX +ayF +ayF +ayF +ayF +ayF +azV +ayF +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBD +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(136,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +crk +abp +abp +abp +abp +mxn +abp +abp +ahn +ahn +ahn +uhm +ahn +aiA +ahn +grc +anE +aod +ahn +apx +ahn +ahn +ahn +ahn +ahn +arf +oAB +eQb +aut +arf +aXF +awr +awr +aAn +rqk +aJC +aEc +aFk +aGw +aKR +aJC +aKr +aKR +aKR +sLj +sLj +vcN +aKR +aKR +aKR +sLj +aKR +aKR +bbx +aYV +aYV +tkB +bfF +bhd +bis +bjR +bis +bmI +bod +bpt +bfF +bqV +bEe +bBL +bwA +bvj +bAl +bAl +bvh +bzS +bBc +bCJ +gZG +cCp +bvd +bKH +bLK +bMZ +bOg +bPi +bQz +bRJ +bUN +bTV +bUT +bWc +bWU +bXV +bYT +bZK +cfT +cbG +ccA +cdC +ceB +cbC +cez +chf +cix +axv +ckd +clc +clZ +clZ +bOh +ayF +ayF +ayF +ayF +awX +ayF +ayF +ayF +ayF +ayF +azP +ayF +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aAu +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(137,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +abp +crk +nVR +crk +abp +aBM +ayF +ahn +nQi +ahn +uei +ahn +grc +anE +aod +aoK +oyX +aqp +ahn +tzQ +pgf +gzf +eQb +eQb +eQb +lUS +aun +avz +awr +awr +aAn +jGW +aJC +aJC +plC +oAb +aJC +aJC +aKq +aKR +aNF +hOv +oax +oxm +aSH +aKR +rmN +eJa +hSZ +aKR +aQg +aYV +aYV +bes +bfF +bfF +bir +bjQ +blh +bfF +bfF +bfF +bfF +bqU +bsq +bvj +bvj +bvj +bvj +bvj +bvj +bvj +bvd +bFu +jex +bvj +bvd +bKH +bLK +bMY +bOf +bPh +bQy +bRI +ceA +bPh +bQy +bRI +cCF +bPh +bQy +bRI +bQy +bPh +bQy +bRI +ceA +bVO +bLK +che +bLK +crk +bOh +bOh +bOh +bOh +bOh +ayF +ayF +ayF +ayF +awX +ayF +ayF +ayF +ayF +ayF +azV +ayF +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aAu +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(138,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +bBR +ayF +ayF +ayF +adR +aBM +ayF +ahn +ahn +ahn +tAH +ahn +eMs +anG +aoe +aoL +apy +aqq +ahn +qLR +oIW +arf +kmS +ast +eQb +auv +arf +avA +axW +azo +aAp +uxY +aBC +aCt +aEA +aGz +aIb +aJC +aKN +aKR +aKR +aOJ +oIJ +unA +aKR +akH +aUg +bFC +hSZ +aKR +bbx +aYV +aYV +bet +bfH +aiP +wbE +bhh +wbE +bmJ +bof +bpu +bqP +bsy +bEe +bvh +ajv +bxN +bze +bAp +bvh +bCG +bBd +bFw +bDD +bFJ +bvd +bKH +bzs +avm +ayF +avm +ayF +avB +ayF +avm +ayF +avB +awd +awe +awN +aws +awN +awe +awN +aws +awN +awN +ksp +chg +ksp +mbP +mbP +mbP +mbP +mbP +mbP +mbP +mbP +mbP +mbP +tMj +ayF +ayF +ayF +ayF +ayF +azV +ayF +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aAM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(139,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +ayF +ayF +ayF +crk +crk +ahn +ahn +khB +ahn +ahn +ahn +ahn +ahn +arf +arf +arf +asd +arf +arf +arf +arf +hlV +oHB +azf +aAo +vyp +aBB +aBB +aBB +aGy +aIa +cNE +aKM +aMu +aMu +feG +tif +aMu +aMu +aMu +jgA +aSq +aKR +bad +bby +aYV +aYV +bet +bfG +bhe +bit +bjS +tCd +bli +boe +bli +bpN +bqX +bEe +btg +bDR +bDR +bDR +bDR +bzc +bDR +bDZ +bCK +bFy +bFF +bvd +bKH +bzs +avm +bOh +bPj +bQA +bPj +bOh +bPj +bQA +bPj +bOh +bPj +bQA +bPj +bOh +bPj +bQA +bPj +bOh +ayF +bMK +cyG +bMK +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +azV +ayF +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aAu +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(140,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +ayF +ayF +ayF +ayF +ayF +ayF +dFX +wWW +dqb +lCo +ohq +wXl +iou +pkF +xZL +wig +str +rrM +clO +ahC +ahP +oZl +awB +att +azh +fHG +fHG +kxf +ufD +alP +aGI +aId +aJD +aKP +aMx +aMx +aQe +aOL +aMx +aMx +aMx +aMx +rqE +aKR +aZb +aJC +aYV +aYV +bet +bfG +bhe +bhh +bjU +blk +blk +boh +biu +bpO +bqY +bss +btg +buk +bvm +bDT +buk +bvh +bzU +bBe +bCS +bDE +bFK +bvd +bKH +bzs +avm +bOh +bPl +bQB +bRL +bOh +bTX +bUV +bWd +bOh +bXX +bYV +bZL +bOh +cbI +ccC +cdD +bOh +ayF +bMQ +cyG +bMK +bMK +bMK +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +azP +ayF +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aAM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(141,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +asY +ayF +aBM +ayF +ayF +ayF +ayF +ayF +ayF +uEx +ulM +wcR +uzs +uzs +uzs +uzs +uzs +ecg +jLT +veS +arm +fHG +aya +fHG +fHG +auB +atZ +azg +azp +fHG +aCu +qOc +alP +aGH +aIc +aJC +aKO +aMw +aNI +aKR +aKR +acN +acN +acN +acN +acN +aKR +aKR +aJC +bcr +aYV +bet +bfG +bhe +bhh +bjV +blj +bmK +bog +bog +bhh +bsx +bsr +bvh +bwD +bDR +bDR +bAq +bvj +bCQ +bDW +bCP +bvj +bvj +bJC +bKH +bzs +avm +bOh +bPk +bPm +bPm +bOh +bTW +bUU +bTW +bOh +bXW +bYU +bXW +bOh +cbH +ccB +cbH +bOh +ayF +bMQ +cyG +cKT +cyG +fNu +crk +crk +crk +crk +crk +crk +crk +crk +crk +crk +crk +crk +crk +crk +azV +crk +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aAM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(142,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +uEx +azm +gvX +qWV +con +oVo +con +con +eVJ +ujS +aqs +coh +fHG +fHG +fHG +fHG +pPi +fHG +ayb +hWd +fHG +aCv +mbU +alP +aGJ +aIe +aJC +aJC +aJC +aJC +aJC +aJC +aXj +aVy +aSY +aVy +xqG +acN +bah +aJC +aYV +bdo +beu +bvk +biu +biu +bjT +blm +bmL +boi +bpw +ium +bsx +btX +bvj +bwG +bxR +bxR +bvj +bvj +bzW +bDZ +bCT +bGR +bIj +bJC +bKH +bzs +avm +bOh +bPm +bQC +bPm +bOh +bTW +bUW +bTW +bOh +bXY +bYW +bXW +bOh +cbH +ccD +cbH +bOh +ayF +bMQ +cyG +bMK +bMK +bMK +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +azV +ayF +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBD +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(143,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +uEx +stF +gvX +con +con +con +con +con +eVJ +dqb +qeA +ahm +fHG +fHG +fHG +fHG +pPi +fHG +ayb +hWd +fHG +sci +sEi +alP +aGJ +aIe +aka +aLU +aKQ +aNu +aJC +aaz +egt +aQc +aSZ +aQc +qaY +acN +bag +aJC +aYV +aYV +bet +bfJ +bhh +bhh +bgQ +bll +bhh +bhh +bpv +bhh +bsx +btV +bvh +bwF +bxQ +bxQ +bAr +bvj +bzV +bDZ +bzf +bDR +bIi +bJC +bKH +bzs +avm +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +ayF +bMK +axm +sUh +aAg +aAg +aAg +aAg +msM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +azV +ayF +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ctZ +ctZ +ctZ +ctZ +ctZ +ayF +ayF +ayF +aBS +ayF +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aCm +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(144,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +dFX +lnk +gvX +wQg +con +con +con +fyS +eVJ +dqb +veS +ahs +sJI +ahO +fHG +eAJ +rvr +nLu +hcA +ryr +fHG +aCu +puh +alP +aGA +aHS +aJx +aJx +aMi +aNE +aOO +aQi +aRz +aSF +aQc +aQc +aXl +aKR +bai +aJC +aYV +aYV +bet +bfH +qTV +bhh +bhg +bln +bmM +boj +bof +bhh +bsx +btV +bvj +bwI +bxT +bxQ +bAt +bvj +bCM +bDZ +bDR +bDR +bIl +bJC +bKH +bzs +avu +avx +avx +avx +avx +avx +avx +avx +avx +avx +avx +avx +avx +aww +ayF +ayF +ayF +ayF +ayF +cfj +cfU +cfj +cfj +ckf +cfj +cfj +aAm +aAg +aAg +aAg +aAg +aAg +aAg +aAg +aAg +aAg +aAg +aAg +aAf +aAg +aAg +aAg +aAg +aAg +aAg +aAg +msM +ctZ +ctZ +cuo +cuA +cuM +ctZ +cvk +cvk +cvk +cvk +ayF +ayF +ayF +ayF +cvk +cvk +cvk +cvk +cvk +cvk +cvk +cva +cva +cva +cva +cva +cva +cva +cva +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(145,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +uEx +dqb +gvX +con +con +con +con +con +eVJ +iBv +lZK +fZm +jmV +epD +ghD +hBA +xbn +fHG +reA +lsk +xXi +jAN +jEc +alP +aGL +aHM +aJm +aKz +mjr +akt +aJC +aab +aRg +aQc +aac +aQc +aXk +aKR +aKR +aJC +aYV +aYV +bev +bfK +bhi +bhi +bhi +bfK +bfK +bfK +bof +bhh +bsx +btV +bvh +bwH +bxS +bzh +bAs +bvj +bCL +bxO +bDR +bDR +bIk +bJC +bKH +bzs +bzs +bzs +bPn +bPn +bPn +bzs +bzs +bPn +bzs +eWV +bzs +bzs +bPn +caI +bPn +bzs +bzs +bzs +cfj +cfj +cjp +chh +ciy +cke +clg +cfj +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +azV +crk +crk +crk +ayF +ayF +ayF +ayF +aAm +ctY +cuh +cun +cuz +cuL +cuY +cvj +cvs +cvD +cvk +cvk +cvk +cvk +cvk +cvk +cvX +cvX +cvX +cvX +cwq +cwq +cva +cva +cva +cva +cva +cva +cva +cva +cva +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(146,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +uEx +dqb +kdO +con +con +uSC +con +con +akE +wHk +ewu +pQp +pQp +oqj +jBi +fpl +fpl +jBi +oDN +sEM +sEM +pRs +arj +alP +aGL +aIe +aJC +aKS +aMC +aJC +aJC +aJI +aJI +aSI +aJI +aVA +aJI +aYK +aJI +aJI +bcs +aYV +aYV +bfK +bhk +bix +bjX +blp +bmO +bhi +bpy +bwz +brg +btZ +bvj +bwI +bxV +bzj +bAv +bvj +bCO +bDR +bDR +bDR +bIn +bJC +bKL +bLT +bLT +bLT +bLT +bLT +bLT +bLT +bLT +bUY +pRg +bWe +pRg +bWe +bWe +cdE +bAw +bzs +bAw +caK +cfj +ciB +ckh +chj +ciA +cjr +clh +cfj +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +azV +csD +cta +csD +cua +ayF +ayF +ayF +ayF +ctZ +cui +cuq +cuC +cuO +cuz +cvm +cvt +cvt +cvt +cvL +cvQ +cvX +cvX +cvX +cvX +cva +cva +cva +cva +cva +cva +cva +cva +cvx +cva +cva +cva +cva +cva +cva +ayF +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(147,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +uEx +dqb +gvX +con +con +con +con +con +eVJ +wHk +aqu +aro +aro +aro +aro +aro +aro +aro +aro +aro +aro +aCw +ayF +alP +aGL +aIg +aJH +aKR +aMB +aJC +aOP +aJI +aRA +aVz +aVz +aVz +aVz +aYJ +aJI +mNW +aYV +aYV +aYV +bfK +bhj +biw +bhs +bjM +bmN +bok +bpx +bpP +brf +bhh +bvh +bwJ +bxU +bzi +bAu +bvj +bCN +bEa +pHl +bFA +bIm +bJD +bKK +bLS +bNc +bOj +bNc +bNc +bNc +bNc +bTY +bKH +bzs +bWV +bzs +bAw +bZM +cbJ +ceC +ceC +cfW +cfX +chk +chl +ciz +chi +ciz +cjq +ckg +cmb +cpO +cpQ +cpQ +cpQ +cpQ +czJ +ayF +ayF +ayF +ayF +ayF +ayF +azV +csD +csX +ctg +cua +cua +cua +cua +cua +ctZ +ctZ +cup +cuB +cuN +cuZ +cvj +cvj +cvj +cvj +cvj +cvP +cvj +cvj +cvj +cvj +cva +cva +cva +cva +cvp +cwv +cvr +cvp +cvl +cvr +cwv +cvp +cva +cva +cva +ayF +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(148,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +dFX +jMW +gvX +wQg +con +con +con +fyS +eVJ +wHk +aqu +aro +aro +aro +aro +aro +aro +aro +aro +aro +aro +aCw +ayF +alP +aGL +aIe +aJI +aJI +aJI +aJI +aJI +aJI +aRC +aSK +aVz +aVz +aVz +aYL +aJI +bbz +aYV +bdq +aYV +bfK +bhl +biy +bjY +bjN +bkO +bmU +bnH +bqQ +bsx +bhh +bvj +bvj +bxR +bxR +bvj +bvj +bCQ +bEd +bof +bof +bof +bJE +bJE +bJE +bNd +bIJ +bPo +bQE +bRM +bOr +bTZ +bKH +bAw +bAw +bAw +bAw +bzs +bzs +bzs +ccF +cdG +ceE +cfl +cfZ +cki +cld +eHI +cjt +csq +xEu +wHz +cmd +cmd +cmd +ayF +ayF +ayF +ayF +ayF +ayF +ayF +csD +csO +csD +czk +cti +cua +cua +ctw +ctH +ctQ +cuc +cuj +cuj +cuE +cuQ +cuj +cvk +cvw +cvw +cvG +cvM +cvS +cvZ +cvG +cvw +cvw +cvf +cwh +cwm +cwr +cvp +cwx +cwj +cwu +cAV +cAZ +cvl +cvl +cva +cva +cva +ayF +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(149,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +uEx +sth +gvX +con +con +con +con +con +eVJ +wHk +aqu +aro +aro +aro +aro +aro +aro +aro +aro +aro +aro +aCw +ayF +alP +aGN +aIh +aJI +aKT +aMD +aNM +aOI +aJI +aRy +aSJ +aTM +aVB +aVz +aVz +baj +bbz +aYV +bdp +mvt +bfK +bfK +bfK +bfK +bfK +bfK +bfK +bnF +bqQ +bsx +bhh +bfJ +bhh +bhh +bhh +bhh +bhh +bzX +bBm +bof +bGT +bIo +bof +tRe +bLU +bNd +bII +bOr +bQD +bLY +bMa +bTZ +bKH +bzs +bAw +bXZ +bAw +bZN +caK +bzs +ccE +cdF +ceD +cfk +cfY +rfW +ckj +cjs +cle +cli +uPT +cmY +cme +cop +cmd +cmd +cqs +ayF +ayF +ayF +ayF +ayF +csD +csN +csV +ctb +cth +cua +ctr +ctu +ctG +ctP +cub +cuj +cur +cuD +cuP +cvc +cvk +cvu +cvu +cvu +cvu +cvR +cvY +cwb +cvu +cvu +cva +cwg +cwl +cwr +cvl +cww +cwD +cvv +cvv +cAY +cBb +cBd +cva +cva +cva +ayF +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(150,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +uEx +wag +gvX +con +con +voW +con +con +eVJ +wHk +aqu +aro +aro +aro +aro +aro +aro +aro +aro +aro +aro +aCw +ayF +alP +aGB +aIf +aJA +aKC +aKC +aKC +aON +aQk +aRD +aSM +aVD +aVE +aXm +aVz +juG +bbz +aYV +bdp +aYV +bfL +bhn +biz +biz +biz +bmR +bfL +bol +bqQ +bsx +bst +bfJ +bhh +ajB +bwK +bhh +bhh +bhh +btV +bof +bGV +bIp +bof +bKM +bLW +bNd +bOn +bOr +bOr +bRO +bSQ +bTZ +bUZ +bLT +bLT +bLT +bLT +bLT +caM +cbL +cbL +cdI +ceG +cfj +cgb +chn +ciE +cjv +clj +ckk +cmf +cna +cnC +cor +ciM +cpN +cqt +ayF +ayF +ayF +ayF +ayF +csD +csU +csW +ctc +ctc +cto +ctt +cty +ctJ +ctT +cue +cul +cuu +cuG +cuS +cve +cvo +cvz +cvz +cvI +cvz +cvT +cBS +cwc +cvz +cwd +cwf +cwj +cwo +cwt +cwu +cwA +cAR +cAS +cvv +cBa +cBc +cBe +cva +cva +cva +aCq +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(151,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +oDb +ayF +ayF +ayF +ayF +ayF +ayF +uEx +tAC +uAH +unR +unR +dCr +unR +unR +hzK +iYE +aqu +aro +aro +aro +aro +aro +aro +aro +aro +aro +aro +aCw +ayF +alP +aGL +aHY +aQj +iNn +aMk +aNK +aOM +aQj +aRB +aSL +aTN +cCq +aVz +cAg +bak +bbz +aYV +bdp +cBm +bfL +bhm +bhm +bhm +bhm +bkP +bmV +boc +bqW +brh +bua +bua +bua +bua +bua +bua +bhh +bhh +btV +bof +bGU +bqQ +bof +fTg +bLV +bNd +bOm +bPp +bQF +bRN +bSS +bUa +bNc +bNc +bOj +bNc +bNc +bZO +caL +cbK +ccG +cdH +ceF +cfj +cga +chm +ciD +cju +clf +csr +cme +cmZ +cme +coq +cmd +cmd +cqs +ayF +ayF +ayF +ayF +ayF +csD +ctb +csV +ctb +ctj +ctk +cts +ctx +ctI +ctS +cud +cuk +cus +cuF +cuR +cvd +cvn +cvy +cvy +cvH +cvy +cvy +cvy +cvy +cvy +cvy +cwe +cwi +cwn +cws +cwn +cwz +cwE +cvv +cvv +cvv +cvp +cvl +cva +cva +cva +ayF +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(152,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +dFX +xaB +mgF +mgF +mgF +vAl +meb +meb +meb +iMv +vmQ +pQp +pQp +pQp +grA +fpl +fpl +gbh +sEM +sEM +sEM +aCy +arj +alP +aGL +avI +aJK +aKV +tMl +aMl +aMF +aJI +aRG +aSO +aTO +cCq +aVz +aVz +qus +bbz +aYV +bdp +bdc +bfL +beY +bhm +bhm +bhm +bkR +bfL +boo +bqQ +bhg +bua +bvn +bwL +bxX +bsL +bua +bBJ +bhh +bBn +bof +bDF +bIr +bof +bKN +bHT +bNd +bNd +bNd +bNd +bNd +bSU +bUb +bVa +bWf +bWX +bOP +bNd +bTZ +bKH +bzs +bzs +bzs +bzs +cfj +cfj +cfj +cfj +cjx +cfl +cfl +dqu +tXL +cmd +cos +cmd +ayF +ayF +ayF +ayF +ayF +ayF +ayF +csD +csD +csD +csD +cti +ctq +cua +ctA +cuy +ctV +cug +cuj +cuj +cuE +cuU +cuj +cvk +cvw +cvw +cvJ +cvw +cvV +cwa +cvJ +cvw +cvw +cvb +cwk +cwp +cwr +cvp +cwC +cwn +cAT +cAW +cvl +cvl +cvl +cva +cva +cva +ayF +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(153,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayF +dFX +dFX +uEx +uEx +uEx +dFX +uEx +uEx +uEx +dFX +dFX +ayF +ayF +arj +fCx +avD +awC +ayb +eCr +jvd +cEo +xZD +vpY +alP +aGJ +avI +aJI +aJI +aJI +aNO +aOT +aJI +aRF +aSN +aVF +aVF +aVF +aYM +aJI +bbA +aYV +bdr +bdb +bdN +blr +bho +bho +bho +bkQ +bmW +bom +bIq +bri +bsu +bsL +bsL +bvo +bzl +bua +bzd +bhh +btT +bCU +bCR +bqQ +bGX +bCR +edA +bRN +bIK +bPq +bLd +bNd +bST +bOr +bOr +bOr +bWW +bYa +bYX +bTZ +caN +cbM +cbM +cdJ +bzs +cfm +cgc +bAw +ciF +cjw +ckl +clk +clk +bAw +bzs +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +ctp +cua +ctz +ctK +ctU +cuf +cuf +cuv +cuH +cuT +cvg +cvj +cvj +cvj +cvj +cvj +cvU +cvj +cvj +cvj +cvj +cva +cva +cva +cva +cvp +cwB +cvr +cvp +cvl +cvr +cwB +cvp +cva +cva +cva +ayF +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(154,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +arj +auz +avC +vHz +aya +fHG +fHG +xkd +fHG +fHG +gOZ +aGJ +avI +aJL +aKX +aJI +aJI +aJI +aJI +aRH +aVz +aVz +aVH +aXn +aYN +aJI +bbz +aYV +aYV +bey +bfL +bhm +biz +biz +biz +bla +bmY +boq +boq +brj +bpE +btk +bum +bvq +bzn +bua +bBL +bhh +bBC +bCV +bDN +bFM +btR +bDN +bIa +bIf +bIL +bOq +bLf +bRP +bSW +bMH +bNi +bOr +bWZ +bYd +bYY +bZP +caO +cbN +ccI +cdL +ceI +cfo +bAw +bAw +bAw +cjz +ceJ +clm +cmg +cnc +cnD +bzs +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +ayF +cua +ctF +ctM +ctX +cuf +cum +cuw +cuJ +cuW +cvi +cvq +cvC +cvC +cvC +cvN +cvW +cvX +cvX +cvX +cvX +cva +cva +cva +cva +cva +cva +cva +cva +cvA +cva +cva +cva +cva +cva +cva +ayF +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(155,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ads +adS +aeG +ayF +ads +adS +aeG +ayF +ads +adS +aeG +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +alO +arj +arj +arj +pBp +gOZ +cVb +cVb +cVb +cVb +cVb +cVb +aGQ +aIk +aIp +aKW +aMG +aIp +aIp +aJI +aJI +aSP +aUh +aJI +aJI +aJI +aJI +aJI +bcq +bcq +bcq +bfL +bhp +biB +biB +cTL +bkU +bmX +bpE +bpE +bpE +bpE +bti +bul +bvp +bzm +bua +bBK +bwz +bBw +bJG +bDI +bFL +bli +bKO +bHY +bNf +bOp +bPr +bQH +bNd +bSV +bSQ +bNh +bWg +bWY +bYc +bNd +bNd +bzs +bzs +bMb +cdK +ceH +cfn +cgd +ceJ +ccM +cjy +ceJ +cll +ccM +cnb +bHd +ceI +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +ayF +cua +ctE +ctL +ctW +cuf +cum +cuw +cuI +cuV +cvh +cvj +cvB +cvE +cvk +cvk +cvk +cvk +cvk +cvk +cvX +cvX +cvX +cvX +cwq +cwq +cva +cva +cva +cva +cva +cva +cva +cva +cva +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(156,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ads +adT +aeG +ayF +ads +adT +aeG +ayF +ads +adT +aeG +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +crk +alO +arp +alO +anf +anf +anf +anf +anf +cVb +jbf +wrp +fnC +kPd +xiw +aGS +aIm +aIp +aKH +aMI +aIp +aOV +aOX +aOX +aSR +aUi +aVJ +aOX +aiJ +bal +bam +aYV +aYV +aYV +bfL +bhq +bhm +bkb +cTM +bla +bmZ +bpH +bra +bsK +bpE +bpE +buq +bvt +bye +bon +bBN +bEi +bEi +bEi +bDU +bFO +bBN +bKR +bMc +bNd +bNd +bNd +bNd +bNd +bSX +bMI +bNk +bNU +bXb +bWi +bYZ +bZR +caQ +bzs +ccK +ccM +ceJ +ceJ +cgf +ceJ +ccM +ccM +ceJ +clo +cmi +cbQ +cnF +cot +csc +csm +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +ayF +cua +cua +cua +cua +cuf +cuf +cux +cuK +cuX +cuf +cvk +cvk +cvk +cvk +ayF +ayF +ayF +ayF +cvk +cvk +cvk +cvk +cvk +cvk +cvk +cva +cva +cva +cva +cva +cva +cva +cva +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(157,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ads +adT +aeG +ayF +ads +adT +aeG +ayF +ads +adT +aeG +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +crk +cxW +anf +aqv +ayf +dce +uua +awE +tRB +cVb +vCb +wUY +khb +sxs +tal +aCI +aIj +aJB +aKD +aMs +aNL +aOQ +aQf +aRE +aSQ +aVI +aVI +aVI +aYO +aRJ +bbB +aYV +aYV +aYV +bfL +bfL +bfL +bfL +bfL +blg +bmZ +bpG +bqZ +brk +bsv +bsv +bun +bvr +bzo +bon +aFa +bCY +bEh +bCW +bDS +bFN +bBN +bKQ +bMb +bNd +bOr +bOt +bOr +bRQ +bOr +bSQ +bNj +bNs +bXa +bYa +bNd +bZQ +caP +cbO +ccJ +bLS +bLS +cfp +cge +cbK +ciG +bLS +ckm +cln +cmh +cnd +cnE +bPn +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +cuf +cuf +cuf +cuf +cuf +ayF +ayF +ayF +aCf +ayF +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aCo +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(158,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ads +adT +aeG +ayF +ads +adT +aeG +ayF +ads +adT +aeG +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +crk +alO +anf +alO +mAH +jaF +alP +anf +aCG +cVb +cVb +cVb +cVb +cVb +wBd +aGC +aIl +aIq +aia +aMy +aIp +nGf +aQm +fzd +fFA +fFA +aVK +aRJ +aRJ +aRJ +bbB +aYV +aYV +aYV +bfO +bfS +biD +bkd +bfS +cTO +bmZ +bpJ +brc +bsL +bug +btl +but +bvw +bzq +bon +bBP +bCZ +bEk +bFG +bCY +bFP +bBN +bKQ +bMb +bNd +bOt +bOr +bOr +bRQ +bOr +bSQ +bWj +bOm +bXc +bYe +bNd +bZS +caR +bzs +ccL +ccM +ceL +ceJ +cgh +ceJ +ceJ +ccM +ceJ +cAe +cmj +cne +bHd +bPn +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(159,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayB +ayB +ayF +ayF +ads +adT +aeG +ayF +ads +adT +aeG +ayF +ads +adT +aeG +ayF +ayF +ayF +ayF +ayF +ayF +amw +aof +aof +aof +aof +alP +alP +alP +alP +alP +awF +aCG +alP +nhY +aBE +aCz +vEp +aCJ +aGT +aIn +aIp +aKI +aMt +aIp +aOW +aQm +coI +aSS +aUj +sJx +aRJ +aYQ +cBg +bam +aYV +aYV +aYV +aYV +bhr +biC +bkc +bfS +blo +bmZ +bpI +brb +bsL +buf +bvs +bur +bvp +bzp +bon +bBO +bCY +bEj +bCY +bGZ +bFE +bBN +bKS +bMd +bNd +bOs +bOt +bQJ +bRR +bOr +bSQ +bWj +bWj +bWj +bWj +bNd +bzs +bzs +bzs +bMb +bFr +ceK +ceJ +cgg +ccM +ccM +cjA +ceJ +ccM +cdN +bFr +cnG +bzs +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(160,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ayF +ayF +ayF +ayF +csZ +ayF +ayF +ayF +csZ +ayF +ayF +ayF +csZ +ayF +ayF +ayF +ayF +ayF +amw +amw +amw +aoh +aoN +apA +aof +arq +itK +atv +auD +alP +aoQ +cqM +ayg +ayg +ayg +aCA +aFn +aFp +aGW +anf +aIp +fGf +aMA +aIp +aOX +aQm +coI +aST +aUk +sJx +aRJ +aYQ +bam +ssB +aYV +aYV +aYV +beE +bfS +biE +bkf +bfS +cTO +bmZ +bpL +bre +bsN +bre +bvv +bur +bvp +bzr +bon +bBQ +bDa +bEl +bFH +bHb +bIw +bBN +bKT +bMb +bNd +bOt +bPu +bOr +bRQ +bOr +bSQ +bWj +bOm +bXc +bYe +bNd +bZU +caS +cbN +ccN +bHd +bzs +bzs +bKT +bAw +bAw +bFr +ceJ +ccM +ccM +cng +bzs +bzs +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(161,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +abX +jIs +jIs +vZA +crk +uDO +jIs +vZA +crk +uDO +jIs +vZA +crk +uDO +jIs +jIs +jIs +jIs +amv +ane +cxN +aog +aoM +apz +aqw +arr +asw +asw +auE +alP +awG +auF +alP +alP +alP +alP +alP +aFo +aGV +aIp +aIp +aKL +aMz +aNQ +aOX +aQm +lva +nUV +nUV +gbd +aRJ +aYR +ban +ikm +aYV +aYV +bez +bfP +bfS +bfS +bfS +bfS +cTO +bmZ +bpK +brd +bpK +bpK +bvu +bux +bvy +bon +bon +bBN +bBN +bBN +bBN +bHa +bBN +bBN +bKB +bMb +bNd +bOr +bPt +bOr +bRQ +bSY +bMJ +bNl +bNW +bXd +bPu +bNd +bZT +bMb +bFr +ccM +cdN +bzs +cfq +bKT +bAw +ciH +bHd +bzs +bAw +cmk +cnf +bzs +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(162,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ayF +ayF +ayF +ayF +vPs +ayF +ayF +ayF +vPs +ayF +ayF +ayF +vPs +ayF +ayF +ayF +ayF +ayF +amw +amw +amw +aoi +aoO +apB +aqx +art +anf +anf +auF +alP +awH +auF +alP +aAr +aBF +alP +ayF +aus +auu +aIp +sHx +aKU +aME +aNN +aOR +aQh +aRI +aSU +aXo +aXo +aXo +iLJ +bap +ikm +aYV +bci +beB +bfS +bfS +kQk +ipA +gbT +cTO +bmZ +bon +bon +bon +bon +bon +buG +bvA +bon +bAw +bzg +bLS +bLS +bLS +cbQ +bLS +bLS +bKE +caU +bNc +bOj +bPw +bNc +bNc +bNc +bNc +bNc +bNc +bNc +bPw +bNc +bLS +caU +cbQ +cNY +cNY +cNY +cNY +cgj +cNY +cNY +chp +bzs +clp +bzs +bzs +bzs +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(163,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ayB +anO +ayF +ads +adW +aeG +ayF +ads +adW +aeG +ayF +ads +adW +aeG +ayF +ayF +ayF +ayF +ayF +ayF +amw +aof +aof +aof +aof +vCy +aoP +atw +auF +alP +aoP +auF +azr +jez +atw +alP +alP +aFo +aGV +aIp +aJO +aLd +aMN +aNQ +aOZ +aOX +aOX +rdG +aUz +aVM +aOX +aYT +bam +iuR +baR +bcb +bdl +cTJ +cHD +bgo +cTK +cTK +blq +cTS +cTK +bpQ +cTK +slk +btm +buy +bvz +bdO +bLT +bna +bLT +bLT +bLT +bDV +bLT +bLT +bHq +bMe +bIg +bIM +bLT +bLT +bLT +bLT +bLT +bLT +bLT +bLT +bLT +bLT +bLT +caT +cbP +ccO +cdO +cdO +cdO +cnH +czH +czT +czY +cNW +bAw +bAw +clp +kyT +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(164,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ads +adW +aeG +ayF +ads +adW +aeG +ayF +ads +adW +aeG +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +apC +aqy +anf +anf +aty +auF +alP +aAt +jZT +alP +alP +alP +alP +ayf +aFm +aGF +aIq +aIq +aIq +aIq +aIq +aIq +aIq +aIq +aIq +aIq +aIq +aIq +aXS +aIq +aIq +baZ +bck +bdm +bdP +cHE +bdP +bdP +bdP +bdP +bnc +boC +bpV +boC +boC +bto +buL +bvB +cbK +bxg +bzk +bDb +bDb +bDb +bDb +bDb +bDb +bDb +bDb +bIs +bIN +bDb +bDb +bDb +bDb +bDb +bDb +bDb +bDb +bDb +bDb +bDb +bDb +bDb +bDb +bDb +bDb +bDb +cNW +cNW +cQB +czY +cNW +bPn +bPn +bPn +crk +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(165,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ads +adW +aeG +ayF +ads +adW +aeG +ayF +ads +adW +aeG +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +apC +anf +jez +alP +atx +auF +alP +auD +auF +apE +aAs +vbi +alP +aCG +aFr +aGE +aIo +aIo +aIo +aIo +aIo +aIo +aIo +aRK +aIo +aIo +aUx +aVL +aXR +aZc +aZc +baT +bcj +beC +bfT +cHF +biG +blw +blu +bnb +bfT +bor +bpS +bsO +bfV +btn +buH +byf +byf +byf +byf +bDb +bEm +bEm +bEm +bDb +bJH +bKW +bMg +bIh +bOx +bPx +bJN +bRT +aad +bEm +bJN +bRT +aad +bEm +bJN +bRT +aad +bEm +bDb +cfr +cho +bDb +ayF +cNW +cQB +czY +cOT +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(166,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ads +adW +aeG +ayF +ads +adW +aeG +ayF +ads +adW +aeG +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +apC +anf +alP +alP +apE +auG +alP +iWx +auF +apE +anf +anf +noF +aCG +aDZ +aFu +aFu +aFu +aFu +aFu +aFu +aFu +aFu +aFu +aFu +aFu +aFu +aVO +bdp +aYV +aYV +bba +aXq +bfU +bhu +cHG +biI +bkh +biI +cHQ +bfT +boE +bpY +bsQ +box +btx +buU +byf +bzu +bAz +bzu +bDb +bEm +bEm +bEm +bIx +bJJ +bKY +bMi +bNo +bIP +bPA +bJN +bRU +aml +bEm +bJN +bRU +aop +bEm +bJN +bRU +aml +bEm +bDb +cgi +chq +ccQ +ayF +cOT +cQB +czY +cOT +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(167,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ads +crG +aeG +ayF +ads +crG +aeG +ayF +ads +crG +aeG +ayF +ayB +ayF +ayF +ayF +ayF +ayF +ayF +ayF +apC +arA +anf +asx +anf +auF +alP +alP +auF +alP +alP +alP +aCB +aEB +aFs +bbE +aIr +bav +aLf +aNV +qfD +aRO +aQp +aRN +aIt +aUB +aFu +aVN +bdp +bar +bar +aYV +aXq +bfU +bhu +cHH +biH +cHN +blv +bls +bfT +boD +bpY +bsP +box +btw +buT +byf +bzt +bAy +bBS +bDb +bEm +bEm +cBz +bEm +bJI +bKX +bMh +bIt +bOx +bPz +bJN +bRU +amo +bEm +bJN +bRU +amo +bEm +bJN +bRU +amo +cBz +bDb +cgi +chq +ccQ +ayF +cOT +cQB +czY +cOT +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(168,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +atl +ayF +ayB +ayF +ayF +ayF +ayF +ayF +ayF +ayF +apC +alP +alP +alP +dbU +auH +avF +awI +ayc +gcF +asw +asw +aCD +aEa +aFv +aGG +aIu +aJQ +aIt +aIt +qfD +aRO +aIt +aRN +aIt +aUB +aFu +aVZ +aXT +aFu +aFu +bcv +aXq +bfU +bhu +cHI +biJ +bhM +biJ +blx +bfT +boL +bpY +bsR +box +buo +bxd +byf +bzw +bAB +bBV +bDb +bEn +akK +akP +akP +akV +akW +alf +alm +aln +alr +bJN +bRW +amG +bUe +bJN +bWl +aoq +bYg +bJN +bZV +apw +cbS +bDb +cgl +chs +bDb +ayF +cNW +cQB +czY +cNW +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(169,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +aAM +ayB +ayB +oDb +ayF +ayF +ayF +ayF +ayF +ayF +alO +aqz +aru +alP +anf +anf +avE +anf +anf +awD +anf +aty +aCC +aDZ +anf +aFu +aIs +aJP +vZR +aIt +hGH +aYW +aYW +aYW +aYW +aYW +aYW +aVY +aYY +bas +aFu +aYV +cBk +aYV +bht +cHJ +cHL +blw +bjP +blt +bfT +boG +bqa +cIe +box +buo +bvb +byh +bzv +bAA +bBU +bDb +bEm +bEm +bEm +bIy +bJK +bKZ +bMi +bIu +bIO +alx +bLe +bRV +amH +bUd +bVi +bRV +amH +bYf +bVi +bRV +amH +cbR +bDb +cgk +chr +bDb +ayF +cNW +cBN +czY +cNW +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(170,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +ayF +alO +anf +anf +asy +anf +anf +alP +alP +anf +alP +alP +alP +aCE +aDZ +aFu +aFu +aIw +aJS +pJR +aNP +esZ +aOS +aOS +aOS +aOS +aOS +aOS +aWb +aXU +bau +aFu +aYV +aXq +aYV +bfV +cHK +blA +blA +blA +blD +box +cHU +cHZ +cIf +box +btA +bxd +byf +bzy +bAD +bBX +bDb +bEm +bEm +bEm +bIx +bJM +bLc +bMi +bNo +bOx +alV +bQM +bMi +bOx +bRZ +bVj +bMi +bOx +bRZ +bZa +bMi +bOx +bRZ +cTY +cTZ +chu +ccQ +ayF +cOT +cQB +cAa +cOT +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(171,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +alO +aqA +arz +alP +anf +anf +alP +awJ +anf +alP +aAv +tJS +aCE +aDZ +aFu +aHb +aIv +aJR +aIt +aIt +qfD +aRO +aIt +aPd +aIt +aPb +aIt +aXu +aYW +bat +bbD +aYV +aXq +beE +bfV +bhv +biK +bkk +blz +bly +bos +bpR +bqc +bsS +box +buo +bxd +byf +bzx +bAC +bBW +bDb +bEm +bEm +bEm +bDb +cTX +bLb +bMk +bNn +bIQ +alW +amh +ami +amP +anp +anx +anN +amP +anp +anx +anN +amP +aqG +aqS +aqS +ars +asr +asC +czQ +czU +czZ +cOT +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(172,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +alP +alP +alP +alP +alP +anf +anf +alP +anf +anf +apE +anf +anf +aCE +aDZ +aFu +aHd +aIx +aJF +aQq +aNS +qfD +aRO +aIt +aPd +aIt +aPb +aIt +aXu +aYW +aVQ +aFu +aYV +aXq +bds +bfV +bhx +biL +bkm +cHO +blG +biL +cHV +cIa +biL +box +buo +bvc +byf +byf +byf +byf +bDb +bDb +bDb +bDb +bDb +bJN +bJN +bMm +bNp +bOx +bMi +bQN +bRZ +bOx +bMi +bVk +bRZ +bOx +bMi +bZb +bRZ +bOx +bMi +cfy +cgn +cjB +ccQ +ayF +cOT +cgm +czY +cOT +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(173,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +alP +apD +aEl +anf +arx +anf +anf +alP +alP +atB +alP +alP +alP +aCF +aDZ +alP +aFw +aFw +aFw +aFw +aFw +aFu +aPf +aQq +aRP +pem +aIt +aIt +aWd +aXV +vsT +bbD +aYV +aXq +aYV +bfV +bhw +cHM +wWT +blB +blF +cHS +cHW +cIb +bsT +box +btP +bxd +byi +bzz +bAE +bBY +bDc +bEo +bFI +bHe +bIz +bIz +bJN +bMl +bIv +bIR +bPE +bLe +bRY +amQ +bUg +bVi +bWm +amQ +bUg +bVi +bZW +amQ +bUg +bDb +bDb +bDb +bDb +ayF +cNW +cgm +czY +cNW +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(174,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +alO +anf +anf +arw +nuw +uve +anf +alP +awL +anf +anf +apE +aBF +aCH +aED +aFy +aGO +aIB +aJJ +aKZ +aFw +aFu +aFu +aFu +aFu +aTc +aUD +aVS +aYW +aYW +bax +aFu +aYV +aXq +aYV +bfV +bfV +biO +biL +cHP +cHR +bou +bpT +bqd +biL +box +btS +bxd +byi +bwN +bAG +bCa +bDc +bEo +bIC +bEc +bIB +bIB +bJN +bMo +bNp +bOx +bPH +bJN +bSa +amT +bUh +bJN +bWn +aos +bYh +bJN +bZX +aqB +cbU +bDb +ayF +ayF +ayF +ayF +cNW +cgm +czY +cNW +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(175,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +alO +aoQ +anf +arv +asz +atA +anf +alP +awK +anf +awD +apE +anf +aCk +aEC +aFx +aGM +aIy +aJG +cAz +aFw +gRZ +aPg +aQr +aFu +aTb +aIt +aLg +aYW +aYW +aUD +bbD +aYV +aXq +aYV +bfW +bhy +biN +biL +bni +blM +bou +cHX +cIc +biL +buj +btQ +bve +byj +bwM +bAF +bBZ +bDc +bEp +bCX +bEc +bIA +bIA +bJN +bMn +bNp +bOz +bPG +bJN +bEm +amo +bRU +bJN +bEm +amo +bRU +bJN +bEm +amo +bRU +bDb +ayF +ayF +ayF +ayF +cOT +cgm +czY +cOT +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(176,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +alP +jkx +ayf +xAk +mHU +aFn +aFn +aBB +awM +ayg +ayg +ayg +ayg +aCl +aEe +aFw +aFw +aFw +aLo +aLb +aFw +xEE +aYW +aYW +aRQ +aIt +aUF +aLg +aYW +aYW +aVQ +aFu +aYV +aXq +aYV +bfX +bhz +biQ +biL +blC +bou +cHT +bou +cId +biL +bsw +btU +bxe +bvC +bzD +bxv +bCc +bDc +bEo +bDj +bDY +bIA +bIA +bJN +bMq +bNp +bOx +bPJ +bJN +bEm +ano +bRU +bJN +bEm +apb +bRU +bJN +bEm +ano +bRU +bDb +ayF +ayF +ayF +ayF +cOT +cgm +czY +cOT +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(177,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +nsA +nsA +nsA +nsA +qVP +nsA +nsA +atB +alP +alP +awx +aye +ayd +aAc +ayd +aCI +aEd +aFw +aHf +aIz +aJM +aLa +aFw +hsb +aYW +aQs +aFu +aTd +aUE +aVT +aYW +aYW +aZd +aFu +aYV +aXq +aYV +bfX +bhy +biP +bko +blE +bnj +bov +bpU +brq +bsW +buj +bvE +bxd +byk +bzC +bAH +bCb +bDc +bEo +bDf +bEb +bGY +bGY +bJN +bMp +bNp +bOx +bPI +bJN +bEm +abz +bUi +bJN +bEm +abz +bUi +bJN +bEm +abz +bUi +bDb +ayF +ayF +ayF +ayF +cOT +cgm +czY +cOT +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(178,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +nsA +cQF +ndq +rIA +fBy +hRI +jaH +hHQ +feE +hHQ +kGJ +wHT +asA +apE +dPk +aCG +aEf +aFw +aGU +aIC +aJU +aLe +aFw +aCR +aCR +aCR +aCR +aCR +aCR +aCR +aWe +aWe +aCR +aCR +bcs +aXq +aYV +bfX +bfV +bfV +bfV +bfV +bfV +box +bpW +brs +box +box +buo +bxd +byk +byk +byk +byk +bDc +bDc +bJR +bEg +bDc +bDc +bLe +bMr +bNr +bIT +bJN +bJN +bJN +bJN +bJN +bJN +bJN +bJN +bDb +bDb +bDb +bDb +bDb +bDb +cNW +cNW +cNW +cNW +cNW +czX +cAc +cNW +cNW +cNW +cNW +cNW +cNW +cNW +cOT +cOT +crk +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(179,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +wKe +ndq +ndq +ndq +ndq +oLl +asB +asB +asB +avo +awx +avH +asB +asB +asB +aCK +aEf +aFw +aHg +cBZ +aJT +aLc +aFw +aFz +aFz +aFz +aRR +aTe +aUG +aFz +aRS +aXW +baz +aCR +bcx +aXq +aYV +bfY +bhA +biR +bkq +bjZ +bvx +boz +boM +bzE +bsX +bsz +btW +bxf +bzE +bzE +bzE +bzE +bDd +bEq +bDl +bEf +bFQ +bHc +bHK +bIb +bID +bOA +bPK +bQO +bSb +bOu +bUj +bVl +bWo +bXh +bQZ +bTl +bZY +caX +bTl +bQZ +cdQ +cOe +cNW +czG +czR +czW +cAb +cko +clq +cmq +ciI +cnJ +cri +cOe +cOe +cBT +crk +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(180,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +wKe +ndq +ndq +ndq +ndq +qeb +asB +atD +auJ +asB +awQ +avK +azt +aAy +asB +aCN +aEf +aFw +aGY +aII +aJW +aMX +aNW +aFz +aPl +aQv +aPl +aTg +aUI +aTg +aRS +aZf +aFz +bbF +aYV +aXq +aYV +bfX +bhB +bgp +bhU +bhU +blX +bow +boO +bhU +bsZ +cdX +ceX +bvg +bvD +bvD +cBx +bzB +bAa +bBE +bDm +bEr +bFR +bHf +bHM +bFR +bIE +bJr +bJO +bWr +bWr +bWr +bUk +bVn +bWq +bXj +bYj +bZc +bTl +bTl +bTl +bQZ +bNB +ceM +ccU +cgo +czS +cOb +cAd +cNW +cOx +cBL +cOe +cvO +cNW +cNW +cOT +cOT +crk +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(181,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +nsA +ndq +ndq +ndq +ndq +ndq +asB +atC +auI +auI +awP +avJ +awO +awO +asB +aCM +aEg +aFw +aHi +aHi +aJV +aFw +aFw +aFz +aPk +aQu +aPk +aTf +aUH +aTf +aRS +aZf +baA +bbF +aYV +aXq +aYV +bfZ +bhA +biS +bkr +blH +bnm +boy +bpX +brt +brm +bsA +bvH +bvf +brt +bwO +bxF +bzA +bzZ +bBD +bBD +bBD +bBD +bBD +bHL +bBD +bBD +bJo +bPK +bWr +bWr +bWr +bWr +bWr +bWp +bXi +bYi +bTl +bTl +caY +cbV +bQZ +blQ +cPA +cfs +cgm +cQw +cNW +cNW +cNW +cNW +cNW +cOe +fup +csy +cko +axY +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(182,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +wKe +ndq +ndq +ndq +ndq +ndq +asB +atE +auI +auI +awT +avM +azv +aAA +asB +aCE +aEi +aFw +aHl +aID +aID +aFw +aMM +aFz +aFz +aQw +aRS +aRS +aRS +aRS +aRS +aZf +aRS +bbF +aYV +aXq +aYV +bga +bgc +bgc +bgc +bgc +bgc +boB +boB +boB +btb +buo +bvJ +bvJ +bvJ +bwQ +bxW +bvK +bvK +bEt +bDn +bEz +bFS +bJT +bLh +bMs +bMs +bMs +bPN +bQS +bSf +bWr +bWr +bWr +bWr +bXl +caZ +cba +bTl +cbc +bTl +bQZ +cdR +ceO +cNW +cgm +chw +ciK +cjC +ckp +cls +cmr +cOe +cOe +cou +cNW +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(183,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +wKe +ndq +ndq +ndq +ndq +ndq +asB +asB +asB +avL +awR +hiV +azu +aAz +asB +aCO +aEh +aFz +aHk +aFz +aFz +aTe +aML +aFz +aFz +aQw +cdl +aRS +aRS +aRS +aRS +aZf +aRS +bbF +aYV +aXq +aYV +bfX +bhC +biU +bks +blI +bnn +boA +bpZ +boB +bta +buo +bvJ +bCk +byo +aDH +bxP +bCf +bvK +bEs +bGc +bHm +bGc +bEs +bEs +wWu +wWu +wWu +bPN +bQR +bSe +bMf +bNe +bNm +bNX +bTf +bQZ +bTl +bTl +cbb +bTl +bQZ +cdR +ceN +cNW +cgp +chv +ciJ +cbf +diq +clr +bnt +cOe +cOe +bMB +cOT +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(184,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +nsA +lGV +ndq +pou +ndq +srG +asB +atG +auL +avN +axa +auI +azw +aAA +asB +aCQ +aEk +aFB +aHn +aFB +csT +aFB +aLr +aFB +aPn +aQy +aPn +aTi +aUK +aVU +aWg +aZf +baA +bbF +aYV +aXq +aYV +bfX +bhD +biV +biW +blK +bnp +bng +boQ +brx +bro +buo +bvJ +bxj +byq +bwR +bxY +bCh +bvK +bEv +bFU +bFU +bFU +bJV +bEC +bMu +bMu +bMu +bEC +bQU +bQU +bTl +bQU +bXr +bWr +bOw +bQZ +bQZ +bQZ +cka +bQZ +bQZ +bQZ +bQZ +bQZ +cgr +chx +cNW +cNW +cNW +clt +cQw +cOe +cOe +bNA +cOT +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(185,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +nsA +nsA +nsA +nsA +nsA +nsA +asB +atF +auK +auJ +awS +auI +awO +awO +asB +aCP +aEj +aFA +aHm +aEj +aEj +aEj +aEj +aEj +aPm +aQx +aPm +aTh +aUJ +aTh +aXz +aZg +aFz +bbF +aYV +bdv +aYV +bgb +bhC +biU +biW +blJ +bno +bnf +boP +bqf +brn +bsC +bvK +bxi +byp +bzJ +bxY +bCg +bvK +bEu +bFU +bFU +bFU +bJU +bEC +bMt +bNt +bNt +bEC +bQT +bSg +bTk +bSh +bXr +bWr +bOv +bYk +bYk +bZZ +cjW +bZZ +ccR +cdS +ceP +bQZ +cgq +chx +cNW +ayF +cNW +clt +cQw +cNW +mJo +cNW +cNW +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(186,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +asB +atH +auM +avO +awU +ayj +azx +aAB +asB +aCR +aEm +aCR +aPl +aQv +aPl +aQv +aCR +aNY +aCR +aQA +aCR +aTj +aFz +aVV +aXB +aZh +baB +aCR +kYk +bdx +vHT +bgc +bgc +biX +bhV +bka +blZ +bnk +bpo +bqk +brp +bsD +bvK +bxl +bys +bzM +bya +bCj +bvK +bEx +bFU +bFU +bGl +bJX +bEC +bMw +cBE +bOE +bEC +bQV +coT +bTm +bUn +bXr +bWr +bOv +bYm +bYm +bZZ +ckN +bZZ +ccR +cdS +ceP +bQZ +cgt +chx +cOT +ayF +cOT +clt +cQw +oEZ +cOe +cOe +cNW +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(187,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +asB +asB +asB +asB +asB +asB +asB +asB +asB +aCR +bfb +aCR +aHo +aIE +aKe +aIE +aCR +aNX +aPo +aQz +aCR +aCR +aCR +aCR +aXy +aZe +aCR +aCR +bcy +bdw +beG +bgc +bhE +biW +bkv +blL +biW +bnh +biW +brx +bte +bup +bvK +cBu +byr +bzL +bxZ +bCi +bvK +bEw +bFU +bEL +bGk +bJW +bEC +bMv +bNu +bMv +bEC +bQT +bSi +bUn +bTl +bXr +bNZ +bOy +bZd +bYl +caa +ckM +cbW +ceQ +ceQ +ceQ +cft +cgs +chy +cOT +ayF +cOT +clt +cQw +ttL +cOe +cOe +cNW +oDb +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayF +ayB +ayB +ayB +ayB +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(188,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +atz +ayF +aBM +aBM +atz +wWu +wWu +wWu +atz +aCR +aEn +aCR +aHq +aHq +aHq +aHq +aCR +aCR +aCR +aCR +aCR +aTl +aUL +aVW +aXD +aZj +baD +bbG +aTk +bdy +beI +bgc +bhF +biW +bib +bki +bma +bnl +bpq +boB +bth +bus +bvK +bxm +byu +bzN +byb +aGs +bvK +bBF +bFU +oce +bGz +bJZ +kzT +bMx +bNw +bOF +fcG +bQW +bSj +bTn +bUo +bNq +bOk +bOB +bPs +bYo +bSc +bSc +cbd +ccT +bSc +bSc +cfu +cgu +chA +cNW +ayF +cNW +clt +cQw +ajM +cOe +cOe +cNW +ayF +ayB +ayF +ayF +ayF +anO +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(189,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +atz +aBM +aBM +aBM +atz +wWu +wWu +wWu +atz +wWu +wWu +wWu +wWu +wWu +wWu +wWu +aMZ +aNZ +aPp +aQB +aNa +aTk +aPq +aPq +aXC +aZi +baC +aPq +aPq +bdy +beH +bgc +bgc +bgc +bgc +bgc +bgc +bgc +bpp +bgc +brr +bsE +bvK +bvK +byt +byt +byt +byt +byt +bEy +bFU +bFT +bFU +bJY +bEC +bMv +bNv +bMv +rcD +wkN +wkN +wkN +wkN +wkN +lAB +lQG +bPb +bQG +lAB +wkN +wkN +bSl +bQZ +bQZ +bQZ +cNW +chz +cNW +cNW +cNW +clt +cQw +cCt +cOe +cOe +cNW +ayF +ayB +ayF +cMQ +crB +cNa +ayF +cMQ +crB +cNa +ayF +cMQ +adS +cNa +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(190,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +atz +aBM +aBM +aBM +crk +wWu +wWu +wWu +atz +wWu +wWu +wWu +wWu +wWu +wWu +wWu +aMZ +aOb +aPr +aQC +aRU +aQC +aQC +aQC +czO +aZl +baE +bbH +bcA +bdz +beJ +bge +bhH +biY +biY +biY +bmd +bnr +bpr +bgc +btj +buu +bvM +bxo +bqe +bzO +bzO +bzO +bqe +bEB +bFW +bFT +tOq +bFU +bLi +bMz +bNy +bOH +dvO +bQY +vzp +hRa +bUp +mNi +mRe +olr +bPL +cVK +bTo +eaI +cbZ +bSl +cmo +cNW +lZl +cNW +chC +ciL +cOe +cOe +clv +cQw +cNW +cNW +cNW +cNW +ayF +ayF +ayF +cMQ +crC +cNa +ayF +cMQ +crC +cNa +ayF +cMQ +adu +cNa +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(191,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +atz +aBM +aBM +aBM +crk +wWu +wWu +wWu +atz +wWu +wWu +wWu +wWu +wWu +wWu +wWu +aMZ +aOa +aVX +aTm +aRL +aTm +aTm +aTm +aWh +aZk +aTm +aTm +bcz +aTm +aTm +bgd +bhG +bhG +bhG +blO +bmc +bnq +bgc +bgc +bru +bsF +btY +bxn +bqe +bzO +bzO +bzO +bqe +bEA +bFV +bFT +bGA +bFU +bFU +bMy +bNx +bOG +wkN +uoB +bSk +bXs +bXs +lMg +qeQ +qeQ +bPF +bQI +bXs +sSW +cbY +bSl +cOe +cNW +cNW +cNW +ccp +cbf +cbf +cbf +clu +cmt +ayF +ayF +ayF +ayF +ayF +ayF +ayF +cMQ +crC +cNa +ayF +cMQ +crC +cNa +ayF +cMQ +adu +cNa +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(192,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +crk +aBM +aBM +aBM +atz +wWu +wWu +wWu +atz +wWu +wWu +wWu +wWu +wWu +wWu +wWu +aNa +aOd +aOU +aPq +aNa +aPq +aPq +aPq +aOU +aPq +aPq +aPq +bcC +cBl +aPq +bgg +aNa +ayF +bky +bqh +bme +bnx +bqe +brA +brw +buw +bvO +bxq +byv +bzO +bAR +bzO +bqe +bED +bFX +bFT +bGF +bKa +bFU +bMA +bNz +bOI +wkN +bRa +cbe +bTp +vCt +bVs +fKl +bXt +bPM +bZh +itG +cbe +wvX +bSl +cOe +ceS +cae +cNW +ccq +cdq +cjE +ckr +clw +cmu +ayF +ayF +ayF +ayF +ayF +ayF +ayF +cMQ +crC +cNa +ayF +cMQ +crC +cNa +ayF +cMQ +adu +cNa +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(193,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +atz +aBM +aBM +aBM +atz +wWu +wWu +wWu +wWu +wWu +wWu +wWu +wWu +wWu +wWu +wWu +aNa +aOc +aPs +aPq +aNa +aPq +aPs +aPs +aXG +aZm +aPs +aPq +bcB +aPq +aPs +bgf +aNa +ayF +bky +blP +bns +boF +bqe +brz +brv +cBt +bvN +bxp +byv +bzO +bAQ +bCl +bqe +bEC +bEC +bEM +bGC +bEC +bEC +bEC +bEC +bEC +bSl +dMZ +bXs +bXs +bXs +gwd +ycu +oHU +uNu +bXs +bXs +bXs +bXs +bSl +cOe +ceR +cbf +cbv +uVS +cQw +cjD +cjD +cjD +cjD +cnj +ayF +ayF +ayF +ayF +ayF +ayF +cMQ +crC +cNa +ayF +cMQ +crC +cNa +ayF +cMQ +adu +cNa +ayF +ayF +ayB +ayB +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(194,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +atz +aBM +aBM +aBM +atz +wWu +wWu +wWu +wWu +wWu +wWu +wWu +wWu +wWu +wWu +wWu +aNa +aNa +aNa +aQF +aNa +aTn +aNa +aNa +aNa +aNa +aNa +cyp +aNa +bdA +aNa +aNa +aNa +ayF +bky +blR +bns +boF +bqe +brC +brv +buv +bvO +bxr +byv +bzO +bzO +bzO +bqe +bEF +bky +bEO +bGK +bKc +cNW +bMB +bNA +cOe +bSl +bUq +flc +vPE +bXs +bVt +dfh +jSO +jgm +oUh +vPE +jrE +saK +bSl +cOx +sLv +ckS +cNW +jVl +cds +cjD +ckt +cly +cmw +cnj +cnj +cnj +ayF +ayF +ayF +ayF +ayF +csZ +ayF +ayF +ayF +csZ +ayF +ayF +ayF +csZ +ayF +ayF +ayF +ayF +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(195,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +atz +wWu +wWu +wWu +wWu +wWu +wWu +wWu +wWu +wWu +wWu +wWu +aBM +aBM +aNa +aQE +aNa +aQE +aNa +ayF +ayF +ayF +aNa +aQE +aNa +aQE +aNa +ayF +ayF +ayF +bky +cyC +bns +boF +bqe +brB +brv +bsG +bvP +bxn +bqe +bzO +bzO +bzO +bqe +bEE +bFY +bEN +bGG +bKb +cNX +cNZ +cNZ +jCq +bSl +bSl +bSl +bSl +bSl +bSl +bSl +bSl +bSl +bSl +bSl +bSl +bSl +bSl +cNW +cgr +cNW +cNW +ccr +cdr +cjF +cks +clx +cmv +cnk +cnK +cyU +jIs +jIs +jIs +jIs +vZA +crk +crk +crk +crk +crk +uDO +jIs +vZA +crk +uDO +jIs +jIs +ctB +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(196,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +wWu +wWu +wWu +wWu +wWu +wWu +wWu +wWu +wWu +wWu +aBM +aBM +aBM +aNa +aQE +aNa +aQE +aNa +ayF +ayF +ayF +aNa +aQE +aNa +aQE +aNa +ayF +ayF +ayF +crk +crk +bns +boF +bqe +brD +brP +bsI +bvO +bxs +byw +bzO +bzO +bzO +bqe +bEG +bGa +bHs +bGL +bKd +cNY +bMC +cOb +jHt +bPO +kob +bSm +bTr +bTr +bTr +bTr +bTr +bTr +bTr +bTr +cbg +bTr +bTr +bTr +nGt +cbg +bTr +cct +cdu +cjG +cku +clz +cmx +cnj +cnj +cnj +ayF +ayF +ayF +ayF +ayF +vPs +ayF +ayF +ayF +vPs +ayF +ayF +ayF +vPs +ayF +ayF +ayF +ayF +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(197,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +wWu +wWu +wWu +aBM +aBM +aBM +wWu +wWu +aBM +aBM +aBM +aBM +aNa +aeR +aNa +aQE +aNa +ayF +ayF +ayF +aNa +aQE +aNa +afE +aNa +ayF +ayF +ayF +ayF +ayF +bns +boF +bqe +bqe +bry +bsH +bqe +bqe +bqe +bqe +bqe +bqe +bqe +bEG +bFZ +bHr +bIS +bEs +bEs +bEs +cNW +sOs +cNW +cNW +cNW +cNW +cNW +cNW +cNW +cNW +cNW +cNW +cNW +cNW +cNW +cNW +cNW +clt +cNW +cNW +cNW +cNW +cjD +cjD +cjD +cjD +cnj +ayF +ayF +ayF +ayF +ayF +ayF +cMQ +crE +cNa +ayF +cMQ +crE +cNa +ayF +cMQ +adW +cNa +ayF +ayF +ayB +ayB +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(198,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aNa +aQE +aNa +aQE +aNa +ayF +ayF +ayF +aNa +aQE +aNa +aQE +aNa +ayF +ayF +ayF +ayF +aBM +bns +boH +biY +brF +brQ +bsM +buz +buz +buz +buz +buz +cNU +buz +bEI +bFZ +bHu +bIV +bKf +bLk +bEs +bNC +nRG +cbf +cbf +cbf +cbf +cbf +cbf +cbf +bYr +cbf +clr +cad +cbi +cNW +ccW +cdV +clt +cNW +cgy +ccV +cNW +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +cMQ +crE +cNa +ayF +cMQ +crE +cNa +ayF +cMQ +adW +cNa +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(199,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aaf +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aNa +cyh +aRW +aTo +aNa +ayF +ayF +ayF +aNa +aTo +aRW +cyr +aNa +aBM +ayF +ayF +ayF +aBM +bnu +bhG +bhG +bhG +bhG +bsJ +brE +bhG +bhG +bhG +bhG +cNV +bhG +bEH +bGb +cBA +bIU +bKe +bLj +bEs +bNB +cac +bPP +cNW +cNW +cNW +cNW +cNW +cNW +cNW +kAJ +clt +cac +cbh +cNW +ccV +cOe +clt +cfv +cBL +cOe +cNW +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +cMQ +crE +cNa +ayF +cMQ +crE +cNa +ayF +cMQ +adW +cNa +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(200,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +crk +crk +crk +auN +crk +ayF +ayF +ayF +crk +crk +crk +crk +crk +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +bky +btp +brH +bvQ +bxt +cNT +bCm +bDh +bEs +ydD +bHv +bIW +bKe +vHY +bEs +rmX +xIa +vxh +cNW +aBM +aBM +ayF +aBM +aBM +cNW +bYs +nRG +ciJ +cbf +cbf +cbf +cbf +ceT +cNW +dBm +chH +cNW +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +cMQ +crE +cNa +ayF +cMQ +crE +cNa +ayF +cMQ +adW +cNa +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(201,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +bZi +bqg +brG +brG +cNR +brG +brG +bDg +bEs +bGd +poc +rNc +bEs +bLm +bEs +cOT +cOT +cOT +cNW +aBM +aBM +ayF +aBM +aBM +cNW +cNW +cOT +cOT +cOT +cNW +cNW +cNW +cPH +cNW +cNW +cNW +cNW +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +cMQ +crG +cNa +ayF +cMQ +crG +cNa +ayF +cMQ +crG +cNa +ayF +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(202,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +ayF +ayF +ayF +ayF +aBM +aBM +ayF +ayF +aBM +aBM +aBM +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +bZi +btq +brI +bvR +cNS +byx +brI +bky +bky +bEs +bGc +bGc +bEs +bLl +bEs +ayF +ayF +ayF +ayF +aBM +aBM +ayF +aBM +aBM +ayF +ayF +ayF +aBM +aBM +ayF +ayF +cNW +ceU +cNW +ayF +ayF +ayF +ayF +ayF +ayF +ayF +oDb +ayF +ayF +ayF +ayF +ayB +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(203,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +oDb +ayF +ayF +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +ayF +aBM +ayF +ayF +ayF +aBM +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +bky +bky +bky +bky +bky +bky +bky +bky +ayF +aBM +aBM +aBM +crk +crk +crk +ayF +ayF +ayF +ayF +aBM +aBM +ayF +aBM +aBM +ayF +oDb +ayF +aBM +aBM +ayF +ayF +cNW +cPI +cNW +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayF +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +ayB +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(204,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +aBM +ayF +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +ayF +ayF +aBM +ayF +aBM +aBM +ayF +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +ayF +aBM +aBM +ayF +aBM +aBM +aBM +aBM +aBM +ayF +crk +crk +crk +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(205,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +aBM +aBM +ayF +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +ayF +ayF +aBM +ayF +aBM +aBM +ayF +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(206,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +aBM +aBM +ayF +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +ayF +ayF +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(207,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(208,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +ayF +oDb +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(209,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +aBM +ayF +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(210,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +ayF +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(211,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(212,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(213,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(214,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(215,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(216,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(217,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(218,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(219,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(220,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(221,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(222,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(223,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(224,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(225,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +bGf +bLo +bGf +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(226,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +bIX +bGf +bLn +bGf +bIX +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(227,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +bGf +bGf +bKh +bLo +bMD +bGf +bGf +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(228,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +bGe +bGe +bIY +bKg +bKg +bKg +bND +bGe +bGe +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(229,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +bGf +bHw +bJa +bKg +bLp +bKg +bNF +bOJ +bGf +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(230,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +bGe +bGe +bIZ +bKg +bKg +bKg +bNE +bGe +bGe +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(231,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +bGf +bGf +bKi +bLr +bME +bNG +bNG +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(232,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +bIX +bGf +bLq +bGf +bIX +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(233,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +bGf +bGe +bGf +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(234,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(235,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +ayF +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(236,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(237,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +ayF +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(238,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(239,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aBM +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(240,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(241,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(242,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(243,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(244,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(245,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(246,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(247,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(248,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(249,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(250,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(251,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(252,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(253,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(254,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} +(255,1,1) = {" +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +aCx +"} diff --git a/_maps/map_files/IceBoxStation/IcemoonUnderground_Above.dmm b/_maps/map_files/IceBoxStation/IcemoonUnderground_Above.dmm new file mode 100644 index 0000000000..c3866d387c --- /dev/null +++ b/_maps/map_files/IceBoxStation/IcemoonUnderground_Above.dmm @@ -0,0 +1,69846 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 2; + height = 5; + id = "laborcamp_away"; + name = "labor camp"; + width = 9 + }, +/turf/closed/mineral/random/snow, +/area/icemoon/underground/unexplored/rivers) +"ah" = ( +/turf/closed/mineral/random/snow, +/area/icemoon/underground/unexplored/rivers) +"ak" = ( +/turf/closed/mineral/random/high_chance/snow, +/area/icemoon/underground/unexplored/rivers) +"ao" = ( +/obj/machinery/computer/shuttle/labor/one_way{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"ap" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/laborcamp) +"aq" = ( +/turf/closed/wall, +/area/mine/laborcamp) +"au" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"az" = ( +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aC" = ( +/obj/structure/sign/poster/official/safety_report{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Labor Camp Central"; + dir = 4; + network = list("labor") + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aF" = ( +/obj/machinery/door/poddoor/preopen{ + id = "labor"; + name = "labor camp blast door" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aG" = ( +/obj/structure/table, +/obj/item/trash/plate, +/obj/item/kitchen/fork, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aJ" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/book/manual/chef_recipes{ + pixel_x = 2; + pixel_y = 6 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/mine/eva) +"aN" = ( +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aS" = ( +/obj/structure/sign/warning/docking{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"aV" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/computer/mech_bay_power_console{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"aY" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Security Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"bd" = ( +/obj/machinery/mineral/processing_unit_console, +/turf/closed/wall, +/area/mine/laborcamp) +"bf" = ( +/turf/closed/wall, +/area/mine/eva) +"bg" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/eva) +"bh" = ( +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"bi" = ( +/obj/structure/gulag_beacon, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"bn" = ( +/obj/structure/table, +/obj/item/pickaxe, +/obj/item/gps/mining, +/obj/item/gps/mining, +/obj/item/gps/mining, +/obj/item/gps/mining, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bo" = ( +/obj/machinery/suit_storage_unit/mining, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bp" = ( +/obj/machinery/suit_storage_unit/mining, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bq" = ( +/turf/closed/wall, +/area/mine/production) +"br" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/production) +"bs" = ( +/obj/machinery/camera{ + c_tag = "EVA"; + dir = 4; + network = list("mine") + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bt" = ( +/turf/open/floor/plasteel, +/area/mine/eva) +"bu" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"bx" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Prisoner Airlock" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"by" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Labor Camp APC"; + pixel_y = 23 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"bB" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"bD" = ( +/obj/structure/closet/crate, +/obj/item/dice/d4, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bE" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/mine/production) +"bF" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/mine/eva) +"bG" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/mine/eva) +"bI" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/mine/eva) +"bJ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bK" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/machinery/shower{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/mine/eva) +"bL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/airlock/highsecurity{ + name = "Labor Camp Monitoring"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"bM" = ( +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"bN" = ( +/obj/structure/sign/warning/docking, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/production) +"bO" = ( +/obj/item/beacon, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bP" = ( +/turf/open/floor/plasteel, +/area/mine/production) +"bQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bS" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Station EVA"; + req_access_txt = "54" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bW" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bX" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0; + req_access_txt = "54" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bY" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"ca" = ( +/turf/closed/wall, +/area/mine/laborcamp/security) +"cb" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/table, +/obj/item/restraints/handcuffs, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"cc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/mob/living/simple_animal/bot/secbot/beepsky{ + desc = "Powered by the tears and sweat of laborers."; + name = "Prison Ofitser" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"ch" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"cj" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining Shuttle Airlock"; + opacity = 0 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"ck" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cn" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"co" = ( +/obj/machinery/power/apc{ + name = "Mining EVA APC"; + pixel_x = 1; + pixel_y = -23 + }, +/obj/machinery/recharge_station, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/mine/eva) +"cp" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable, +/turf/open/floor/plating, +/area/mine/eva) +"cq" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/mine/eva) +"cs" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"cy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/mine/production) +"cB" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"cC" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"cD" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cF" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cG" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/closet/secure_closet/freezer/gulag_fridge, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"cH" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cI" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cJ" = ( +/obj/machinery/door/airlock{ + name = "Closet" + }, +/turf/open/floor/plating, +/area/mine/production) +"cK" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/mine/production) +"cL" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/mine/production) +"cM" = ( +/turf/closed/wall, +/area/mine/living_quarters) +"cO" = ( +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cP" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 30 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cQ" = ( +/turf/closed/wall/r_wall, +/area/mine/maintenance) +"cR" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/living_quarters) +"cS" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"cT" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/crate/secure/loot, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"cU" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"cV" = ( +/turf/open/floor/plating, +/area/mine/living_quarters) +"cW" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/mine/living_quarters) +"cX" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Mining Station Starboard Wing APC"; + pixel_x = -25; + pixel_y = 2 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cZ" = ( +/obj/machinery/mineral/equipment_vendor, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"db" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"dc" = ( +/obj/structure/closet/crate, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/mine/production) +"dd" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/structure/table, +/obj/item/paper/fluff/stations/lavaland/orm_notice, +/turf/open/floor/plasteel, +/area/mine/production) +"de" = ( +/obj/structure/ore_box, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/mine/production) +"df" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/mine/production) +"dg" = ( +/turf/open/floor/circuit, +/area/mine/maintenance) +"dh" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Mining Communications APC"; + pixel_x = 1; + pixel_y = 23 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/mine/maintenance) +"di" = ( +/obj/machinery/telecomms/relay/preset/mining, +/obj/machinery/light/small{ + dir = 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 + }, +/turf/open/floor/plasteel/dark, +/area/mine/maintenance) +"dj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/mine/maintenance) +"dk" = ( +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/circuit, +/area/mine/maintenance) +"dl" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"dm" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"dn" = ( +/obj/structure/table, +/obj/item/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"do" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/meter, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dq" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dr" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"ds" = ( +/obj/machinery/mineral/equipment_vendor, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"du" = ( +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plasteel, +/area/mine/production) +"dv" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"dw" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/mine/production) +"dx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/circuit, +/area/mine/maintenance) +"dy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/machinery/bluespace_beacon, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/mine/maintenance) +"dz" = ( +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/circuit, +/area/mine/maintenance) +"dA" = ( +/obj/machinery/camera{ + c_tag = "Communications Relay"; + dir = 8; + network = list("mine") + }, +/turf/open/floor/circuit, +/area/mine/maintenance) +"dB" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_containers/blood, +/obj/item/reagent_containers/blood{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/reagent_containers/blood/AMinus, +/obj/item/reagent_containers/blood/BMinus{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/reagent_containers/blood/BPlus{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/reagent_containers/blood/OMinus, +/obj/item/reagent_containers/blood/OPlus{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/random, +/obj/machinery/camera{ + c_tag = "Sleeper Room"; + dir = 1; + network = list("mine") + }, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"dC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"dD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"dE" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"dF" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dH" = ( +/obj/machinery/atmospherics/components/binary/pump/on, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dJ" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"dK" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Shuttle Docking Foyer"; + dir = 8; + network = list("mine") + }, +/obj/machinery/newscaster{ + pixel_x = 30; + pixel_y = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"dL" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/mine/production) +"dM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/mine/production) +"dN" = ( +/obj/machinery/camera{ + c_tag = "Processing Area Room"; + dir = 8; + network = list("mine") + }, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"dO" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 1; + icon_state = "unloader-corner"; + input_dir = 1; + output_dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating, +/area/mine/production) +"dP" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Communications"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/maintenance) +"dQ" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dR" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Infirmary" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"dS" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Maintenance"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dT" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"dU" = ( +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/mine/production) +"dV" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/mine/production) +"dW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/production) +"dX" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "mining_internal"; + name = "mining conveyor" + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"dY" = ( +/obj/machinery/conveyor{ + id = "mining_internal" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/mine/production) +"dZ" = ( +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ea" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ec" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ee" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ef" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eg" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Mining Station Port Wing APC"; + pixel_x = 1; + pixel_y = 23 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eh" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ei" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ej" = ( +/obj/machinery/camera{ + c_tag = "Crew Area Hallway East"; + network = list("mine") + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ek" = ( +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"em" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"en" = ( +/obj/machinery/mineral/processing_unit_console, +/turf/closed/wall, +/area/mine/production) +"eo" = ( +/obj/machinery/mineral/processing_unit{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating, +/area/mine/production) +"eq" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"er" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"es" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"et" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eu" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ew" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ex" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Mining Station Bridge" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ey" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ez" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Mining Station Bridge" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eB" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eC" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/production) +"eE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eJ" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eL" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eM" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eO" = ( +/obj/machinery/light/small, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eR" = ( +/obj/machinery/door/airlock/glass{ + name = "Break Room" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eS" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel, +/area/mine/production) +"eT" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/machinery/light, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eU" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eW" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eX" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "mining_internal" + }, +/obj/structure/plasticflaps, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating, +/area/mine/production) +"eY" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "mining_internal" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/mine/production) +"eZ" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "mining_internal" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating, +/area/mine/production) +"fa" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/structure/chair, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fb" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/chair, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fc" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fd" = ( +/obj/machinery/camera{ + c_tag = "Public Shuttle Lobby"; + network = list("mine") + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/table, +/obj/item/gps/mining, +/obj/item/gps/mining, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fe" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"ff" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"fg" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm1"; + name = "Room 1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fi" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fj" = ( +/obj/machinery/vending/snack, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fk" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fm" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fn" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 6 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fq" = ( +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fr" = ( +/obj/structure/table, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"fs" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "miningdorm1"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"ft" = ( +/obj/machinery/camera{ + c_tag = "Dormitories"; + dir = 4; + network = list("mine") + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fu" = ( +/obj/structure/chair, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fv" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fy" = ( +/obj/structure/table, +/obj/item/clothing/glasses/meson, +/obj/item/storage/bag/ore, +/obj/item/pickaxe, +/obj/item/mining_scanner, +/obj/item/flashlight, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fB" = ( +/obj/structure/displaycase, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fC" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fD" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = -1; + pixel_y = 9 + }, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = -8 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fE" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fF" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fG" = ( +/obj/structure/table, +/obj/item/storage/box/donkpockets, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fH" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm2"; + name = "Room 2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fI" = ( +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fJ" = ( +/obj/machinery/camera{ + c_tag = "Crew Area"; + dir = 1; + network = list("mine") + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = -32 + }, +/obj/machinery/light, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fK" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fM" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "miningdorm2"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"fN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fO" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm3"; + name = "Room 3" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fP" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "miningdorm3"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"ga" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"gd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"gn" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"gp" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"gS" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Security Airlock"; + req_access_txt = "2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"gW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"hv" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "gulag"; + name = "labor camp conveyor" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"hz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"hY" = ( +/obj/machinery/door/airlock/public/glass{ + id_tag = "gulag3"; + name = "Cell 3" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"ia" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/mine/production) +"ie" = ( +/obj/machinery/vending/sustenance, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"ip" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ix" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Labor Camp Operations"; + dir = 8; + network = list("labor") + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"iG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"iM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"iZ" = ( +/obj/machinery/camera{ + c_tag = "Labor Camp External South"; + dir = 4; + network = list("labor") + }, +/turf/closed/mineral/random/snow, +/area/mine/laborcamp) +"je" = ( +/obj/structure/bed, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"jk" = ( +/obj/machinery/computer/prisoner, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"jo" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"jr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"ju" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"jy" = ( +/obj/structure/table, +/obj/item/toy/cards/deck, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"jL" = ( +/turf/closed/wall/r_wall, +/area/icemoon/underground/unexplored/rivers) +"jU" = ( +/obj/structure/ore_box, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"jV" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"kb" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "gulag" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/mine/laborcamp) +"ks" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"ku" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/displaycase, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"kv" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"kI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable, +/obj/machinery/door/airlock/mining/glass{ + name = "Processing Area"; + req_access_txt = "48" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"kL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"kO" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"lO" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"mi" = ( +/obj/effect/turf_decal/bot, +/obj/structure/ore_box, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"mL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/twohanded/required/kirbyplants/random, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"mS" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + dir = 8; + name = "old sink"; + pixel_x = 12 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/laborcamp) +"nd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"nm" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = 11 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"nq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"nE" = ( +/obj/structure/sign/poster/official/do_not_question{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"nI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/mine/living_quarters) +"nL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"nN" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"nV" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"op" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0; + req_access_txt = "54" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"oB" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"oL" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Lavaland Shuttle Airlock" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"oO" = ( +/obj/structure/table, +/obj/item/gps/mining, +/obj/item/gps/mining, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"oQ" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/laborcamp) +"oU" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"oW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"pf" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/seeds/carrot, +/turf/open/floor/plasteel/dark, +/area/mine/laborcamp) +"pi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Labor Camp Cellblock"; + dir = 4; + network = list("labor") + }, +/obj/item/twohanded/required/kirbyplants/random, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"pu" = ( +/obj/structure/sign/poster/official/obey{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"pJ" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"pV" = ( +/obj/machinery/door/airlock{ + name = "Restroom" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"qa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"qb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"qt" = ( +/obj/structure/table, +/obj/item/cigbutt, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"qN" = ( +/obj/structure/chair/stool, +/obj/machinery/flasher{ + id = "GulagCell 3"; + pixel_x = -28 + }, +/obj/structure/sign/poster/official/obey{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"rj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/mine/eva) +"rv" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ry" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"rz" = ( +/obj/structure/chair/stool, +/obj/machinery/flasher{ + id = "GulagCell 2"; + pixel_x = -28 + }, +/obj/structure/sign/poster/official/work_for_a_future{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"sa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"sj" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/mine/production) +"so" = ( +/obj/structure/ladder, +/turf/open/floor/plasteel, +/area/mine/eva) +"sp" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + dir = 1; + name = "old sink"; + pixel_y = -5 + }, +/turf/open/floor/plasteel/dark, +/area/mine/laborcamp) +"ss" = ( +/obj/machinery/button/door{ + id = "miningbathroom"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_y = -25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"st" = ( +/obj/machinery/biogenerator, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/mine/laborcamp) +"su" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"sA" = ( +/obj/structure/table, +/obj/item/paper, +/obj/item/pen, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Labor Camp Cell 1"; + dir = 4; + network = list("labor") + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"sH" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel, +/area/mine/production) +"sM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"sY" = ( +/obj/structure/fence{ + dir = 4 + }, +/obj/structure/sign/mining, +/turf/closed/mineral/random/snow, +/area/icemoon/underground/unexplored/rivers) +"tn" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"tI" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"tL" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"uG" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"uJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/mine/living_quarters) +"vb" = ( +/obj/machinery/door/window/southleft, +/obj/machinery/shower{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"vq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"vw" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Labor Camp External Airlock"; + opacity = 0 + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"vG" = ( +/obj/structure/sign/poster/official/work_for_a_future{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"vH" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Labor Camp Security APC"; + pixel_y = 23 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"vW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"we" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/box/donkpockets, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"wj" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"wq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"wN" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"wX" = ( +/obj/machinery/door/airlock{ + name = "Labor Camp Library" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"wZ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/mine/laborcamp) +"xi" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/closed/wall, +/area/mine/living_quarters) +"xU" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/seeds/onion, +/turf/open/floor/plasteel/dark, +/area/mine/laborcamp) +"yf" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"yk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"yq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"yr" = ( +/turf/closed/wall/r_wall, +/area/mine/laborcamp) +"yy" = ( +/obj/structure/rack, +/obj/item/storage/bag/ore, +/obj/item/pickaxe, +/obj/item/flashlight, +/obj/item/clothing/glasses/meson, +/obj/item/mining_scanner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"yD" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 1; + icon_state = "unloader-corner"; + input_dir = 1; + output_dir = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/mine/laborcamp) +"yX" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/closed/mineral/random/snow, +/area/icemoon/underground/unexplored/rivers) +"zk" = ( +/obj/effect/turf_decal/bot, +/obj/structure/ore_box, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"zn" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"zQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"zU" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/mine/laborcamp) +"zX" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/closet/secure_closet/labor_camp_security, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"Ac" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Al" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel, +/area/mine/eva) +"Aw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"AB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"AW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"Bd" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"Be" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"Bl" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/microwave{ + pixel_y = 6 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Bz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"BL" = ( +/obj/machinery/light/small, +/obj/machinery/camera{ + c_tag = "Labor Camp Showers"; + dir = 1; + network = list("labor") + }, +/turf/open/floor/plasteel/freezer, +/area/mine/laborcamp) +"Cd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Cf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/public/glass{ + id_tag = "cellblock1"; + name = "Labor Camp Cellblock" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Cr" = ( +/obj/machinery/door/airlock/public/glass{ + id_tag = "gulag1"; + name = "Cell 1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"CK" = ( +/obj/structure/closet/secure_closet/brig, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Dh" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Dn" = ( +/obj/structure/rack, +/obj/item/storage/bag/ore, +/obj/item/flashlight, +/obj/item/pickaxe, +/obj/item/clothing/glasses/meson, +/obj/item/mining_scanner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Du" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"DB" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"DR" = ( +/obj/structure/chair/stool, +/obj/structure/sign/poster/official/report_crimes{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Ee" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"El" = ( +/turf/open/floor/plasteel/freezer, +/area/mine/laborcamp) +"Es" = ( +/obj/machinery/door/window/southright, +/obj/machinery/shower{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"Ez" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"EB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/item/seeds/wheat, +/obj/item/seeds/wheat, +/obj/item/seeds/tomato, +/obj/item/seeds/onion, +/obj/item/seeds/garlic, +/obj/item/seeds/carrot, +/obj/item/seeds/ambrosia, +/obj/item/seeds/apple, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"EG" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"EL" = ( +/obj/machinery/shower{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/laborcamp) +"ET" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Fd" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Labor Camp Security Office"; + dir = 1; + network = list("labor") + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"Fy" = ( +/obj/structure/chair/stool, +/obj/machinery/flasher{ + id = "GulagCell 1"; + pixel_x = -28 + }, +/obj/structure/sign/poster/official/obey{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"FB" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"FF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"FQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"FU" = ( +/obj/machinery/seed_extractor, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/mine/laborcamp) +"Gn" = ( +/obj/item/clothing/under/color/jumpskirt/random, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Gp" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Gv" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Gw" = ( +/obj/machinery/camera{ + c_tag = "Labor Camp External West"; + dir = 4; + network = list("labor") + }, +/turf/closed/mineral/random/snow, +/area/mine/laborcamp) +"GI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"GN" = ( +/obj/structure/table, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/tank/internals/emergency_oxygen, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"GY" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Hd" = ( +/turf/closed/wall/r_wall, +/area/mine/laborcamp/security) +"Ho" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"Hx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"HF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"HM" = ( +/obj/machinery/camera{ + c_tag = "Labor Camp External North"; + dir = 1; + network = list("labor") + }, +/turf/closed/mineral/random/snow, +/area/mine/laborcamp) +"HO" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"HW" = ( +/obj/structure/table, +/obj/item/paper, +/obj/item/pen, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Labor Camp Cell 3"; + dir = 4; + network = list("labor") + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"HX" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restroom" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"HY" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ + dir = 4; + piping_layer = 3 + }, +/obj/structure/lattice/catwalk, +/turf/closed/mineral/random/snow, +/area/mine/living_quarters) +"Iq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Monitoring"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"Iv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"IB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"IF" = ( +/obj/machinery/mineral/mint, +/turf/open/floor/plasteel, +/area/mine/production) +"IK" = ( +/obj/structure/toilet{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"IM" = ( +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_y = 24; + prison_radio = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Jo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"JM" = ( +/obj/structure/closet/crate/internals, +/obj/item/tank/internals/emergency_oxygen, +/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, +/obj/item/clothing/mask/breath, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"JU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Kb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Kk" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/closed/mineral/random/snow, +/area/icemoon/underground/unexplored/rivers) +"KE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"KJ" = ( +/obj/structure/closet/crate, +/turf/closed/mineral/random/snow, +/area/icemoon/underground/unexplored/rivers) +"Lg" = ( +/obj/item/clothing/under/color/jumpskirt/random, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Lu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"LE" = ( +/obj/machinery/camera{ + c_tag = "Crew Area Hallway"; + network = list("mine") + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"LI" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; + pixel_y = 28 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/laborcamp) +"LL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/eva) +"LU" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/libraryconsole/bookmanagement, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Mt" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/decal/cleanable/dirt, +/obj/item/seeds/redbeet, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/mine/laborcamp) +"MG" = ( +/obj/machinery/computer/secure_data, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"MH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/mine/production) +"Nj" = ( +/obj/machinery/door/airlock{ + name = "Restroom" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"Nt" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Ny" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Labor Camp Infirmary"; + dir = 8; + network = list("labor") + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"NI" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = 3 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"NK" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "labor"; + name = "Labor Camp Lockdown"; + pixel_y = 28; + req_access_txt = "2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"NP" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"NY" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "gulag" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/plasticflaps, +/turf/open/floor/plating, +/area/mine/laborcamp) +"Of" = ( +/obj/machinery/light/small, +/turf/closed/mineral/random/snow, +/area/mine/laborcamp) +"Ol" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/public/glass{ + id_tag = "cellblock1"; + name = "Labor Camp Operations" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Ou" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"Ow" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/dark, +/area/mine/laborcamp) +"Pa" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/machinery/recharger, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"Pl" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Pp" = ( +/obj/machinery/mineral/processing_unit{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/mine/laborcamp) +"Ps" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Pt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"PE" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/mine/laborcamp) +"PL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel, +/area/mine/eva) +"PY" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/mine/laborcamp) +"Qx" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/plant_analyzer, +/turf/open/floor/plasteel/dark, +/area/mine/laborcamp) +"QN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"QQ" = ( +/obj/structure/table, +/obj/item/storage/fancy/donut_box, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"QW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"QX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Labor Camp Library"; + dir = 8; + network = list("labor") + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Rb" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Rf" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/mine/eva) +"Rx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"RE" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 30 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"RO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"SE" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/sign/poster/official/twelve_gauge{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"SJ" = ( +/obj/structure/statue{ + desc = "A lifelike statue of a horrifying monster."; + dir = 8; + icon = 'icons/mob/lavaland/lavaland_monsters.dmi'; + icon_state = "goliath"; + name = "goliath" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"SV" = ( +/obj/machinery/computer/security/labor, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"SX" = ( +/obj/machinery/conveyor{ + id = "gulag" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/mine/laborcamp) +"Ti" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Tk" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/item/seeds/soya, +/turf/open/floor/plasteel/dark, +/area/mine/laborcamp) +"Tn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"To" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/mine/production) +"Tv" = ( +/obj/machinery/camera{ + c_tag = "Crew Area Hallway West"; + dir = 1; + network = list("mine") + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"TA" = ( +/obj/structure/sign/departments/medbay/alt{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"TC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"TP" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"TT" = ( +/obj/machinery/washing_machine, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria, +/area/mine/laborcamp) +"Uh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"Ur" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/mine/eva) +"UE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"UH" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"UJ" = ( +/obj/machinery/vending/security{ + onstation_override = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"UM" = ( +/obj/structure/table, +/obj/item/paper, +/obj/item/pen, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Labor Camp Cell 2"; + dir = 4; + network = list("labor") + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"UP" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = -12 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"UQ" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"US" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Lavaland Shuttle Airlock" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"UW" = ( +/obj/structure/fence{ + dir = 4 + }, +/turf/closed/mineral/random/snow, +/area/icemoon/underground/unexplored/rivers) +"Vo" = ( +/obj/item/bikehorn{ + color = "#000"; + desc = "A horn off of a bicycle. This one has been charred to hell and back, yet somehow it still honks."; + name = "charred bike horn" + }, +/turf/closed/mineral/random/snow, +/area/icemoon/underground/unexplored/rivers) +"VC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"VP" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"VX" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Infirmary" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"Wi" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"WA" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/cultivator, +/obj/item/seeds/potato, +/turf/open/floor/plasteel/dark, +/area/mine/laborcamp) +"WD" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0; + req_access_txt = "54" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"WE" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining Shuttle Airlock"; + opacity = 0 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"WM" = ( +/obj/machinery/shower{ + pixel_y = 22 + }, +/obj/item/soap/nanotrasen, +/obj/item/bikehorn/rubberducky, +/turf/open/floor/plasteel/freezer, +/area/mine/laborcamp) +"WO" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/sign/warning/xeno_mining{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Xf" = ( +/obj/structure/ore_box, +/turf/closed/mineral/random/snow, +/area/icemoon/underground/unexplored/rivers) +"Xl" = ( +/obj/structure/bookcase, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Xx" = ( +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"XU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Ym" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Yv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Yy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/mineral/labor_points_checker{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"YA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"YB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/closed/mineral/random/snow, +/area/mine/living_quarters) +"YP" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Showers" + }, +/turf/open/floor/plasteel/freezer, +/area/mine/laborcamp) +"YW" = ( +/obj/effect/turf_decal/bot, +/obj/structure/ore_box, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Zd" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Prisoner Airlock" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Zf" = ( +/obj/machinery/door/airlock{ + id_tag = "miningbathroom"; + name = "Restroom" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"Zk" = ( +/obj/machinery/door/airlock/public/glass{ + id_tag = "gulag2"; + name = "Cell 2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Zm" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria, +/area/mine/laborcamp) + +(1,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(2,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(3,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(4,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(5,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(6,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(7,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(8,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(9,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(10,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(11,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(12,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(13,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(14,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ah +ah +ah +ah +ah +ah +"} +(15,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(16,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(17,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(18,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(19,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(20,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(21,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(22,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(23,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(24,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(25,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(26,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(27,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(28,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(29,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +aa +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(30,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ak +ak +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +yr +ap +ap +ap +ap +yr +aY +yr +yr +yr +bx +yr +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(31,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +yr +Ee +Ac +Ac +Ee +aq +NK +aq +ao +aq +nN +yr +ah +ah +ah +ah +Vo +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(32,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +yr +pu +NI +au +Yv +aq +gS +aq +bi +aq +Zd +yr +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(33,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ap +ap +ap +yr +Ee +jy +aG +Ee +aq +aF +aq +aN +aS +Ee +yr +Hd +Hd +Hd +ry +Hd +cR +cR +cR +cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(34,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ap +El +BL +aq +Ee +Ee +NP +Ee +aC +az +Ee +su +Ee +Yv +yr +cb +UJ +cG +QQ +Hd +qt +dZ +Gn +cM +HY +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(35,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +HM +yr +EL +El +YP +Ee +Ee +FQ +Jo +Jo +Jo +ks +JU +Iv +jr +bL +cc +bw +Hx +oU +Hd +Ym +dZ +eM +cM +YB +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(36,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +KJ +yr +WM +mS +aq +ie +Ee +wq +Ee +Bl +we +aJ +mL +CK +CK +yr +SE +bh +GI +Fd +Hd +Xx +dZ +dZ +cM +uJ +nI +cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(37,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ap +ap +ap +yr +aq +aq +aq +aq +vG +zQ +Ee +FU +pf +WA +Qx +yr +yr +yr +vH +bh +QN +oW +sM +eL +gn +ec +dZ +gW +ju +cM +ah +ah +ah +ah +cR +US +cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(38,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ap +gp +nV +aq +LU +DR +nd +aq +IM +wq +Ee +PE +wZ +Ow +sp +yr +by +pV +UH +ch +iM +sa +Iq +QW +vW +QW +QW +RO +Tv +cM +ah +ah +ah +ah +cR +dZ +cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(39,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ap +tL +oB +aq +Gv +Bz +KE +wX +Iv +HF +EB +st +Tk +Mt +xU +yr +bB +ca +MG +bh +AW +bM +yf +dZ +dZ +Dh +Nt +YA +dZ +cM +cM +cM +xi +cM +cR +oL +cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(40,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ap +Bd +Ny +aq +Xl +QX +aq +aq +aq +Cf +aq +aq +aq +aq +aq +yr +yr +Hd +SV +cB +bh +uG +cQ +cQ +cQ +cQ +ip +YA +dZ +cM +Lg +kO +dZ +kO +eL +Pl +cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(41,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +yr +Du +aq +aq +aq +aq +aq +oQ +aq +ET +pi +aq +Fy +sA +ap +iZ +ah +yk +jk +cC +Pa +zX +cQ +dg +dg +cQ +dZ +YA +dZ +cM +fa +dZ +dZ +dZ +dZ +dZ +cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(42,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +Xf +yr +Du +aq +yy +yy +yy +aq +LI +HX +kL +Jo +Cr +Cd +je +ap +ah +ah +TC +Wi +Wi +Wi +FF +cQ +dh +dx +cQ +ea +YA +ek +cM +fb +dZ +fy +fy +dZ +SJ +cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(43,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +Xf +yr +VX +aq +Dn +Ee +Ee +aq +aq +aq +Rb +IB +aq +aq +aq +yr +ah +ah +ah +ah +ah +ah +ah +cQ +di +dy +dP +eb +eq +eK +eQ +ef +Aw +fy +fy +dZ +dZ +cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(44,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +Of +yr +yr +yr +wN +TA +qb +Ee +Ee +Ee +JM +aq +nE +Ee +aq +rz +UM +ap +ah +ah +ah +ah +ah +ah +ah +cQ +dj +dz +cQ +ec +er +eL +cM +fc +gW +dZ +dZ +dZ +eM +cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(45,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +vw +Ou +vw +UE +Ti +tn +pJ +mi +Ee +Ee +aq +ga +Jo +Zk +iG +je +ap +ah +ah +ah +ah +ah +ah +ah +cQ +dk +dA +cQ +LE +Kb +eM +cM +fd +fq +oO +GN +fB +ku +cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(46,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +Of +yr +yr +yr +WO +YW +zk +FB +Gp +Jo +Jo +Ol +HF +Ee +aq +aq +aq +yr +ah +ah +ah +ah +ah +ah +ah +cQ +cQ +cQ +cQ +ee +er +dZ +cM +cM +cM +cM +cM +cM +cM +cM +cM +cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(47,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +KJ +ap +GY +Ee +az +Ee +qa +Ee +Ee +Ee +aq +Yy +Ez +aq +qN +HW +ap +ah +ah +ah +ah +ah +ah +ah +cM +dl +dB +cM +dZ +EG +fp +cM +fe +fr +cM +fe +fr +cM +fe +fr +cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(48,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ap +Ee +Ee +ix +Ee +hv +VC +az +nq +aq +XU +Jo +hY +Cd +je +ap +ah +ah +ah +ah +ah +ah +ah +cR +dm +dC +dQ +ea +er +dZ +cM +ff +fs +cM +ff +fM +cM +ff +fP +cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(49,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ap +jU +Ps +aq +aq +bd +aq +aq +NY +yr +PY +Zm +yr +yr +yr +yr +ah +ah +ah +ah +ah +ah +ah +cR +Ho +dD +dR +ef +es +dZ +cM +fg +cM +cM +fH +cM +cM +fO +cM +cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(50,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ap +jU +jo +yD +SX +Pp +SX +SX +kb +yr +zU +TT +ap +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +cM +dn +dE +dQ +ec +er +dZ +eL +fh +ft +eL +fh +VP +eL +fh +ec +cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(51,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ap +ap +ap +yr +yr +yr +yr +yr +yr +yr +ap +ap +ap +ah +ah +ah +ah +ah +ah +ah +ah +ah +cM +cM +cM +cM +cM +eg +et +eN +eN +fi +eN +eN +fi +fN +eN +HO +fp +cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(52,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +Gw +ah +ah +UW +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +cM +cS +do +dF +cM +eh +EG +fp +cM +cM +dQ +dQ +cM +cM +cM +Nj +cM +cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(53,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +sY +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +cM +cT +cV +cV +cM +ea +er +eM +cM +fj +fk +Pt +fI +cM +vb +hz +cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(54,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +UW +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +cM +cU +dp +dH +dS +ei +eu +ek +dQ +fk +fk +fC +fk +cM +Es +Tn +cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(55,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +UW +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +cM +cV +dq +dI +cM +ej +rv +kv +eR +TP +fu +fD +fJ +cM +cM +Zf +cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(56,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +jL +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +cM +cW +dr +dr +cM +vq +Kb +eL +dQ +fk +fk +fE +fK +cM +UP +ss +cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(57,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +cM +cM +cM +cM +cM +dZ +er +dZ +cM +fm +fk +fF +fk +cM +IK +tI +cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(58,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +cR +dZ +er +dZ +cM +fn +fv +fG +nm +cM +cM +cM +cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(59,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +cR +ek +ew +eO +cM +cR +cR +cR +cR +cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(60,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +cR +cR +ex +cR +cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(61,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +cR +ey +cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(62,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +cR +er +cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(63,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +cR +er +cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(64,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +cR +er +cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(65,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +br +ez +br +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(66,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +br +ez +br +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(67,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +bN +cj +br +ah +ah +ah +ah +ah +ah +br +ez +br +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(68,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +br +bP +br +ah +ah +ah +ah +ah +ah +br +UQ +br +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(69,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +br +br +WE +br +br +ah +ah +ah +ah +MH +br +eA +br +br +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(70,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +bq +br +bO +ck +cD +br +bq +bq +bq +bq +cy +cH +eB +cD +br +bq +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ah +ah +ah +ah +ah +ah +"} +(71,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +bq +DB +Lu +bP +cl +cH +cO +cX +ck +dJ +cy +cn +ez +bP +eS +bq +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(72,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +br +bD +bQ +cm +cE +Uh +Uh +yq +nL +Uh +kI +Be +eC +eP +eT +bq +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(73,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +br +bE +bR +cn +cF +cI +cP +cn +Rx +bP +To +gd +eD +bP +eU +bq +bq +bq +bq +yX +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(74,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +bf +bf +bf +bF +bS +bF +bf +cJ +bq +cZ +ds +dK +To +bP +eE +bP +dU +br +wj +dU +br +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(75,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +bf +bn +bs +bG +bT +co +bf +cK +bq +bq +ia +bq +ia +bP +eE +bP +sj +sH +lO +sj +zn +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(76,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +bg +bo +PL +LL +bU +cp +bf +cL +bq +IF +du +dL +cH +dT +eE +bP +cH +br +jV +RE +br +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(77,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +bg +bo +bt +bH +bV +cq +bf +bq +bq +db +bP +bP +bP +bP +eH +cF +eW +bq +bq +bq +bq +yX +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(78,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +bf +bp +bu +bI +bW +aV +bf +so +bq +dc +bP +dM +dW +AB +eI +bq +eX +bq +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(79,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +bf +bf +bf +rj +bX +aM +bf +op +bq +dd +bP +dN +dX +em +eJ +dV +eY +bq +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(80,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +bf +bJ +bY +cs +bt +Rf +bq +de +dv +bq +dV +en +dV +dV +eY +bq +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(81,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +bf +bK +bW +bt +Ur +Al +bq +df +dw +dO +dY +eo +dY +dY +eZ +bq +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(82,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +bf +rj +WD +aM +bf +bf +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(83,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +Kk +ah +ah +ah +Kk +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(84,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(85,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(86,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(87,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(88,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(89,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(90,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(91,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(92,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(93,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(94,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(95,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(96,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(97,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(98,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(99,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(100,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(101,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(102,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(103,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(104,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(105,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(106,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(107,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(108,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(109,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(110,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(111,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(112,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(113,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(114,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(115,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(116,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(117,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(118,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(119,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(120,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(121,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(122,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(123,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(124,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(125,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(126,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(127,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(128,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(129,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ah +ah +ah +ah +ah +ah +"} +(130,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(131,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(132,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(133,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(134,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(135,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(136,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(137,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(138,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(139,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(140,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(141,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(142,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(143,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(144,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(145,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(146,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(147,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(148,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(149,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(150,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(151,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(152,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(153,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(154,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(155,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(156,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(157,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(158,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(159,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(160,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(161,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(162,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(163,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(164,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(165,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(166,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(167,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(168,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(169,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(170,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(171,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(172,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(173,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(174,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(175,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(176,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(177,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(178,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(179,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(180,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(181,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(182,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(183,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(184,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(185,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(186,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(187,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(188,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(189,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(190,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(191,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(192,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(193,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(194,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(195,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(196,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(197,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(198,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(199,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(200,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(201,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(202,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(203,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(204,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(205,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(206,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(207,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(208,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(209,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(210,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(211,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(212,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(213,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(214,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(215,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(216,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(217,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(218,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(219,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(220,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(221,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(222,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(223,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(224,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(225,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(226,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(227,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(228,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(229,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(230,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(231,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(232,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(233,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(234,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(235,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(236,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(237,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(238,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(239,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(240,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(241,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(242,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(243,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(244,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(245,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(246,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(247,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(248,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(249,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(250,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(251,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(252,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(253,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(254,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} +(255,1,1) = {" +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +"} diff --git a/_maps/map_files/IceBoxStation/IcemoonUnderground_Below.dmm b/_maps/map_files/IceBoxStation/IcemoonUnderground_Below.dmm new file mode 100644 index 0000000000..d4b416cd89 --- /dev/null +++ b/_maps/map_files/IceBoxStation/IcemoonUnderground_Below.dmm @@ -0,0 +1,65567 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/mineral/random/snow/underground, +/area/icemoon/underground/unexplored/rivers) +"b" = ( +/turf/closed/mineral/random/high_chance/snow, +/area/icemoon/underground/unexplored/rivers) +"d" = ( +/obj/structure/ladder, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"e" = ( +/obj/structure/grille, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"h" = ( +/turf/closed/wall, +/area/icemoon/underground/explored) +"N" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"O" = ( +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"T" = ( +/obj/item/flashlight/lantern{ + on = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(5,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(6,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(7,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(8,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(9,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(10,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(11,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(12,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(13,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(14,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(15,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(16,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(17,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(18,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(19,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(20,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(21,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(22,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(24,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(25,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(26,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(27,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(28,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(29,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(30,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(31,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(32,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(33,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(34,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(35,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(36,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(37,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(38,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(39,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(40,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(41,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(42,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(43,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(44,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(45,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(46,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(47,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(48,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(49,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(50,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(51,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(52,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(53,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(54,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(55,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(56,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(57,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(58,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(59,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(60,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(61,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(62,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(63,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(64,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(65,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +"} +(66,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(67,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(68,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(69,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(70,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(71,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(72,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(73,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(74,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(75,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(76,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +e +O +e +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(77,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +e +O +O +O +e +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(78,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +O +O +d +O +O +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(79,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +e +T +O +O +e +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(80,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +N +O +e +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(81,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(82,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(83,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(84,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(85,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(86,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(87,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(88,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(89,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(90,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(91,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(92,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(93,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(94,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(95,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(96,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(97,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(98,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(99,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(100,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(101,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(102,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(103,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(104,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(105,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(106,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(107,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(108,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(109,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(110,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(111,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(112,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(113,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(114,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(115,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(116,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(117,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(118,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(119,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(120,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(121,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(122,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(123,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(124,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(125,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(126,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(127,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(128,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(129,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(130,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(131,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(132,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(133,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +"} +(134,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(135,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(136,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(137,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(138,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(139,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(140,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(141,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(142,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(143,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(144,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(145,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(146,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(147,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(148,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(149,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(150,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(151,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(152,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(153,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(154,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(155,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(156,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(157,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(158,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(159,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(160,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(161,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(162,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(163,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(164,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(165,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(166,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(167,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(168,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(169,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(170,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(171,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(172,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(173,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(174,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(175,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(176,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(177,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(178,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(179,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(180,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(181,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(182,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(183,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(184,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(185,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(186,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(187,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(188,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(189,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(190,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(191,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(192,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(193,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(194,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(195,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(196,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(197,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(198,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(199,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(200,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(201,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(202,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(203,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(204,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(205,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(206,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(207,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(208,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(209,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(210,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(211,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(212,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(213,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(214,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(215,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(216,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(217,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(218,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(219,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(220,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(221,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(222,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(223,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(224,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(225,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(226,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(227,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(228,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(229,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(230,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +"} +(231,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(232,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(233,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(234,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(235,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(236,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(237,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(238,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(239,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(240,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(241,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(242,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(243,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(244,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(245,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(246,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(247,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(248,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(249,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(250,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(251,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(252,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(253,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(254,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(255,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 7efcc66850..7706764fbd 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -39,10 +39,6 @@ /obj/structure/table, /obj/item/paper_bin, /obj/item/pen, -/obj/item/mmi/posibrain{ - pixel_x = 5; - pixel_y = 8 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "aae" = ( @@ -57,7 +53,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/caution/stand_clear, /obj/machinery/door/poddoor/shutters/radiation/preopen{ id = "engsm"; name = "Radiation Chamber Shutters" @@ -165,6 +160,10 @@ /obj/structure/cable{ icon_state = "0-8" }, +/mob/living/simple_animal/bot/cleanbot{ + auto_patrol = 1; + name = "Sir Cleansworth" + }, /turf/open/floor/engine, /area/ai_monitored/turret_protected/ai) "aau" = ( @@ -263,17 +262,6 @@ /area/ai_monitored/turret_protected/ai) "aaE" = ( /obj/structure/chair, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/landmark/start/assistant, /turf/open/floor/plasteel/dark, /area/medical/medbay/central) "aaF" = ( @@ -287,7 +275,6 @@ dir = 5 }, /obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/remains/human, /turf/open/floor/engine, /area/ai_monitored/turret_protected/ai) "aaG" = ( @@ -593,9 +580,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "abd" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/structure/cable{ @@ -636,10 +620,6 @@ /turf/open/floor/plasteel/dark, /area/lawoffice) "abg" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, @@ -733,6 +713,9 @@ name = "Station Intercom (Command)"; pixel_y = -28 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "abr" = ( @@ -873,7 +856,6 @@ pixel_x = 24 }, /obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/remains/human, /turf/open/floor/engine, /area/ai_monitored/turret_protected/ai) "abD" = ( @@ -953,9 +935,6 @@ /turf/open/floor/engine, /area/ai_monitored/turret_protected/ai) "abM" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/structure/cable{ @@ -1132,7 +1111,6 @@ /turf/open/floor/plasteel, /area/security/warden) "acg" = ( -/obj/effect/decal/cleanable/blood/old, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /turf/open/floor/engine, @@ -1352,7 +1330,6 @@ /turf/open/space, /area/space/nearstation) "acz" = ( -/obj/effect/decal/cleanable/blood/old, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, @@ -1363,7 +1340,9 @@ /turf/open/floor/engine, /area/ai_monitored/storage/satellite) "acB" = ( -/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/engine, /area/ai_monitored/storage/satellite) "acC" = ( @@ -1642,7 +1621,6 @@ /obj/machinery/light_switch{ pixel_y = -24 }, -/obj/effect/decal/cleanable/blood/old, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, @@ -1661,7 +1639,7 @@ dir = 4 }, /turf/open/floor/engine, -/area/ai_monitored/turret_protected/aisat_interior) +/area/space) "acY" = ( /obj/structure/cable{ icon_state = "4-8" @@ -1828,26 +1806,18 @@ id = "prisonblast"; name = "Prison Blast Door" }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/security/prison) "adm" = ( /obj/structure/chair/office{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/engine, /area/ai_monitored/storage/satellite) "adn" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, @@ -1890,7 +1860,7 @@ /turf/open/floor/circuit/green{ luminosity = 2 }, -/area/ai_monitored/turret_protected/ai) +/area/space) "adr" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 @@ -1912,7 +1882,6 @@ id = "xeno_blastdoor"; name = "Xenobiology Containment Blast Door" }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "adt" = ( @@ -1943,10 +1912,6 @@ /turf/open/floor/plasteel/dark, /area/security/courtroom) "adv" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, /obj/effect/decal/cleanable/blood/gibs/limb, /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/dirt, @@ -1999,6 +1964,9 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/engine, /area/ai_monitored/storage/satellite) "adA" = ( @@ -2086,10 +2054,10 @@ pixel_y = 26 }, /obj/structure/cable{ - icon_state = "0-4" + icon_state = "0-8" }, /obj/structure/cable{ - icon_state = "0-8" + icon_state = "4-8" }, /turf/open/floor/engine, /area/ai_monitored/turret_protected/aisat/foyer) @@ -2186,6 +2154,9 @@ /obj/structure/cable{ icon_state = "2-8" }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/engine, /area/ai_monitored/storage/satellite) "adO" = ( @@ -2212,9 +2183,12 @@ /turf/open/floor/engine, /area/ai_monitored/turret_protected/aisat/foyer) "adT" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall/r_wall/rust, -/area/ai_monitored/turret_protected/aisat_interior) +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/science/xenobiology) "adU" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -2236,7 +2210,6 @@ pixel_y = 24; req_one_access_txt = "2" }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/security/warden) "adW" = ( @@ -2348,7 +2321,6 @@ pixel_y = -24; req_one_access_txt = "2" }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/security/prison) "aed" = ( @@ -2395,16 +2367,6 @@ /turf/open/floor/plating, /area/security/warden) "aej" = ( -/obj/effect/turf_decal/tile/neutral, -/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/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, @@ -2441,7 +2403,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/medical/cryo) "aeo" = ( @@ -2706,7 +2667,6 @@ /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/medical/cryo) "aeQ" = ( @@ -2819,16 +2779,6 @@ /turf/open/floor/plating, /area/security/warden) "aeY" = ( -/obj/effect/turf_decal/tile/neutral, -/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/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /turf/open/floor/plasteel, @@ -3031,16 +2981,6 @@ /turf/closed/wall, /area/maintenance/port/aft) "afn" = ( -/obj/effect/turf_decal/tile/neutral, -/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -3529,13 +3469,16 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "afX" = ( -/obj/structure/grille/broken, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg1" +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/area/maintenance/starboard/fore) +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/cmo) "afY" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, @@ -3645,6 +3588,9 @@ name = "xenobiology camera"; network = list("ss13","rd","xeno") }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/circuit/telecomms, /area/science/xenobiology) "agg" = ( @@ -3669,6 +3615,9 @@ external_pressure_bound = 120; name = "server vent" }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/circuit/telecomms, /area/science/xenobiology) "agi" = ( @@ -3685,6 +3634,9 @@ icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel/showroomfloor, /area/science/xenobiology) "agj" = ( @@ -3962,10 +3914,11 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "agF" = ( -/obj/structure/grille, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) "agG" = ( /obj/docking_port/stationary{ dir = 2; @@ -4600,7 +4553,6 @@ pixel_x = -26 }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "ahI" = ( @@ -4681,16 +4633,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/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/structure/cable{ icon_state = "4-8" }, @@ -4699,16 +4641,6 @@ "ahQ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, -/obj/effect/turf_decal/tile/neutral, -/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/structure/cable{ icon_state = "4-8" }, @@ -4822,7 +4754,6 @@ /turf/open/floor/plating, /area/security/brig) "ahY" = ( -/obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/structure/cable{ @@ -4835,37 +4766,21 @@ /turf/open/floor/plasteel, /area/security/main) "ahZ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, /turf/open/floor/plasteel, /area/security/main) "aia" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, /turf/open/floor/plasteel, /area/security/main) "aib" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/security/main) "aic" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/bot, /obj/machinery/holopad, /turf/open/floor/plasteel, @@ -4958,16 +4873,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/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/structure/cable{ icon_state = "1-4" }, @@ -4977,9 +4882,7 @@ /turf/open/floor/plasteel, /area/security/brig) "aij" = ( -/obj/structure/flora/grass/jungle, /obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/leafybush, /obj/machinery/light{ dir = 1 }, @@ -5146,10 +5049,6 @@ /turf/open/floor/plasteel, /area/construction/mining/aux_base) "aix" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/security/main) @@ -5178,16 +5077,6 @@ /area/security/main) "aiz" = ( /obj/machinery/computer/secure_data, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/security/main) "aiA" = ( @@ -5341,16 +5230,6 @@ /obj/structure/chair{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/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/landmark/start/security_officer, /turf/open/floor/plasteel, /area/security/main) @@ -5418,16 +5297,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/brig) "aiR" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aiS" = ( @@ -5455,28 +5324,6 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/brig) -"aiU" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/fore) -"aiV" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/maintenance/port/fore) -"aiW" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/maintenance/port/fore) "aiX" = ( /obj/structure/cable{ icon_state = "0-2" @@ -5490,12 +5337,6 @@ /area/ai_monitored/turret_protected/aisat_interior) "aiY" = ( /obj/structure/chair, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 @@ -5560,12 +5401,6 @@ /area/ai_monitored/turret_protected/aisat/foyer) "ajc" = ( /obj/structure/chair, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 @@ -5601,22 +5436,11 @@ /turf/open/floor/plasteel, /area/security/main) "ajg" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/decal/cleanable/blood/gibs/limb, /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/maintenance/port/fore) -"ajh" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/maintenance/port/fore) "aji" = ( /obj/structure/chair{ dir = 8 @@ -5626,13 +5450,13 @@ }, /area/maintenance/port/fore) "ajj" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/remains/human, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg3" +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/maintenance/fore) +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "ajk" = ( /obj/effect/turf_decal/tile/brown{ dir = 1 @@ -5709,16 +5533,6 @@ color = "#c45c57"; dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/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/landmark/start/head_of_security, /turf/open/floor/plasteel, /area/security/main) @@ -5765,17 +5579,6 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/science/xenobiology) -"ajs" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/maintenance/port/fore) "ajt" = ( /turf/closed/wall, /area/crew_quarters/kitchen) @@ -5934,16 +5737,6 @@ /turf/open/floor/plasteel/dark, /area/maintenance/starboard/fore) "ajJ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/hallway/primary/fore) @@ -5961,15 +5754,6 @@ }, /turf/open/floor/plasteel/dark, /area/bridge) -"ajL" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Biohazard"; - name = "Emergency Research Blast Door" - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear, -/turf/open/floor/plasteel/dark, -/area/science/research) "ajM" = ( /obj/effect/decal/cleanable/dirt, /obj/item/shard, @@ -6080,7 +5864,6 @@ /area/hallway/primary/fore) "ajX" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "ajY" = ( @@ -6133,10 +5916,10 @@ /turf/open/floor/plasteel, /area/construction/mining/aux_base) "akd" = ( -/obj/structure/flora/tree/jungle/small, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/flora/ausbushes/ppflowers, /turf/open/floor/grass, /area/medical/genetics) "ake" = ( @@ -6342,7 +6125,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/medical/surgery) "akz" = ( @@ -6398,7 +6180,6 @@ "akF" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/medical/surgery) "akG" = ( @@ -6424,12 +6205,6 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "akI" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/decal/cleanable/blood/gibs/old, /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/dirt, @@ -6632,6 +6407,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, +/obj/machinery/shieldwallgen/xenobiologyaccess, /turf/open/floor/plating{ icon_state = "panelscorched" }, @@ -6785,7 +6561,6 @@ pixel_x = 28 }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "all" = ( @@ -6980,9 +6755,6 @@ "alw" = ( /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/maintenance/port/fore) "alx" = ( @@ -7050,29 +6822,12 @@ /obj/machinery/status_display/evac{ pixel_y = 32 }, -/obj/item/gun/energy/e_gun/advtaser, /turf/open/floor/plasteel/dark, /area/security/brig) -"alA" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/maintenance/port/fore) "alB" = ( /turf/closed/wall/r_wall, /area/science/xenobiology) "alC" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, @@ -7132,13 +6887,6 @@ /obj/vehicle/ridden/secway, /turf/open/floor/plasteel/showroomfloor, /area/security/brig) -"alH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/maintenance/port/fore) "alI" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ @@ -7300,8 +7048,22 @@ }, /area/maintenance/fore) "alV" = ( -/turf/closed/wall/r_wall/rust, -/area/ai_monitored/turret_protected/aisat_interior) +/obj/structure/closet/crate/wooden/toy, +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/newscaster{ + pixel_y = 30 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) "alW" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -8509,31 +8271,12 @@ /turf/open/floor/plasteel/dark, /area/maintenance/starboard) "anX" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, /turf/open/floor/plasteel, /area/hallway/primary/fore) "anY" = ( /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -9095,7 +8838,6 @@ /turf/open/floor/wood, /area/lawoffice) "aoT" = ( -/obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/box/corners{ dir = 4 @@ -9553,7 +9295,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/gun/energy/e_gun/advtaser, /turf/open/floor/plasteel/dark, /area/security/brig) "apI" = ( @@ -9729,28 +9470,22 @@ /turf/closed/wall/rust, /area/maintenance/central) "apY" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/structure/table/wood, +/obj/structure/mirror{ + pixel_x = -26 }, +/obj/item/reagent_containers/food/snacks/pie/cream, +/obj/item/clothing/under/costume/lobster, +/obj/item/clothing/head/lobsterhat, +/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ - dir = 8; - icon_state = "intact" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) "apZ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -10292,18 +10027,18 @@ /turf/open/floor/plasteel/dark, /area/maintenance/port/fore) "aqQ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/structure/table/wood, +/obj/item/storage/crayons, +/obj/item/storage/crayons, +/obj/item/bikehorn/rubberducky, +/obj/structure/sign/poster/contraband/clown{ + pixel_x = -30 }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/plasteel, -/area/bridge) +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) "aqR" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/delivery, @@ -10742,7 +10477,6 @@ /obj/structure/sign/warning/electricshock{ pixel_x = -32 }, -/obj/effect/turf_decal/caution/stand_clear, /obj/machinery/door/firedoor, /turf/open/floor/engine, /area/science/xenobiology) @@ -10789,10 +10523,16 @@ /turf/open/floor/plasteel/dark, /area/bridge) "arD" = ( -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/sign/departments/science{ + pixel_x = 32 + }, /turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) +/area/hallway/primary/starboard) "arE" = ( /obj/structure/table, /obj/item/clipboard, @@ -11120,28 +10860,17 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/captain) "arW" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/bridge) "arX" = ( -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, -/area/bridge) +/area/hallway/primary/starboard) "arY" = ( /obj/effect/turf_decal/bot, /obj/machinery/holopad, @@ -11207,16 +10936,6 @@ }, /area/maintenance/port/fore) "asd" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, @@ -11242,7 +10961,7 @@ icon_state = "4-8" }, /turf/open/floor/engine, -/area/ai_monitored/turret_protected/aisat/foyer) +/area/space) "asg" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-22" @@ -11420,7 +11139,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/item/gun/energy/e_gun/advtaser, /turf/open/floor/plasteel/dark, /area/security/brig) "asw" = ( @@ -11993,6 +11711,7 @@ dir = 4; name = "chapel camera" }, +/obj/structure/chair/stool, /turf/open/floor/plasteel/chapel{ dir = 8 }, @@ -12091,16 +11810,9 @@ /turf/open/floor/plasteel, /area/crew_quarters/heads/hop) "atF" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/turf_decal/plaque{ icon_state = "L14" }, @@ -12360,18 +12072,7 @@ }, /area/maintenance/starboard/fore) "aua" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, -/obj/effect/turf_decal/box, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aub" = ( @@ -12554,16 +12255,6 @@ /turf/open/floor/plasteel/dark, /area/teleporter) "auo" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -12650,9 +12341,20 @@ /turf/closed/wall/r_wall, /area/bridge) "auz" = ( -/obj/structure/sign/warning/vacuum/external, -/turf/closed/wall/rust, -/area/maintenance/starboard) +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) "auA" = ( /obj/structure/cable{ icon_state = "2-8" @@ -12754,12 +12456,12 @@ }, /area/maintenance/solars/starboard/fore) "auK" = ( -/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ - dir = 8 + dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, -/area/security/courtroom) +/area/hallway/primary/port) "auL" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/effect/turf_decal/box/corners{ @@ -12773,16 +12475,6 @@ /turf/open/floor/plasteel/dark, /area/science/mixing) "auM" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ dir = 8 }, @@ -12926,11 +12618,21 @@ /obj/item/folder/blue, /obj/item/melee/chainofcommand, /obj/item/toy/figure/captain, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/item/card/id/captains_spare, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "ave" = ( /obj/structure/table/wood, /obj/machinery/computer/security/wooden_tv, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "avf" = ( @@ -12998,7 +12700,6 @@ "avj" = ( /obj/structure/table/wood, /obj/item/storage/fancy/donut_box, -/obj/item/card/id/captains_spare, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "avk" = ( @@ -13039,10 +12740,6 @@ /turf/open/floor/plasteel, /area/security/courtroom) "avo" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -13071,9 +12768,6 @@ /turf/closed/wall, /area/maintenance/aft) "avr" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/box/corners, /turf/open/floor/plasteel, /area/security/courtroom) @@ -13427,12 +13121,6 @@ /turf/open/floor/plasteel/dark, /area/medical/virology) "avQ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -13442,12 +13130,6 @@ /turf/open/floor/plasteel, /area/bridge) "avR" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, @@ -13506,35 +13188,16 @@ /obj/structure/chair{ 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/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plasteel, /area/security/courtroom) "avX" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, @@ -13693,7 +13356,6 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/obj/item/gun/energy/e_gun/advtaser, /turf/open/floor/plasteel/dark, /area/security/brig) "awl" = ( @@ -13750,10 +13412,6 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, /turf/open/floor/engine{ initial_gas_mix = "n2=100;TEMP=80"; name = "mainframe floor" @@ -13780,16 +13438,6 @@ /turf/open/floor/plating, /area/storage/primary) "awr" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-8" }, @@ -13800,10 +13448,6 @@ pixel_x = -32; pixel_y = 32 }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/engine{ initial_gas_mix = "n2=100;TEMP=80"; name = "mainframe floor" @@ -13931,9 +13575,6 @@ /obj/structure/cable{ icon_state = "2-4" }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/engine{ initial_gas_mix = "n2=100;TEMP=80"; name = "mainframe floor" @@ -14028,9 +13669,6 @@ /obj/structure/cable{ icon_state = "0-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/engine{ initial_gas_mix = "n2=100;TEMP=80"; name = "mainframe floor" @@ -14050,20 +13688,6 @@ pixel_x = 32; pixel_y = 32 }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine{ - initial_gas_mix = "n2=100;TEMP=80"; - name = "mainframe floor" - }, -/area/tcommsat/server) -"awM" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, /turf/open/floor/engine{ initial_gas_mix = "n2=100;TEMP=80"; name = "mainframe floor" @@ -14240,6 +13864,7 @@ /obj/item/lighter, /obj/item/clothing/mask/cigarette/cigar/cohiba, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/suit_storage_unit/ce, /turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "axi" = ( @@ -14705,7 +14330,6 @@ name = "Containment Chamber Blast Door" }, /obj/machinery/atmospherics/pipe/simple/general/hidden, -/obj/effect/turf_decal/caution/stand_clear, /obj/machinery/door/firedoor, /turf/open/floor/engine, /area/science/xenobiology) @@ -14845,7 +14469,6 @@ /area/medical/morgue) "ayi" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/security/brig) "ayj" = ( @@ -14857,16 +14480,6 @@ /turf/open/floor/plating, /area/maintenance/starboard) "ayk" = ( -/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/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/structure/cable{ @@ -14930,7 +14543,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/bridge) "ayr" = ( @@ -15169,7 +14781,6 @@ /obj/structure/sign/warning/biohazard{ pixel_x = 32 }, -/obj/effect/turf_decal/caution/stand_clear, /obj/machinery/door/firedoor, /turf/open/floor/engine, /area/science/xenobiology) @@ -15230,7 +14841,6 @@ dir = 1; pixel_y = 32 }, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "ayP" = ( @@ -15460,7 +15070,6 @@ /obj/structure/sign/departments/evac{ pixel_y = 32 }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "azc" = ( @@ -15652,9 +15261,6 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "azp" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, /obj/effect/turf_decal/tile/neutral, /obj/machinery/airalarm{ dir = 4; @@ -15855,11 +15461,10 @@ }, /area/maintenance/starboard) "azE" = ( -/obj/effect/turf_decal/loading_area, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 6 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/engine, /area/engine/engineering) "azF" = ( /obj/structure/flora/junglebush/c, @@ -16192,9 +15797,6 @@ /turf/open/floor/plating, /area/medical/chemistry) "aAd" = ( -/obj/effect/turf_decal/loading_area{ - dir = 1 - }, /obj/machinery/atmospherics/components/binary/pump{ dir = 1; name = "External Gas to Loop" @@ -16203,7 +15805,7 @@ /obj/structure/cable{ icon_state = "1-4" }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/engine, /area/engine/engineering) "aAe" = ( /obj/machinery/door/firedoor, @@ -16224,10 +15826,6 @@ dir = 4; pixel_x = -22 }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/engine{ initial_gas_mix = "n2=100;TEMP=80"; name = "mainframe floor" @@ -16240,7 +15838,6 @@ /obj/structure/cable{ icon_state = "1-4" }, -/obj/effect/turf_decal/stripes/line, /turf/open/floor/engine{ initial_gas_mix = "n2=100;TEMP=80"; name = "mainframe floor" @@ -16262,7 +15859,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, /turf/open/floor/engine{ initial_gas_mix = "n2=100;TEMP=80"; name = "mainframe floor" @@ -16272,10 +15868,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/engine{ initial_gas_mix = "n2=100;TEMP=80"; name = "mainframe floor" @@ -16291,10 +15883,6 @@ /obj/structure/cable{ icon_state = "0-8" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/engine{ initial_gas_mix = "n2=100;TEMP=80"; name = "mainframe floor" @@ -16420,7 +16008,6 @@ /turf/open/floor/grass, /area/chapel/main) "aAz" = ( -/obj/effect/decal/cleanable/blood/old, /obj/structure/cable{ icon_state = "1-2" }, @@ -16443,9 +16030,11 @@ /turf/open/floor/plasteel/showroomfloor, /area/science/robotics/lab) "aAD" = ( -/obj/structure/flora/tree/jungle/small, -/turf/open/floor/grass, -/area/chapel/main) +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) "aAE" = ( /obj/machinery/light/small{ dir = 8 @@ -16566,16 +16155,6 @@ /turf/open/floor/plasteel/dark, /area/security/warden) "aAO" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, @@ -16651,7 +16230,6 @@ /obj/machinery/door/airlock/public/glass{ name = "Docking Hallway" }, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "aAV" = ( @@ -17025,7 +16603,6 @@ /area/engine/engineering) "aBw" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "aBx" = ( @@ -17035,10 +16612,6 @@ /turf/open/floor/engine, /area/engine/engineering) "aBy" = ( -/obj/structure/flora/grass/jungle, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/ywflowers, -/obj/structure/flora/ausbushes/fernybush, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 5 @@ -17173,20 +16746,9 @@ /obj/structure/sign/departments/security{ pixel_x = -32 }, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/dark, /area/hallway/primary/aft) "aBN" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, @@ -17200,7 +16762,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/fore) "aBP" = ( @@ -17337,10 +16898,6 @@ /obj/item/radio/intercom{ pixel_x = -28 }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/engine{ initial_gas_mix = "n2=100;TEMP=80"; name = "mainframe floor" @@ -17348,7 +16905,6 @@ /area/tcommsat/server) "aCe" = ( /obj/structure/cable, -/obj/effect/turf_decal/stripes/line, /turf/open/floor/engine{ initial_gas_mix = "n2=100;TEMP=80"; name = "mainframe floor" @@ -17421,10 +16977,6 @@ name = "telecomms camera"; network = list("ss13","tcomms") }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/engine{ initial_gas_mix = "n2=100;TEMP=80"; name = "mainframe floor" @@ -17503,7 +17055,6 @@ /obj/machinery/door/airlock/public/glass{ name = "Security Hallway" }, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/dark, /area/hallway/primary/aft) "aCr" = ( @@ -17576,16 +17127,6 @@ /turf/open/floor/plasteel/dark, /area/engine/break_room) "aCy" = ( -/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/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, @@ -17840,10 +17381,7 @@ /area/medical/cryo) "aCN" = ( /obj/structure/flora/grass/jungle/b, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/leafybush, /obj/structure/flora/ausbushes/ywflowers, -/obj/structure/flora/ausbushes/leafybush, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/structure/extinguisher_cabinet{ pixel_x = 24 @@ -18139,7 +17677,6 @@ "aDh" = ( /obj/structure/flora/grass/jungle/b, /obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/sunnybush, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/grass, /area/chapel/main) @@ -18204,7 +17741,6 @@ /turf/open/floor/plating, /area/engine/atmos) "aDs" = ( -/obj/effect/decal/cleanable/blood/old, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /turf/open/floor/engine, /area/security/nuke_storage) @@ -18318,6 +17854,7 @@ /obj/machinery/atmospherics/miner/nitrogen{ max_ext_kpa = 2500 }, +/obj/machinery/portable_atmospherics/canister/nitrogen, /turf/open/floor/engine/n2{ initial_gas_mix = "n2=1000;TEMP=293.15" }, @@ -18334,6 +17871,7 @@ /obj/machinery/atmospherics/miner/oxygen{ max_ext_kpa = 2500 }, +/obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/engine/o2{ initial_gas_mix = "o2=1000;TEMP=293.15" }, @@ -18812,18 +18350,13 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/corner{ + dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) +/area/hallway/primary/port) "aEv" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -18964,7 +18497,6 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "aEG" = ( -/obj/effect/decal/cleanable/blood/old, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, @@ -18994,7 +18526,6 @@ /turf/open/floor/engine, /area/security/nuke_storage) "aEI" = ( -/obj/effect/turf_decal/box, /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -19356,6 +18887,7 @@ /obj/machinery/atmospherics/miner/carbon_dioxide{ max_ext_kpa = 2500 }, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, /turf/open/floor/engine/co2{ initial_gas_mix = "co2=1000;TEMP=293.15" }, @@ -19364,6 +18896,7 @@ /obj/machinery/atmospherics/miner/toxins{ max_ext_kpa = 2500 }, +/obj/machinery/portable_atmospherics/canister/toxins, /turf/open/floor/engine/plasma{ initial_gas_mix = "plasma=1000;TEMP=293.15" }, @@ -19372,6 +18905,7 @@ /obj/machinery/atmospherics/miner/n2o{ max_ext_kpa = 2500 }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, /turf/open/floor/engine/n2o{ initial_gas_mix = "n2o=1000;TEMP=293.15" }, @@ -19695,15 +19229,19 @@ }, /area/maintenance/port/fore) "aFY" = ( +/obj/machinery/air_sensor{ + pixel_x = -32; + pixel_y = -32 + }, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, /obj/machinery/igniter{ id = "Incinerator" }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "aFZ" = ( @@ -19732,16 +19270,17 @@ /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/heads/hor) "aGb" = ( -/obj/machinery/power/turbine{ - luminosity = 2 - }, -/obj/structure/cable, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"aGc" = ( /obj/machinery/door/poddoor/incinerator_atmos_main, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) +"aGc" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Captain's Desk"; + req_access_txt = "20" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) "aGd" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -20109,7 +19648,6 @@ /area/medical/genetics/cloning) "aGG" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/bridge) "aGH" = ( @@ -20432,7 +19970,6 @@ /area/security/brig) "aHq" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/fore) "aHr" = ( @@ -20879,7 +20416,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/bridge) "aHV" = ( @@ -21139,9 +20675,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-16" - }, /obj/effect/turf_decal/box/corners{ dir = 1 }, @@ -21278,9 +20811,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-10" - }, /obj/machinery/button/door{ id = "transittube_ai"; name = "Transit Tube Lockdown Toggle"; @@ -21538,16 +21068,6 @@ /turf/open/floor/plating, /area/maintenance/aft) "aIY" = ( -/obj/effect/turf_decal/tile/neutral, -/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/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ dir = 8 @@ -21741,7 +21261,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/security/brig) "aJs" = ( @@ -21768,7 +21287,6 @@ /area/engine/atmos) "aJu" = ( /obj/machinery/computer/med_data, -/obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -21781,20 +21299,11 @@ /turf/open/floor/plasteel/dark, /area/medical/medbay/central) "aJv" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/medical/medbay/central) +/obj/structure/bed, +/obj/item/bedsheet/black, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/crew_quarters/locker) "aJw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, @@ -22149,9 +21658,6 @@ /obj/structure/cable{ icon_state = "2-4" }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "applebush" - }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -22678,16 +22184,6 @@ }, /area/maintenance/port) "aKN" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/turf_decal/box, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ dir = 4 @@ -22977,9 +22473,6 @@ dir = 1 }, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, /turf/open/floor/plasteel, /area/medical/medbay/central) "aLk" = ( @@ -23001,13 +22494,6 @@ /obj/structure/chair{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/medical/medbay/central) "aLn" = ( @@ -23029,16 +22515,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aLo" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 9 }, @@ -23409,11 +22885,10 @@ /turf/open/floor/plasteel/showroomfloor, /area/science/mixing) "aMa" = ( -/obj/effect/turf_decal/loading_area, /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/engine, /area/engine/engineering) "aMb" = ( /obj/effect/turf_decal/tile/neutral, @@ -23635,7 +23110,6 @@ dir = 4 }, /obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple, /obj/machinery/power/apc{ areastring = "/area/science/mixing/chamber"; dir = 4; @@ -23834,9 +23308,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, /turf/open/floor/plasteel, /area/medical/medbay/central) "aME" = ( @@ -24193,21 +23664,10 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "aNi" = ( -/obj/machinery/power/compressor{ - comp_id = "incineratorturbine"; - dir = 1; +/obj/machinery/power/turbine{ luminosity = 2 }, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/structure/cable, -/obj/machinery/camera{ - c_tag = "Turbine Chamber"; - dir = 4; - name = "turbine camera"; - network = list("turbine") - }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "aNj" = ( @@ -24308,7 +23768,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/fore) "aNr" = ( @@ -24708,12 +24167,7 @@ }, /turf/open/floor/plasteel/dark, /area/medical/chemistry) -"aOa" = ( -/obj/structure/flora/junglebush/b, -/turf/open/floor/grass, -/area/medical/genetics) "aOb" = ( -/obj/structure/flora/junglebush/large, /turf/open/floor/grass, /area/medical/genetics) "aOc" = ( @@ -24770,10 +24224,6 @@ /area/maintenance/port/fore) "aOh" = ( /obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple, /obj/machinery/atmospherics/pipe/manifold/general/visible{ dir = 8 }, @@ -24835,10 +24285,6 @@ /area/medical/genetics) "aOn" = ( /obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple, /obj/machinery/atmospherics/components/binary/valve{ dir = 8 }, @@ -24846,14 +24292,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/science/mixing/chamber) "aOo" = ( -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple, /obj/machinery/atmospherics/pipe/manifold/general/visible{ dir = 4 }, @@ -25279,22 +24717,6 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/cmo) -"aOS" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) "aOT" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -25313,16 +24735,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aOU" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, /obj/effect/turf_decal/box, /obj/structure/disposalpipe/sorting/mail{ @@ -25366,16 +24778,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/heads/cmo) "aOY" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/sorting/mail{ dir = 4; name = "bar sorting disposal pipe"; @@ -25503,19 +24905,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/science/research) "aPk" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -25542,7 +24931,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 9 }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/science/mixing/chamber) "aPn" = ( @@ -25652,16 +25040,6 @@ /turf/open/floor/plasteel/dark, /area/medical/genetics) "aPv" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, @@ -25691,18 +25069,10 @@ /turf/open/floor/plating, /area/medical/storage) "aPz" = ( -/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/box, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -25805,16 +25175,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/science/mixing) "aPH" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/turf_decal/bot, /obj/machinery/holopad, /obj/structure/disposalpipe/segment{ @@ -26011,13 +25371,9 @@ /area/medical/storage) "aPV" = ( /obj/structure/table/glass, -/obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, /obj/effect/turf_decal/tile/blue, /obj/item/paper_bin{ pixel_x = -4; @@ -26228,23 +25584,6 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/medical/medbay/central) -"aQm" = ( -/obj/structure/closet/crate/wooden/toy, -/obj/effect/turf_decal/bot, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/obj/machinery/newscaster{ - pixel_y = 30 - }, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/theatre) "aQn" = ( /obj/structure/closet/secure_closet/medical3, /obj/item/storage/belt/medical, @@ -26381,10 +25720,6 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/bar/atrium) "aQy" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, /turf/open/floor/plasteel/showroomfloor, /area/medical/medbay/central) "aQz" = ( @@ -26642,9 +25977,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/cable{ - icon_state = "1-4" - }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment{ @@ -26655,16 +25987,14 @@ }, /area/maintenance/central) "aRc" = ( -/obj/structure/cable{ - icon_state = "0-8" +/obj/machinery/door/airlock/maintenance{ + name = "backstage maintenance"; + req_access_txt = "46" }, -/obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/turf/open/floor/plasteel/dark, /area/maintenance/central) "aRd" = ( /obj/machinery/computer/med_data{ @@ -26713,16 +26043,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/medical/storage) "aRh" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 5 }, @@ -26739,6 +26059,9 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -27112,16 +26435,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/checkpoint/science/research) "aRB" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -27164,16 +26477,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/medical/storage) "aRE" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-8" }, @@ -27433,7 +26736,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/fore) "aRZ" = ( @@ -27642,7 +26944,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/medical/medbay/central) "aSm" = ( -/obj/effect/decal/cleanable/blood/old, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, @@ -27654,23 +26955,6 @@ }, /turf/open/floor/engine, /area/ai_monitored/turret_protected/ai_upload) -"aSn" = ( -/obj/structure/table/wood, -/obj/structure/mirror{ - pixel_x = -26 - }, -/obj/item/reagent_containers/food/snacks/pie/cream, -/obj/item/clothing/under/costume/lobster, -/obj/item/clothing/head/lobsterhat, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/theatre) "aSo" = ( /obj/machinery/navbeacon{ codes_txt = "delivery;dir=4"; @@ -27824,25 +27108,21 @@ /turf/open/floor/plasteel/dark, /area/medical/chemistry) "aSx" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/structure/chair, +/obj/machinery/light{ + dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/item/clipboard, -/obj/item/storage/firstaid/regular, +/obj/effect/landmark/start/assistant, /turf/open/floor/plasteel/dark, /area/medical/medbay/central) "aSy" = ( /obj/structure/table, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/item/stack/medical/gauze, /obj/item/stack/medical/ointment, /obj/item/stack/medical/bruise_pack{ pixel_x = 4 }, +/obj/item/storage/firstaid/regular, /turf/open/floor/plasteel/dark, /area/medical/medbay/central) "aSz" = ( @@ -27923,10 +27203,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/science/lab) "aSE" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/showroomfloor, /area/medical/medbay/central) @@ -28111,16 +27387,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/science/mixing) "aST" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, @@ -28159,11 +27425,12 @@ }, /area/maintenance/starboard) "aSW" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral, -/obj/item/crowbar/red, -/obj/item/healthanalyzer, -/turf/open/floor/plasteel/dark, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoprivacy"; + name = "Office Privacy Shutters" + }, +/turf/open/floor/plating, /area/medical/medbay/central) "aSX" = ( /obj/machinery/status_display/evac, @@ -28280,7 +27547,6 @@ /turf/open/floor/grass, /area/medical/virology) "aTi" = ( -/obj/structure/flora/junglebush/large, /obj/structure/flora/ausbushes/ywflowers, /turf/open/floor/grass, /area/medical/virology) @@ -28738,9 +28004,6 @@ /obj/effect/turf_decal/tile/purple{ dir = 4 }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, /obj/effect/turf_decal/tile/purple, /obj/structure/disposalpipe/segment{ dir = 4 @@ -28917,7 +28180,6 @@ /turf/open/floor/plasteel/dark, /area/maintenance/port/fore) "aUc" = ( -/obj/effect/turf_decal/loading_area, /obj/effect/turf_decal/tile/purple{ dir = 1 }, @@ -29343,9 +28605,6 @@ dir = 1 }, /obj/effect/turf_decal/tile/blue, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-18" - }, /turf/open/floor/plasteel/showroomfloor, /area/medical/storage) "aUG" = ( @@ -29724,7 +28983,6 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "aVc" = ( -/obj/effect/decal/cleanable/blood/old, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/structure/cable{ @@ -29764,9 +29022,6 @@ /obj/effect/turf_decal/tile/purple{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-18" - }, /obj/machinery/light_switch{ pixel_x = -24; pixel_y = -6 @@ -29885,16 +29140,12 @@ dir = 1 }, /obj/effect/turf_decal/tile/purple, -/obj/effect/decal/cleanable/blood/old, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ dir = 1 }, /turf/open/floor/plasteel/showroomfloor, /area/science/storage) "aVm" = ( -/obj/effect/turf_decal/loading_area{ - dir = 1 - }, /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -29969,9 +29220,7 @@ /area/crew_quarters/kitchen) "aVr" = ( /obj/structure/flora/grass/jungle/b, -/obj/structure/flora/ausbushes/fullgrass, /obj/structure/flora/ausbushes/brflowers, -/obj/structure/flora/ausbushes/leafybush, /obj/structure/window/reinforced{ dir = 4 }, @@ -30155,7 +29404,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/decal/cleanable/blood/old, /obj/structure/cable{ icon_state = "1-8" }, @@ -30167,7 +29415,6 @@ pixel_x = -6; pixel_y = 8 }, -/obj/item/restraints/handcuffs, /obj/item/pen, /turf/open/floor/plasteel/dark, /area/medical/virology) @@ -30239,7 +29486,7 @@ /obj/structure/disposalpipe/segment{ dir = 10 }, -/turf/closed/wall/rust, +/turf/closed/wall, /area/janitor) "aVN" = ( /obj/structure/chair{ @@ -30662,10 +29909,7 @@ /area/security/checkpoint/medical) "aWs" = ( /obj/structure/flora/grass/jungle/b, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/genericbush, /obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/sunnybush, /obj/structure/window/reinforced{ dir = 8 }, @@ -30679,10 +29923,6 @@ /turf/open/floor/grass, /area/hallway/secondary/exit/departure_lounge) "aWt" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, @@ -30906,22 +30146,18 @@ "aWQ" = ( /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/blood/old, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/quartermaster/storage) "aWR" = ( /turf/closed/wall, /area/science/xenobiology) "aWS" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/newscaster{ + pixel_x = 30 }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/bar) +/turf/open/floor/wood, +/area/crew_quarters/locker) "aWT" = ( /obj/structure/closet/secure_closet/chemical, /obj/structure/window/reinforced{ @@ -31074,6 +30310,7 @@ /obj/item/radio/intercom{ pixel_y = 22 }, +/obj/item/mmi/posibrain, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "aXh" = ( @@ -31083,7 +30320,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/quartermaster/storage) "aXi" = ( @@ -31135,6 +30371,8 @@ pixel_y = 4 }, /obj/item/stock_parts/cell/high, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, /turf/open/floor/plasteel/dark, /area/science/lab) "aXo" = ( @@ -31239,20 +30477,14 @@ /turf/open/floor/plasteel/dark, /area/maintenance/central) "aXw" = ( -/obj/structure/table, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/folder, -/obj/item/nanite_scanner{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/nanite_remote, /obj/machinery/light{ dir = 4 }, +/obj/machinery/computer/nanite_cloud_controller, /turf/open/floor/plasteel/dark, /area/science/research) "aXx" = ( @@ -31316,7 +30548,6 @@ /turf/open/floor/mech_bay_recharge_floor, /area/science/robotics/mechbay) "aXD" = ( -/obj/effect/decal/cleanable/blood/old, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, @@ -31338,17 +30569,18 @@ /turf/open/floor/engine, /area/ai_monitored/turret_protected/ai_upload) "aXE" = ( -/obj/machinery/nanite_chamber, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Cabin_4Privacy"; + name = "Cabin 4 Privacy Shutter" }, -/turf/open/floor/plasteel/dark, -/area/science/research) +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/locker) "aXF" = ( /obj/effect/turf_decal/bot, -/obj/machinery/computer/nanite_chamber_control, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -31364,6 +30596,7 @@ name = "science camera"; network = list("ss13","rd") }, +/obj/machinery/computer/nanite_chamber_control, /turf/open/floor/plasteel/dark, /area/science/research) "aXG" = ( @@ -31441,11 +30674,6 @@ /area/tcommsat/server) "aXN" = ( /obj/machinery/igniter/incinerator_toxmix, -/mob/living/simple_animal/chicken{ - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0); - desc = "A timeless classic."; - name = "Kentucky" - }, /turf/open/floor/engine/vacuum, /area/science/mixing/chamber) "aXO" = ( @@ -31544,13 +30772,9 @@ /area/maintenance/starboard/fore) "aXX" = ( /obj/structure/chair/office/light{ - dir = 1; - pixel_y = 3 + dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/box/red, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -31899,7 +31123,6 @@ id = "emmd"; name = "Emergency Medical Lockdown Shutters" }, -/obj/effect/turf_decal/caution/stand_clear, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/dark, /area/medical/medbay/central) @@ -32026,20 +31249,9 @@ /turf/open/floor/plasteel/showroomfloor, /area/medical/chemistry) "aYM" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "aYN" = ( -/obj/machinery/nanite_program_hub, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -32051,6 +31263,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/structure/table/reinforced, +/obj/item/nanite_scanner, +/obj/item/nanite_remote, /turf/open/floor/plasteel/dark, /area/science/research) "aYO" = ( @@ -32077,14 +31292,16 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/bar) "aYR" = ( -/obj/machinery/computer/nanite_cloud_controller, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Cabin_3Privacy"; + name = "Cabin 3 Privacy Shutter" }, -/turf/open/floor/plasteel/dark, -/area/science/research) +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/locker) "aYS" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -32099,7 +31316,6 @@ /turf/open/floor/plasteel/dark, /area/science/research) "aYT" = ( -/obj/machinery/nanite_programmer, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -32111,6 +31327,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/machinery/modular_computer/console/preset/civilian{ + dir = 8 + }, /turf/open/floor/plasteel/dark, /area/science/research) "aYV" = ( @@ -32150,10 +31369,20 @@ /turf/open/floor/engine, /area/ai_monitored/turret_protected/ai_upload) "aYZ" = ( -/obj/effect/turf_decal/box, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/engine, -/area/ai_monitored/turret_protected/ai_upload) +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port/aft) "aZa" = ( /obj/structure/table, /obj/effect/turf_decal/tile/neutral, @@ -32217,24 +31446,31 @@ /turf/open/floor/plasteel/dark, /area/science/lab) "aZf" = ( -/obj/machinery/door/airlock/maintenance{ - name = "backstage maintenance"; - req_access_txt = "46" +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/maintenance/central) +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/theatre) "aZg" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/science/lab) +/turf/open/floor/plasteel, +/area/hallway/primary/central) "aZh" = ( /obj/machinery/porta_turret/ai, /obj/machinery/light/small{ @@ -32251,25 +31487,10 @@ /turf/closed/wall, /area/science/lab) "aZj" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/item/clipboard, -/obj/item/reagent_containers/glass/beaker/large{ - pixel_x = -6 - }, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = 6 - }, -/obj/item/clothing/glasses/science, -/obj/item/clothing/glasses/science, -/obj/structure/extinguisher_cabinet{ - pixel_y = -30 - }, -/turf/open/floor/plasteel/dark, -/area/science/lab) +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) "aZk" = ( /obj/structure/table, /obj/effect/turf_decal/tile/neutral{ @@ -32281,9 +31502,6 @@ /obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/glass/fifty, /obj/item/clothing/glasses/welding, -/obj/item/radio/intercom{ - pixel_x = 28 - }, /turf/open/floor/plasteel/dark, /area/science/lab) "aZl" = ( @@ -32662,7 +31880,6 @@ dir = 8 }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/fore) "aZP" = ( @@ -33014,7 +32231,6 @@ /obj/structure/sign/warning/vacuum{ pixel_x = 32 }, -/obj/effect/decal/cleanable/blood/old, /turf/open/floor/engine/vacuum, /area/science/mixing/chamber) "bar" = ( @@ -33130,9 +32346,6 @@ /turf/open/floor/plasteel/dark, /area/medical/surgery) "baz" = ( -/obj/effect/turf_decal/loading_area{ - dir = 1 - }, /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -33359,16 +32572,6 @@ /turf/open/floor/circuit/green/telecomms/mainframe, /area/science/server) "baQ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -33735,7 +32938,6 @@ /area/science/mixing) "bbt" = ( /obj/machinery/air_sensor/atmos/toxins_mixing_tank, -/obj/effect/decal/cleanable/blood/old, /turf/open/floor/engine/vacuum, /area/science/mixing/chamber) "bbv" = ( @@ -33775,16 +32977,6 @@ /turf/closed/wall/r_wall, /area/science/mixing/chamber) "bbz" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, @@ -33865,8 +33057,6 @@ /turf/open/floor/engine, /area/ai_monitored/turret_protected/ai_upload) "bbH" = ( -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple, /obj/structure/cable{ icon_state = "1-2" }, @@ -33932,16 +33122,9 @@ dir = 4 }, /obj/item/clipboard, -/obj/item/nanite_remote{ - pixel_x = -4; - pixel_y = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/nanite_scanner{ - pixel_x = 4 - }, /obj/machinery/light{ dir = 1 }, @@ -34085,7 +33268,6 @@ /turf/closed/wall/r_wall, /area/science/mixing/chamber) "bbY" = ( -/obj/effect/decal/cleanable/blood/old, /obj/structure/cable{ icon_state = "1-4" }, @@ -34445,8 +33627,12 @@ }, /area/maintenance/port) "bcD" = ( -/turf/closed/wall/r_wall/rust, -/area/science/mixing) +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) "bcE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -34780,7 +33966,7 @@ /obj/machinery/light{ dir = 1 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/hydroponics) "bcY" = ( /obj/structure/grille/broken, @@ -34818,7 +34004,6 @@ /area/crew_quarters/kitchen) "bda" = ( /obj/machinery/door/firedoor/heavy, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/science/mixing/chamber) "bdb" = ( @@ -34868,7 +34053,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/fore) "bdg" = ( @@ -35373,12 +34557,6 @@ /turf/open/floor/plating, /area/maintenance/starboard) "bdO" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -35495,7 +34673,6 @@ pixel_x = 32; pixel_y = -8 }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/fore) "bdV" = ( @@ -35868,7 +35045,6 @@ pixel_x = -32; pixel_y = -8 }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/fore) "bev" = ( @@ -35947,7 +35123,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/medical/medbay/central) "beC" = ( @@ -35966,6 +35141,7 @@ dir = 4 }, /obj/effect/landmark/event_spawn, +/obj/machinery/nanite_program_hub, /turf/open/floor/plasteel/dark, /area/science/research) "beE" = ( @@ -35990,7 +35166,6 @@ "beF" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/medical/medbay/central) "beG" = ( @@ -36411,6 +35586,7 @@ /obj/machinery/light{ dir = 1 }, +/obj/machinery/shieldwallgen/xenobiologyaccess, /turf/open/floor/plating{ icon_state = "panelscorched" }, @@ -36760,7 +35936,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/port) "bfT" = ( @@ -36815,7 +35990,6 @@ "bfX" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/port) "bfY" = ( @@ -36838,6 +36012,9 @@ /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ name = "euthanization chamber freezer" }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "bga" = ( @@ -36939,7 +36116,6 @@ pixel_x = 32; pixel_y = -8 }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/port) "bgi" = ( @@ -37318,16 +36494,6 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "bgK" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -37406,10 +36572,6 @@ /turf/open/floor/grass, /area/medical/virology) "bgP" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -37425,7 +36587,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel/dark/corner, +/turf/open/floor/plasteel, /area/hallway/primary/starboard) "bgQ" = ( /obj/structure/cable{ @@ -38103,16 +37265,6 @@ /turf/open/floor/plating, /area/quartermaster/office) "bhY" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bhZ" = ( @@ -38166,16 +37318,6 @@ }, /area/maintenance/port) "bie" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -38471,16 +37613,6 @@ /turf/open/floor/plasteel/dark, /area/security/checkpoint/science/research) "biC" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/junction, /turf/open/floor/plasteel, /area/hallway/primary/starboard) @@ -38795,16 +37927,6 @@ /turf/open/floor/plasteel, /area/security/checkpoint/supply) "biX" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/turf_decal/bot, /obj/machinery/holopad, /turf/open/floor/plasteel, @@ -38863,7 +37985,6 @@ dir = 1 }, /obj/effect/turf_decal/loading_area, -/obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/quartermaster/storage) @@ -38879,7 +38000,6 @@ }, /obj/effect/turf_decal/loading_area, /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, /turf/open/floor/plasteel, /area/quartermaster/storage) "bjd" = ( @@ -39043,16 +38163,6 @@ /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "bjp" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, @@ -39097,16 +38207,6 @@ /turf/open/floor/plasteel/dark, /area/medical/surgery) "bjt" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, @@ -39126,7 +38226,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/tank/internals/oxygen/yellow, /turf/open/floor/plasteel/dark, /area/quartermaster/miningoffice) "bjv" = ( @@ -39137,7 +38236,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/tank/internals/oxygen/yellow, /obj/machinery/firealarm{ dir = 4; pixel_x = -24 @@ -39189,7 +38287,6 @@ dir = 1; pixel_y = 3 }, -/obj/effect/decal/cleanable/blood/old, /obj/structure/cable{ icon_state = "1-4" }, @@ -39210,7 +38307,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 5 }, -/obj/effect/decal/cleanable/blood/old, /obj/structure/cable{ icon_state = "4-8" }, @@ -39382,16 +38478,6 @@ /turf/open/floor/plating, /area/maintenance/central) "bjN" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -39437,22 +38523,12 @@ /obj/effect/turf_decal/tile/brown{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, /turf/open/floor/plasteel, /area/quartermaster/storage) "bjS" = ( @@ -39692,16 +38768,6 @@ /turf/open/floor/plasteel/dark, /area/quartermaster/office) "bks" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/quartermaster/storage) "bkt" = ( @@ -39800,16 +38866,6 @@ /area/quartermaster/sorting) "bkA" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -39834,7 +38890,6 @@ /obj/effect/turf_decal/tile/brown, /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/arrows, -/obj/effect/decal/cleanable/blood/old, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, @@ -39943,7 +38998,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/tank/internals/oxygen/yellow, /obj/machinery/light, /obj/machinery/requests_console{ department = "Mining"; @@ -40138,16 +39192,6 @@ /turf/open/floor/plating, /area/maintenance/port) "blb" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -40221,16 +39265,6 @@ /turf/open/floor/plasteel/dark, /area/quartermaster/miningoffice) "bli" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -40240,16 +39274,6 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "blj" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/landmark/event_spawn, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, @@ -40344,16 +39368,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/medical/virology) "blq" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, @@ -40361,16 +39375,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "blr" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, @@ -40448,16 +39452,6 @@ /area/quartermaster/storage) "blz" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ dir = 8 }, @@ -40487,36 +39481,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/showroomfloor, /area/library) -"blC" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) "blD" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -40595,16 +39560,6 @@ /turf/open/floor/plasteel, /area/quartermaster/qm) "blK" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, @@ -40613,16 +39568,6 @@ /area/quartermaster/storage) "blL" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -40853,7 +39798,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/hydroponics) "bmf" = ( /obj/effect/turf_decal/tile/brown{ @@ -41227,7 +40172,6 @@ }, /obj/effect/turf_decal/arrows, /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, /obj/machinery/firealarm{ dir = 4; pixel_x = -24 @@ -41244,7 +40188,7 @@ dir = 8 }, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/hydroponics) "bmF" = ( /obj/machinery/status_display/evac, @@ -41259,7 +40203,7 @@ /obj/machinery/plantgenes{ pixel_y = 5 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/hydroponics) "bmH" = ( /obj/effect/turf_decal/tile/red{ @@ -41287,16 +40231,6 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "bmJ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/hallway/primary/port) @@ -41416,7 +40350,7 @@ /area/crew_quarters/kitchen) "bmU" = ( /obj/structure/lattice, -/turf/closed/wall/r_wall/rust, +/turf/closed/wall/r_wall, /area/security/prison) "bmV" = ( /obj/effect/turf_decal/tile/neutral, @@ -41521,7 +40455,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 6 }, -/obj/effect/decal/cleanable/blood/old, /obj/structure/cable{ icon_state = "4-8" }, @@ -41680,10 +40613,6 @@ /area/crew_quarters/locker) "bnq" = ( /obj/structure/flora/grass/jungle, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/genericbush, -/obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/sunnybush, /obj/structure/window/reinforced{ dir = 4 }, @@ -41779,17 +40708,6 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/library) -"bny" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/hydroponics) "bnz" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -41845,31 +40763,7 @@ }, /turf/open/floor/plasteel/dark, /area/hydroponics) -"bnD" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/structure/extinguisher_cabinet{ - pixel_x = -26 - }, -/turf/open/floor/plasteel/dark, -/area/hydroponics) "bnE" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/sorting/mail{ name = "kitchen sorting disposal pipe"; sortType = 20 @@ -41911,9 +40805,7 @@ /area/bridge) "bnH" = ( /obj/structure/flora/grass/jungle/b, -/obj/structure/flora/ausbushes/fullgrass, /obj/structure/flora/ausbushes/brflowers, -/obj/structure/flora/ausbushes/leafybush, /obj/structure/window/reinforced{ dir = 4 }, @@ -41986,20 +40878,6 @@ /obj/item/toy/figure/chef, /turf/open/floor/plating, /area/crew_quarters/kitchen) -"bnM" = ( -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple, -/obj/structure/sign/departments/science{ - pixel_x = 32 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) "bnN" = ( /obj/effect/turf_decal/tile/green{ dir = 1 @@ -42048,11 +40926,7 @@ /turf/open/floor/plasteel/dark, /area/bridge) "bnR" = ( -/obj/structure/flora/grass/jungle, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/genericbush, /obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/sunnybush, /obj/structure/window/reinforced{ dir = 4 }, @@ -42061,17 +40935,6 @@ }, /turf/open/floor/grass, /area/hydroponics) -"bnS" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/bot, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/sign/poster/official/fruit_bowl{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/dark, -/area/hydroponics) "bnT" = ( /obj/structure/flora/grass/jungle/b, /obj/structure/flora/ausbushes/ppflowers, @@ -42165,10 +41028,7 @@ /area/security/courtroom) "boa" = ( /obj/structure/flora/grass/jungle/b, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/genericbush, /obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/sunnybush, /obj/structure/window/reinforced{ dir = 8 }, @@ -42178,25 +41038,13 @@ /turf/open/floor/grass, /area/hydroponics) "bob" = ( -/obj/structure/flora/grass/jungle, -/obj/structure/flora/ausbushes/fullgrass, /obj/structure/flora/ausbushes/brflowers, -/obj/structure/flora/ausbushes/leafybush, /obj/structure/window/reinforced{ dir = 4 }, /obj/structure/window/reinforced, /turf/open/floor/grass, /area/hydroponics) -"boc" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/hydroponics) "bod" = ( /obj/effect/turf_decal/tile/brown{ dir = 4 @@ -42280,10 +41128,7 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "boh" = ( -/obj/structure/flora/grass/jungle, -/obj/structure/flora/ausbushes/fullgrass, /obj/structure/flora/ausbushes/brflowers, -/obj/structure/flora/ausbushes/leafybush, /obj/structure/window/reinforced{ dir = 8 }, @@ -42954,12 +41799,9 @@ /area/crew_quarters/kitchen) "bpi" = ( /obj/structure/flora/grass/jungle/b, -/obj/structure/flora/junglebush/b, /obj/item/radio/intercom{ pixel_y = -28 }, -/obj/effect/decal/remains/human, -/obj/effect/decal/cleanable/blood/old, /turf/open/floor/grass, /area/hydroponics) "bpj" = ( @@ -43172,10 +42014,6 @@ /obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -43194,10 +42032,6 @@ /obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -43236,10 +42070,6 @@ /obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -43247,9 +42077,6 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, /turf/open/floor/plasteel, /area/quartermaster/storage) "bpE" = ( @@ -43285,7 +42112,7 @@ /area/quartermaster/storage) "bpF" = ( /obj/structure/sign/departments/cargo, -/turf/closed/wall/rust, +/turf/closed/wall, /area/hallway/primary/starboard) "bpG" = ( /obj/effect/turf_decal/tile/neutral, @@ -43379,16 +42206,6 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/port) "bpN" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ dir = 8 }, @@ -43467,24 +42284,6 @@ /obj/structure/sign/departments/botany, /turf/closed/wall, /area/hallway/primary/starboard) -"bpW" = ( -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) "bpX" = ( /obj/machinery/door/poddoor/preopen{ id = "brigfrontdoor"; @@ -43493,7 +42292,6 @@ /obj/structure/extinguisher_cabinet{ pixel_y = 28 }, -/obj/effect/turf_decal/caution/stand_clear, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/dark, /area/security/brig) @@ -43541,7 +42339,7 @@ /area/bridge) "bqb" = ( /obj/structure/sign/departments/custodian, -/turf/closed/wall/rust, +/turf/closed/wall, /area/maintenance/central) "bqc" = ( /obj/effect/turf_decal/bot, @@ -43564,10 +42362,6 @@ /turf/open/floor/plasteel, /area/crew_quarters/kitchen) "bqe" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -43590,9 +42384,6 @@ /turf/open/floor/plasteel/dark, /area/teleporter) "bqg" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/cable{ icon_state = "1-8" }, @@ -43614,7 +42405,7 @@ /obj/item/radio/intercom{ pixel_y = 22 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/hydroponics) "bqj" = ( /obj/effect/turf_decal/tile/red, @@ -43665,8 +42456,13 @@ /area/crew_quarters/kitchen) "bqm" = ( /obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /turf/open/floor/plasteel, -/area/bridge) +/area/security/warden) "bqn" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -43689,16 +42485,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) "bqp" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 9 }, @@ -43720,17 +42506,15 @@ }, /area/maintenance/central) "bqs" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/plasteel, -/area/bridge) +/area/security/main) "bqt" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, @@ -43821,8 +42605,6 @@ "bqA" = ( /obj/structure/table, /obj/item/folder/white, -/obj/item/restraints/handcuffs, -/obj/item/wirerod, /obj/item/pen, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -43994,16 +42776,6 @@ /turf/open/floor/plasteel, /area/hydroponics) "bqN" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ dir = 4 }, @@ -44104,16 +42876,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bqT" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -44124,18 +42886,17 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bqU" = ( -/obj/structure/table/wood, -/obj/item/clothing/gloves/color/rainbow/clown, -/obj/item/storage/crayons, -/obj/item/storage/crayons, -/obj/item/bikehorn/rubberducky, -/obj/structure/sign/poster/contraband/clown{ - pixel_x = -30 +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/theatre) "bqV" = ( /obj/effect/turf_decal/bot, @@ -44313,16 +43074,6 @@ /turf/open/floor/plasteel/dark, /area/maintenance/starboard) "bri" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 10 }, @@ -44374,7 +43125,9 @@ dir = 1 }, /obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/box, +/obj/effect/turf_decal/bot{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/engine/engineering) "bro" = ( @@ -44383,7 +43136,9 @@ }, /obj/machinery/portable_atmospherics/canister, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/box, +/obj/effect/turf_decal/bot{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/engine/engineering) "brp" = ( @@ -44500,7 +43255,6 @@ dir = 4; pixel_x = -26 }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "brA" = ( @@ -44678,22 +43432,7 @@ /area/crew_quarters/bar/atrium) "brN" = ( /obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/bot, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 28 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/hydroponics) "brO" = ( /obj/machinery/hydroponics/constructable, @@ -44702,7 +43441,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/hydroponics) "brP" = ( /obj/structure/table, @@ -44966,19 +43705,10 @@ }, /area/maintenance/central/secondary) "bsm" = ( -/turf/closed/wall/rust, -/area/chapel/office) +/obj/machinery/status_display/evac, +/turf/open/floor/plasteel, +/area/engine/supermatter) "bsn" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -45036,9 +43766,6 @@ /turf/open/floor/carpet, /area/lawoffice) "bss" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -45062,16 +43789,6 @@ }, /area/hallway/primary/port) "bst" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -45096,16 +43813,6 @@ /turf/open/floor/plasteel/dark/corner, /area/hallway/primary/port) "bsv" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/sorting/mail/flip{ dir = 2; name = "cargo sorting disposal pipe"; @@ -45199,12 +43906,6 @@ /turf/open/floor/plasteel, /area/security/courtroom) "bsC" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/structure/cable{ icon_state = "1-2" }, @@ -45220,13 +43921,6 @@ "bsE" = ( /turf/open/floor/plasteel, /area/bridge) -"bsF" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) "bsG" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -45347,10 +44041,7 @@ /area/library) "bsN" = ( /obj/structure/flora/grass/jungle/b, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/genericbush, /obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/sunnybush, /obj/structure/window/reinforced{ dir = 8 }, @@ -45361,10 +44052,7 @@ /turf/open/floor/grass, /area/crew_quarters/heads/hop) "bsO" = ( -/obj/structure/flora/grass/jungle, -/obj/structure/flora/ausbushes/fullgrass, /obj/structure/flora/ausbushes/brflowers, -/obj/structure/flora/ausbushes/leafybush, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ dir = 1 @@ -45372,11 +44060,7 @@ /turf/open/floor/grass, /area/crew_quarters/heads/hop) "bsP" = ( -/obj/structure/flora/grass/jungle, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/genericbush, /obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/sunnybush, /obj/structure/window/reinforced{ dir = 4 }, @@ -45548,12 +44232,6 @@ name = "off ramp"; pixel_y = 5 }, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, /turf/open/floor/plasteel, /area/quartermaster/storage) "btc" = ( @@ -45768,7 +44446,6 @@ "btt" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "btu" = ( @@ -45909,8 +44586,6 @@ "btH" = ( /obj/structure/flora/grass/jungle/b, /obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/brflowers, -/obj/structure/flora/ausbushes/leafybush, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ dir = 1 @@ -45926,10 +44601,7 @@ /area/crew_quarters/bar) "btI" = ( /obj/structure/flora/grass/jungle, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/genericbush, /obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/sunnybush, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ dir = 1 @@ -46051,17 +44723,7 @@ /obj/structure/bookcase/random/reference, /turf/open/floor/wood, /area/crew_quarters/bar) -"btU" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) "btV" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -46125,11 +44787,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-17"; - pixel_x = 8; - pixel_y = 3 - }, /obj/machinery/light_switch{ pixel_x = 24; pixel_y = 40 @@ -46143,17 +44800,6 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/bar) -"bub" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - pixel_y = 3 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/bar) "buc" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -46268,12 +44914,6 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/bar) "buk" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -46344,10 +44984,6 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/bar) "bur" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, @@ -47082,7 +45718,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "bvC" = ( @@ -47197,7 +45832,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) "bvL" = ( @@ -47268,16 +45902,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/toilet/restrooms) "bvQ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -47326,10 +45950,6 @@ /turf/open/floor/plasteel/dark, /area/library) "bvV" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-16" }, @@ -47398,7 +46018,6 @@ /area/crew_quarters/heads/captain) "bwc" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) "bwd" = ( @@ -47423,9 +46042,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-16" - }, /obj/structure/extinguisher_cabinet{ pixel_x = 24 }, @@ -47701,16 +46317,6 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/captain) "bwF" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, @@ -47892,10 +46498,6 @@ /obj/structure/flora/ausbushes/ywflowers, /turf/open/floor/grass, /area/chapel/main) -"bwU" = ( -/obj/structure/flora/grass/jungle, -/turf/open/floor/grass, -/area/chapel/main) "bwV" = ( /obj/effect/turf_decal/tile/yellow{ dir = 8 @@ -47930,11 +46532,13 @@ /turf/open/floor/plasteel/dark, /area/security/checkpoint/supply) "bwY" = ( +/obj/structure/chair/stool, /turf/open/floor/plasteel/chapel{ dir = 8 }, /area/chapel/main) "bwZ" = ( +/obj/structure/chair/stool, /turf/open/floor/plasteel/chapel, /area/chapel/main) "bxa" = ( @@ -48029,10 +46633,7 @@ /area/chapel/main) "bxh" = ( /obj/structure/flora/grass/jungle, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/genericbush, /obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/sunnybush, /obj/structure/window/reinforced{ dir = 4 }, @@ -48154,10 +46755,7 @@ /area/quartermaster/storage) "bxt" = ( /obj/structure/flora/grass/jungle, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/genericbush, /obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/sunnybush, /obj/structure/window/reinforced{ dir = 4 }, @@ -48492,10 +47090,6 @@ /turf/open/floor/plasteel/dark, /area/medical/virology) "bxW" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-4" }, @@ -48563,9 +47157,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, /obj/machinery/light, /obj/machinery/airalarm{ dir = 1; @@ -48842,16 +47433,6 @@ /turf/open/floor/plasteel/dark, /area/maintenance/port/aft) "byv" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -48932,7 +47513,6 @@ /obj/structure/cable{ icon_state = "2-4" }, -/obj/effect/turf_decal/caution/stand_clear, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/dark, /area/security/brig) @@ -49772,6 +48352,9 @@ /obj/machinery/newscaster/security_unit{ pixel_x = 28 }, +/obj/structure/window/reinforced{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/captain) "bzQ" = ( @@ -50512,12 +49095,6 @@ name = "on ramp"; pixel_y = 6 }, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, /turf/open/floor/plasteel, /area/quartermaster/storage) "bAV" = ( @@ -50573,7 +49150,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/machinery/airalarm{ pixel_y = 22 @@ -50611,14 +49187,10 @@ /turf/open/floor/plasteel, /area/crew_quarters/locker) "bBc" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/dark/corner, +/turf/open/floor/plasteel, /area/hallway/primary/starboard) "bBd" = ( /obj/machinery/vending/tool, @@ -50646,19 +49218,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"bBf" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) "bBg" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -50710,7 +49269,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) "bBk" = ( @@ -51133,16 +49691,6 @@ /turf/open/floor/plasteel/dark, /area/storage/primary) "bBS" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "2-8" }, @@ -51205,16 +49753,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bBV" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ dir = 8 }, @@ -51222,16 +49760,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bBW" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -51280,16 +49808,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bCa" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/hallway/primary/starboard) @@ -51630,14 +50148,11 @@ /turf/open/floor/plasteel/dark, /area/hydroponics) "bCG" = ( -/obj/effect/turf_decal/loading_area{ - dir = 1 - }, /obj/machinery/atmospherics/components/binary/pump{ dir = 1; name = "External Gas to Loop" }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/engine, /area/engine/engineering) "bCH" = ( /obj/effect/turf_decal/tile/blue{ @@ -52527,19 +51042,6 @@ luminosity = 2 }, /area/storage/tech) -"bEa" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/emcloset/anchored, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/dark, -/area/maintenance/port/aft) "bEb" = ( /obj/structure/cable{ icon_state = "0-4" @@ -52851,16 +51353,6 @@ }, /area/maintenance/port/aft) "bEA" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, @@ -52870,16 +51362,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ dir = 8 @@ -52887,32 +51369,12 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bEC" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "bED" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/turf_decal/box, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ dir = 8 @@ -52935,16 +51397,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bEG" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/turf_decal/box, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -53215,7 +51667,9 @@ dir = 1 }, /obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/effect/turf_decal/box, +/obj/effect/turf_decal/bot{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/engine/engineering) "bFi" = ( @@ -53321,6 +51775,9 @@ }, /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, /turf/open/floor/plating{ icon_state = "platingdmg3" }, @@ -54300,10 +52757,6 @@ /turf/open/floor/plasteel/dark, /area/maintenance/port/aft) "bGS" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/bot, /obj/machinery/holopad, /turf/open/floor/plasteel, @@ -54334,15 +52787,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) -"bGW" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) "bGX" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -54638,21 +53082,6 @@ /obj/item/bedsheet/brown, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"bHv" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) "bHw" = ( /obj/structure/table, /obj/effect/turf_decal/tile/red{ @@ -54691,16 +53120,6 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "bHy" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/turf_decal/box, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ dir = 1 @@ -54965,16 +53384,6 @@ }, /area/hallway/primary/central) "bHP" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/effect/decal/cleanable/dirt, @@ -54987,9 +53396,6 @@ "bHS" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/security/processing) "bHT" = ( @@ -55523,16 +53929,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bIO" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/turf_decal/bot, /obj/machinery/holopad, /turf/open/floor/plasteel, @@ -55544,12 +53940,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/security/processing) "bIQ" = ( @@ -55821,13 +54211,7 @@ pixel_x = 6 }, /obj/item/pen, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, @@ -55840,12 +54224,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/item/storage/toolbox/mechanical{ pixel_x = 2; pixel_y = 4 @@ -55904,16 +54282,6 @@ /turf/open/floor/plasteel, /area/crew_quarters/locker) "bJs" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ dir = 1 }, @@ -56262,13 +54630,6 @@ /turf/open/floor/wood, /area/crew_quarters/locker) "bJT" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, @@ -56289,7 +54650,7 @@ dir = 1 }, /turf/open/floor/wood{ - icon_state = "wood-broken6" + icon_state = "wood-broken5" }, /area/crew_quarters/locker) "bJV" = ( @@ -56325,9 +54686,9 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "bJY" = ( -/obj/structure/bed, -/obj/item/bedsheet/black, -/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/table/wood, +/obj/item/folder/red, +/obj/item/lighter, /obj/machinery/button/door{ id = "Cabin_2"; name = "Cabin 2 Privacy Lock"; @@ -56335,14 +54696,7 @@ pixel_y = 24; specialfunctions = 4 }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, +/turf/open/floor/wood, /area/crew_quarters/locker) "bJZ" = ( /obj/machinery/light/small{ @@ -56351,9 +54705,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +/turf/open/floor/wood, /area/crew_quarters/locker) "bKa" = ( /obj/effect/turf_decal/tile/neutral{ @@ -56382,56 +54734,32 @@ }, /turf/open/floor/wood, /area/crew_quarters/locker) -"bKc" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/machinery/newscaster{ - pixel_x = -30 - }, -/obj/machinery/button/door{ - id = "Cabin_4Privacy"; - name = "Cabin 4 Privacy Toggle"; - pixel_x = -24; - pixel_y = -24 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken4" - }, -/area/crew_quarters/locker) "bKd" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/machinery/newscaster{ - pixel_x = -30 - }, -/obj/machinery/button/door{ - id = "Cabin_3Privacy"; - name = "Cabin 3 Privacy Toggle"; - pixel_x = -24; - pixel_y = -24 - }, /turf/open/floor/wood{ - icon_state = "wood-broken5" + icon_state = "wood-broken6" }, /area/crew_quarters/locker) -"bKe" = ( -/obj/structure/dresser, -/turf/open/floor/wood, -/area/crew_quarters/locker) "bKf" = ( /obj/structure/sign/poster/contraband/revolver, /turf/closed/wall, /area/crew_quarters/locker) "bKg" = ( -/obj/structure/table/wood, -/obj/item/folder/red, -/obj/item/lighter, -/turf/open/floor/wood, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, /area/crew_quarters/locker) "bKh" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/machinery/newscaster{ - pixel_x = 30 +/obj/structure/bed, +/obj/item/bedsheet/black, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood{ + icon_state = "wood-broken3" }, -/turf/open/floor/wood, /area/crew_quarters/locker) "bKi" = ( /obj/effect/turf_decal/tile/blue{ @@ -56451,12 +54779,19 @@ /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/locker) "bKk" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "Cabin_4Privacy"; - name = "Cabin 4 Privacy Shutter" +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/machinery/button/door{ + id = "Cabin_4Privacy"; + name = "Cabin 4 Privacy Toggle"; + pixel_x = -24; + pixel_y = -24 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" }, -/turf/open/floor/plating, /area/crew_quarters/locker) "bKl" = ( /obj/structure/flora/rock/pile, @@ -56858,9 +55193,6 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/central) "bKP" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, /obj/effect/turf_decal/tile/blue{ dir = 8 }, @@ -56957,9 +55289,6 @@ /area/crew_quarters/toilet/restrooms) "bKU" = ( /obj/effect/turf_decal/box, -//obj/structure/toilet/secret/low_loot{ - dir = 8 - }, /obj/structure/mirror{ pixel_x = -28 }, @@ -57295,18 +55624,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) -"bLr" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/storage/primary) "bLs" = ( /obj/structure/table, /obj/effect/decal/cleanable/cobweb, @@ -57347,16 +55664,6 @@ /turf/open/floor/plasteel/dark, /area/janitor) "bLt" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, @@ -57364,7 +55671,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bLu" = ( -/turf/closed/wall/rust, +/obj/structure/dresser, +/turf/open/floor/wood, /area/crew_quarters/locker) "bLv" = ( /obj/effect/turf_decal/tile/purple{ @@ -57555,16 +55863,6 @@ /turf/open/floor/grass, /area/security/prison) "bLI" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ dir = 4 @@ -57622,11 +55920,6 @@ pixel_y = 22; prison_radio = 1 }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-17"; - pixel_x = -8; - pixel_y = 3 - }, /turf/open/floor/plasteel/showroomfloor, /area/security/prison) "bLO" = ( @@ -57686,16 +55979,6 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "bLS" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, @@ -57774,16 +56057,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/prison) "bLY" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/landmark/event_spawn, /obj/structure/disposalpipe/segment{ dir = 4 @@ -57791,16 +56064,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bLZ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -57960,16 +56223,6 @@ /turf/open/floor/plasteel, /area/security/warden) "bMm" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, @@ -58058,7 +56311,6 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, /obj/structure/cable{ icon_state = "2-4" }, @@ -58070,12 +56322,6 @@ }, /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/storage/primary) @@ -58479,10 +56725,6 @@ /turf/open/floor/mech_bay_recharge_floor, /area/maintenance/port/aft) "bMY" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/security/warden) "bMZ" = ( @@ -58583,9 +56825,7 @@ "bNi" = ( /obj/structure/flora/grass/jungle/b, /obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/leafybush, /obj/structure/flora/ausbushes/ywflowers, -/obj/structure/flora/ausbushes/leafybush, /obj/structure/cable{ icon_state = "4-8" }, @@ -58627,9 +56867,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, @@ -58771,7 +57008,6 @@ dir = 8; pixel_y = -24 }, -/obj/effect/turf_decal/delivery, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -58849,8 +57085,6 @@ /turf/open/floor/plasteel/dark, /area/security/warden) "bNH" = ( -/obj/structure/flora/grass/jungle, -/obj/structure/flora/ausbushes/grassybush, /obj/structure/flora/ausbushes/ppflowers, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 5 @@ -59209,10 +57443,6 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, @@ -59228,9 +57458,6 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, /turf/open/floor/plasteel, /area/storage/primary) @@ -59293,7 +57520,6 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/storage/primary) @@ -59467,16 +57693,6 @@ /turf/closed/wall/rust, /area/maintenance/starboard/aft) "bOD" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ dir = 4 @@ -59484,48 +57700,18 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bOE" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 6 }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bOF" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bOG" = ( -/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/tile/neutral{ - dir = 1 - }, /obj/effect/landmark/event_spawn, /obj/structure/cable{ icon_state = "1-2" @@ -59537,17 +57723,6 @@ /turf/closed/wall, /area/janitor) "bOI" = ( -/obj/effect/turf_decal/box/corners, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -59555,16 +57730,6 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "bOJ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/landmark/event_spawn, /obj/structure/disposalpipe/segment{ dir = 4 @@ -59572,16 +57737,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bOK" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/hallway/primary/starboard) @@ -59605,16 +57760,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "bOM" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/effect/decal/cleanable/dirt, @@ -59640,16 +57785,6 @@ /turf/open/floor/plasteel/dark, /area/security/main) "bOP" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bOQ" = ( @@ -59682,16 +57817,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bOS" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, @@ -59768,22 +57893,12 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bOY" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bOZ" = ( @@ -59870,10 +57985,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bPh" = ( -/obj/structure/flora/grass/jungle, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/ywflowers, -/obj/structure/flora/ausbushes/fernybush, /turf/open/floor/grass, /area/security/prison) "bPi" = ( @@ -59997,7 +58108,7 @@ /area/hallway/primary/central) "bPp" = ( /obj/machinery/status_display/shuttle, -/turf/closed/wall/rust, +/turf/closed/wall, /area/security/courtroom) "bPq" = ( /obj/machinery/door/airlock/maintenance{ @@ -60146,7 +58257,7 @@ /obj/structure/disposalpipe/segment{ dir = 10 }, -/turf/closed/wall/rust, +/turf/closed/wall, /area/maintenance/starboard/aft) "bPA" = ( /obj/effect/turf_decal/tile/red, @@ -60170,16 +58281,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/prison) "bPB" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, @@ -60282,16 +58383,6 @@ }, /area/hallway/secondary/entry) "bPL" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/sorting/mail{ dir = 8; name = "HoP sorting disposal pipe"; @@ -60382,10 +58473,6 @@ }, /area/maintenance/port/aft) "bPR" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -60529,16 +58616,6 @@ }, /area/space/nearstation) "bQd" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/structure/disposalpipe/segment{ @@ -60585,15 +58662,6 @@ /area/hallway/primary/starboard) "bQh" = ( /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/junction/flip{ dir = 8 }, @@ -60629,7 +58697,6 @@ /obj/machinery/door/airlock/public/glass{ name = "Engineering Hallway" }, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/dark, /area/hallway/primary/aft) "bQl" = ( @@ -60763,16 +58830,6 @@ /turf/open/floor/plasteel/dark, /area/hallway/secondary/exit/departure_lounge) "bQv" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, @@ -60833,10 +58890,6 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, @@ -60854,9 +58907,6 @@ }, /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -60882,9 +58932,6 @@ }, /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, @@ -61318,10 +59365,6 @@ "bRf" = ( /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/red, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-02"; - pixel_y = 3 - }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -61374,16 +59417,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bRj" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /turf/open/floor/plasteel, @@ -61533,19 +59566,6 @@ /obj/machinery/holopad, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) -"bRt" = ( -/obj/effect/turf_decal/tile/neutral, -/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/plasteel, -/area/hallway/secondary/exit/departure_lounge) "bRu" = ( /obj/effect/turf_decal/bot, /obj/structure/rack, @@ -61862,16 +59882,6 @@ }, /area/maintenance/aft) "bRU" = ( -/obj/effect/turf_decal/tile/neutral, -/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/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -61884,16 +59894,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bRV" = ( -/obj/effect/turf_decal/tile/neutral, -/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/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -61939,16 +59939,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bRZ" = ( -/obj/effect/turf_decal/tile/neutral, -/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/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -61968,16 +59958,6 @@ /turf/open/floor/engine, /area/storage/tech) "bSb" = ( -/obj/effect/turf_decal/tile/neutral, -/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/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -61988,16 +59968,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bSc" = ( -/obj/effect/turf_decal/tile/neutral, -/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/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, @@ -62009,9 +59979,6 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) -"bSd" = ( -/turf/closed/wall/rust, -/area/hallway/secondary/entry) "bSe" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/delivery, @@ -62117,9 +60084,6 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, @@ -62133,17 +60097,11 @@ }, /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/structure/disposalpipe/junction/flip, /turf/open/floor/plasteel, /area/storage/primary) "bSn" = ( -/obj/structure/flora/grass/jungle, -/obj/structure/flora/ausbushes/fullgrass, /obj/structure/flora/ausbushes/brflowers, -/obj/structure/flora/ausbushes/leafybush, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ dir = 1 @@ -62463,19 +60421,9 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/delivery, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/dark, /area/hallway/primary/aft) -"bSQ" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/closed/wall, -/area/hallway/secondary/exit/departure_lounge) "bSR" = ( /obj/machinery/shower{ dir = 8; @@ -62604,7 +60552,6 @@ /obj/structure/sign/departments/engineering{ pixel_x = 32 }, -/obj/effect/turf_decal/delivery, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/dark, /area/hallway/primary/aft) @@ -62669,16 +60616,6 @@ /turf/open/floor/engine, /area/storage/tech) "bTe" = ( -/obj/effect/turf_decal/tile/neutral, -/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/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/airalarm{ dir = 4; @@ -62800,12 +60737,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bTr" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/power/apc{ areastring = "/area/hallway/secondary/entry"; dir = 0; @@ -62888,16 +60819,6 @@ /turf/closed/wall/rust, /area/hallway/secondary/exit/departure_lounge) "bTy" = ( -/obj/effect/turf_decal/tile/neutral, -/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/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/structure/cable{ @@ -62917,9 +60838,6 @@ dir = 4; pixel_x = -22 }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, /turf/open/floor/plasteel/dark, /area/security/prison) "bTA" = ( @@ -63285,9 +61203,6 @@ /turf/closed/wall, /area/hallway/secondary/entry) "bUa" = ( -/obj/structure/bed, -/obj/item/bedsheet/black, -/obj/effect/landmark/start/assistant, /turf/open/floor/wood, /area/crew_quarters/locker) "bUb" = ( @@ -63353,15 +61268,6 @@ /area/hallway/secondary/entry) "bUg" = ( /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -63431,9 +61337,6 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"bUl" = ( -/turf/closed/wall, -/area/security/vacantoffice) "bUm" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -63479,7 +61382,7 @@ dir = 10 }, /turf/open/floor/plasteel, -/area/security/warden) +/area/space) "bUs" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command/glass{ @@ -63711,6 +61614,7 @@ /area/security/processing) "bUQ" = ( /obj/machinery/light/floor, +/obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/engine/air, /area/engine/atmos) "bUR" = ( @@ -63790,16 +61694,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bVa" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/junction/flip{ dir = 8 }, @@ -64303,13 +62197,6 @@ }, /area/maintenance/central/secondary) "bVL" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, @@ -64322,10 +62209,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ - dir = 8; - icon_state = "intact" - }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "bVM" = ( @@ -65342,10 +63225,6 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) -"bXo" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit/departure_lounge) "bXp" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -65401,16 +63280,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bXu" = ( -/obj/effect/turf_decal/tile/neutral, -/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/box/corners{ dir = 1 }, @@ -65454,20 +63323,6 @@ /obj/structure/sign/departments/evac, /turf/closed/wall, /area/hallway/secondary/exit/departure_lounge) -"bXy" = ( -/obj/effect/turf_decal/tile/neutral, -/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/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit/departure_lounge) "bXz" = ( /obj/effect/turf_decal/bot, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -65497,16 +63352,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bXC" = ( -/obj/effect/turf_decal/tile/neutral, -/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/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -65531,16 +63376,6 @@ /area/hallway/secondary/exit/departure_lounge) "bXE" = ( /obj/effect/turf_decal/box/corners, -/obj/effect/turf_decal/tile/neutral, -/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/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /turf/open/floor/plasteel, @@ -65624,7 +63459,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/caution/stand_clear, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/dark, /area/hallway/primary/aft) @@ -66151,12 +63985,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bYw" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /turf/open/floor/plasteel, @@ -66498,31 +64326,6 @@ }, /turf/open/floor/plasteel/dark, /area/maintenance/port/aft) -"bYS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/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/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) "bYT" = ( /obj/machinery/power/apc/highcap/five_k{ areastring = "/area/security/prison"; @@ -66598,13 +64401,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bYZ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-10" - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "bZa" = ( @@ -66743,10 +64539,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bZk" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bZl" = ( @@ -66848,16 +64640,6 @@ /turf/open/floor/plasteel/dark, /area/engine/engineering) "bZr" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "2-4" }, @@ -66969,20 +64751,8 @@ dir = 1 }, /area/hallway/primary/starboard) -"bZA" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) "bZB" = ( /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/structure/cable{ icon_state = "1-2" }, @@ -66997,16 +64767,6 @@ /turf/open/floor/plasteel/dark, /area/hallway/secondary/exit/departure_lounge) "bZD" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /turf/open/floor/plasteel, @@ -67091,25 +64851,15 @@ }, /area/hallway/primary/starboard) "bZJ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ - dir = 4 - }, /obj/structure/cable{ icon_state = "2-4" }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bZK" = ( @@ -67156,24 +64906,14 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bZN" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 +/obj/structure/cable{ + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ dir = 8 }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) @@ -67214,16 +64954,6 @@ /turf/open/floor/plasteel/dark, /area/janitor) "bZR" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 5 }, @@ -67382,16 +65112,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "cad" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ dir = 4 }, @@ -67467,16 +65187,9 @@ /turf/open/floor/plasteel, /area/engine/break_room) "cak" = ( -/obj/effect/turf_decal/tile/neutral, /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/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, @@ -67495,16 +65208,6 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "cal" = ( -/obj/effect/turf_decal/tile/neutral, -/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/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -67577,16 +65280,6 @@ /turf/open/floor/plasteel/dark, /area/storage/primary) "car" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "2-8" }, @@ -67635,10 +65328,6 @@ /turf/open/floor/plasteel, /area/engine/break_room) "cau" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/structure/cable{ @@ -67759,7 +65448,6 @@ /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/aft) "caE" = ( @@ -68035,10 +65723,6 @@ /turf/open/floor/plasteel/dark, /area/maintenance/central) "cbb" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/structure/cable{ @@ -68249,9 +65933,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 10 }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "cbw" = ( @@ -68317,7 +65998,6 @@ /area/maintenance/starboard) "cbA" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/aft) "cbB" = ( @@ -68419,16 +66099,6 @@ }, /area/hallway/primary/port) "cbH" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ dir = 1 }, @@ -68444,24 +66114,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /turf/open/floor/plasteel/dark/corner, /area/hallway/primary/port) -"cbJ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 8 - }, -/area/hallway/primary/port) "cbM" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -68561,10 +66213,6 @@ }, /area/maintenance/port/aft) "cbT" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, @@ -68736,10 +66384,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "cci" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -68755,10 +66399,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ - dir = 8; - icon_state = "intact" - }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "ccj" = ( @@ -69005,10 +66645,6 @@ /turf/open/floor/plasteel/dark, /area/maintenance/port/aft) "ccM" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, @@ -69055,9 +66691,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/brig) "ccR" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -69114,7 +66747,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/dark, /area/crew_quarters/locker) "ccX" = ( @@ -69230,28 +66862,14 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/aft) "cdg" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/effect/turf_decal/plaque{ icon_state = "L6" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ - dir = 8; - icon_state = "intact" +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 }, /turf/open/floor/plasteel, /area/hallway/primary/fore) @@ -69267,20 +66885,9 @@ /area/maintenance/aft) "cdi" = ( /obj/structure/flora/grass/jungle/b, -/obj/structure/flora/ausbushes/sparsegrass, /turf/open/floor/grass, /area/security/prison) "cdj" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/item/beacon, /turf/open/floor/plasteel, /area/hallway/primary/aft) @@ -69677,9 +67284,6 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/brig) -"cdY" = ( -/turf/closed/wall/r_wall/rust, -/area/maintenance/central) "cdZ" = ( /turf/closed/wall/r_wall, /area/maintenance/central) @@ -69719,7 +67323,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/dark, /area/crew_quarters/locker) "ced" = ( @@ -69811,6 +67414,7 @@ pixel_x = 4; req_access_txt = "16" }, +/obj/item/toy/talking/AI, /turf/open/floor/circuit/red, /area/ai_monitored/turret_protected/ai) "ceg" = ( @@ -69965,6 +67569,7 @@ pixel_x = -3; req_access_txt = "16" }, +/obj/item/toy/talking/AI, /turf/open/floor/circuit/red, /area/ai_monitored/turret_protected/ai) "cep" = ( @@ -70044,12 +67649,6 @@ /turf/open/floor/plasteel, /area/engine/break_room) "ceu" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ dir = 8 }, @@ -70079,12 +67678,6 @@ /turf/open/floor/circuit/red/telecomms, /area/tcommsat/server) "cex" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ dir = 8 }, @@ -70101,12 +67694,6 @@ /turf/open/floor/plasteel, /area/engine/break_room) "cey" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -70209,9 +67796,6 @@ "ceF" = ( /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/aisat/atmos) -"ceG" = ( -/turf/closed/wall/r_wall/rust, -/area/ai_monitored/turret_protected/aisat/atmos) "ceH" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -70983,9 +68567,6 @@ "cfY" = ( /turf/closed/wall/r_wall, /area/ai_monitored/storage/satellite) -"cga" = ( -/turf/closed/wall/r_wall/rust, -/area/ai_monitored/storage/satellite) "cgb" = ( /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/dirt, @@ -71015,7 +68596,7 @@ "cgg" = ( /obj/structure/sign/warning/docking, /turf/closed/wall/rust, -/area/hallway/secondary/entry) +/area/hallway/secondary/exit/departure_lounge) "cgi" = ( /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ @@ -71204,9 +68785,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-05" - }, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -71483,16 +69061,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "cgV" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, @@ -71664,10 +69232,6 @@ /turf/closed/wall, /area/maintenance/fore) "chk" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -71713,10 +69277,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/brig) "chm" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -72185,9 +69745,6 @@ /obj/structure/lattice/catwalk, /turf/open/floor/plating/airless, /area/solar/port/aft) -"chV" = ( -/turf/closed/wall/rust, -/area/ai_monitored/turret_protected/aisat_interior) "chW" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/hatch{ @@ -72818,7 +70375,6 @@ name = "Engine Access Shutters" }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, @@ -73249,21 +70805,6 @@ /obj/structure/sign/warning/securearea, /turf/closed/wall, /area/engine/gravity_generator) -"cjC" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) "cjD" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -73283,33 +70824,6 @@ icon_state = "panelscorched" }, /area/maintenance/starboard/aft) -"cjF" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"cjG" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) "cjH" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/engineering{ @@ -73325,7 +70839,6 @@ /turf/open/floor/plasteel/dark, /area/engine/engineering) "cjI" = ( -/obj/effect/turf_decal/box, /obj/machinery/shower{ dir = 4; name = "emergency shower" @@ -73548,7 +71061,6 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, -/obj/effect/turf_decal/box, /obj/machinery/shower{ dir = 4; name = "emergency shower" @@ -74102,16 +71614,6 @@ icon_state = "platingdmg1" }, /area/engine/engineering) -"clg" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) "clh" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, /turf/open/floor/plasteel, @@ -74426,14 +71928,6 @@ luminosity = 2 }, /area/engine/gravity_generator) -"clF" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) "clG" = ( /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ @@ -74546,37 +72040,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/maintenance/solars/port/aft) -"clP" = ( -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) "clQ" = ( /obj/machinery/gravity_generator/main/station, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/greenglow, /turf/open/floor/plasteel/dark, /area/engine/gravity_generator) "clR" = ( -/obj/effect/turf_decal/box/corners, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/engine/gravity_generator) "clS" = ( @@ -74609,7 +72077,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/security/processing) "clY" = ( @@ -74678,9 +72145,6 @@ /area/engine/atmos) "cmc" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -74936,7 +72400,6 @@ dir = 8; pixel_x = 24 }, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/engine/gravity_generator) "cmt" = ( @@ -75071,16 +72534,6 @@ /turf/open/floor/plasteel, /area/engine/atmos) "cmD" = ( -/obj/effect/turf_decal/tile/neutral, -/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/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /turf/open/floor/plasteel, @@ -75100,7 +72553,6 @@ dir = 8 }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/engine/gravity_generator) "cmF" = ( @@ -75200,7 +72652,6 @@ }, /obj/machinery/light/small, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/engine/gravity_generator) "cmR" = ( @@ -75461,7 +72912,6 @@ dir = 4; pixel_x = -26 }, -/obj/item/gun/energy/e_gun/advtaser, /turf/open/floor/plasteel/dark, /area/security/brig) "cnn" = ( @@ -76073,6 +73523,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/mob/living/simple_animal/bot/cleanbot{ + auto_patrol = 1; + name = "\imprper Cleaner Bot" + }, /turf/open/floor/plasteel/showroomfloor, /area/security/prison) "coI" = ( @@ -76257,16 +73711,6 @@ /turf/open/floor/plasteel, /area/engine/atmos) "cpd" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/hallway/primary/aft) @@ -76566,16 +74010,6 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "cpu" = ( -/obj/effect/turf_decal/tile/neutral, -/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/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/item/beacon, @@ -76686,7 +74120,7 @@ /obj/structure/cable{ icon_state = "2-8" }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/engine/engineering) "cpF" = ( /obj/structure/flora/rock/pile, @@ -76795,16 +74229,6 @@ /turf/open/floor/plasteel/dark, /area/maintenance/port/aft) "cpP" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, @@ -76812,16 +74236,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "cpQ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/item/beacon, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, @@ -78393,16 +75807,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, @@ -79523,7 +76927,6 @@ id = "xeno_blastdoor"; name = "Xenobiology Containment Blast Door" }, -/obj/effect/turf_decal/caution/stand_clear, /obj/structure/disposalpipe/junction{ dir = 4 }, @@ -81321,16 +78724,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/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/structure/cable{ icon_state = "2-8" }, @@ -81659,10 +79052,6 @@ /turf/open/floor/plasteel/dark, /area/maintenance/port/fore) "cyY" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/maintenance/port/fore) @@ -82331,7 +79720,6 @@ name = "Emergency Research Blast Door" }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/dark, /area/science/research) "cAY" = ( @@ -82462,7 +79850,6 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/gun/energy/e_gun/advtaser, /turf/open/floor/plasteel/dark, /area/security/brig) "cBp" = ( @@ -82662,12 +80049,19 @@ /turf/open/floor/plasteel/dark, /area/maintenance/central) "cBW" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "Cabin_3Privacy"; - name = "Cabin 3 Privacy Shutter" +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/machinery/button/door{ + id = "Cabin_3Privacy"; + name = "Cabin 3 Privacy Toggle"; + pixel_x = -24; + pixel_y = -24 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken5" }, -/turf/open/floor/plating, /area/crew_quarters/locker) "cBX" = ( /obj/effect/spawner/structure/window/reinforced, @@ -82702,6 +80096,9 @@ }, /obj/structure/flora/grass/jungle/b, /obj/machinery/light, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plating/asteroid/airless{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, @@ -82715,6 +80112,9 @@ }, /obj/structure/flora/ausbushes/palebush, /obj/machinery/light/small, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plating/asteroid/airless{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, @@ -82930,7 +80330,6 @@ /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" }, -/obj/structure/barricade/wooden/crude, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -83147,9 +80546,6 @@ /turf/open/floor/plasteel/dark, /area/maintenance/fore) "cDr" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 @@ -83569,16 +80965,6 @@ /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plasteel/dark, /area/maintenance/starboard/fore) -"cEl" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/remains/human, -/turf/open/floor/plasteel/dark, -/area/maintenance/starboard/fore) "cEm" = ( /obj/machinery/atmospherics/components/trinary/filter/flipped, /obj/machinery/button/ignition{ @@ -84062,7 +81448,6 @@ dir = 4 }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/plasteel/dark, /area/hallway/primary/aft) "cFC" = ( @@ -84094,7 +81479,6 @@ /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" }, -/obj/structure/barricade/wooden/crude, /turf/open/floor/plasteel/dark, /area/maintenance/starboard/fore) "cFJ" = ( @@ -84329,11 +81713,7 @@ /turf/open/floor/engine/vacuum, /area/science/test_area) "cGz" = ( -/obj/structure/flora/grass/jungle, -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/genericbush, /obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/sunnybush, /obj/structure/window/reinforced{ dir = 4 }, @@ -84691,20 +82071,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/dark, /area/security/brig) -"cHC" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) "cHD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 @@ -84830,16 +82196,6 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/chief) "cHS" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/landmark/event_spawn, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, @@ -84892,9 +82248,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/structure/disposalpipe/segment{ dir = 6 }, @@ -84919,15 +82272,6 @@ icon_state = "platingdmg3" }, /area/maintenance/aft) -"cIe" = ( -/obj/machinery/door/airlock/research{ - glass = 1; - name = "Slime Euthanization Chamber"; - opacity = 0; - req_access_txt = "55" - }, -/turf/open/floor/plasteel/dark, -/area/maintenance/starboard/fore) "cIf" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ dir = 4 @@ -85088,16 +82432,6 @@ /turf/open/floor/plasteel/dark, /area/storage/tcom) "cIw" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 6 }, @@ -85256,9 +82590,6 @@ dir = 1 }, /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, /obj/structure/sign/warning/electricshock{ pixel_y = -32 }, @@ -85678,16 +83009,6 @@ /turf/open/floor/plasteel/dark, /area/engine/break_room) "cKa" = ( -/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/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -85706,16 +83027,6 @@ /turf/open/floor/plasteel, /area/engine/break_room) "cKb" = ( -/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/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, @@ -86537,7 +83848,6 @@ /turf/open/floor/plating, /area/maintenance/department/electrical) "cMG" = ( -/obj/structure/girder, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plating{ @@ -87033,15 +84343,6 @@ /area/science/mixing/chamber) "cOW" = ( /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/bridge) @@ -87063,12 +84364,6 @@ /turf/open/floor/plasteel/dark, /area/security/prison) "cPb" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/bridge) @@ -87261,9 +84556,6 @@ icon_state = "wood-broken" }, /area/security/vacantoffice) -"dis" = ( -/turf/closed/wall/r_wall/rust, -/area/bridge) "dlg" = ( /obj/machinery/light, /turf/open/floor/wood, @@ -87330,16 +84622,6 @@ /obj/item/twohanded/required/kirbyplants/dead, /turf/open/floor/wood, /area/security/vacantoffice) -"elZ" = ( -/obj/machinery/status_display/evac, -/turf/closed/wall/rust, -/area/crew_quarters/bar) -"emD" = ( -/turf/closed/wall/rust, -/area/quartermaster/miningoffice) -"erN" = ( -/turf/closed/wall/rust, -/area/hallway/primary/starboard) "esR" = ( /obj/effect/decal/cleanable/cobweb, /turf/open/floor/wood{ @@ -87347,10 +84629,6 @@ }, /area/maintenance/port/fore) "evx" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/engine{ initial_gas_mix = "n2=100;TEMP=80"; name = "mainframe floor" @@ -87373,9 +84651,6 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel/showroomfloor, /area/security/prison) -"ezp" = ( -/turf/closed/wall/rust, -/area/hydroponics) "eBN" = ( /obj/structure/window/reinforced{ dir = 8 @@ -87416,9 +84691,6 @@ /obj/machinery/status_display/evac, /turf/closed/wall/rust, /area/security/prison) -"eVT" = ( -/turf/closed/wall/rust, -/area/science/explab) "fcv" = ( /obj/structure/sign/warning/fire{ pixel_x = 32 @@ -87438,9 +84710,6 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/closed/mineral/random/labormineral, /area/space/nearstation) -"fAH" = ( -/turf/closed/wall/r_wall/rust, -/area/security/main) "fXq" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -87532,9 +84801,6 @@ }, /turf/open/floor/wood, /area/security/vacantoffice) -"gMU" = ( -/turf/closed/wall/r_wall/rust, -/area/ai_monitored/turret_protected/ai_upload) "gPA" = ( /turf/open/floor/wood{ icon_state = "wood-broken3" @@ -87546,21 +84812,9 @@ /obj/effect/decal/cleanable/generic, /turf/open/floor/wood, /area/maintenance/port/fore) -"hqv" = ( -/turf/closed/wall/rust, -/area/crew_quarters/kitchen) -"hvb" = ( -/turf/closed/wall/r_wall/rust, -/area/tcommsat/computer) "hxn" = ( /turf/open/space/basic, /area/hallway/secondary/entry) -"hzY" = ( -/turf/closed/wall/rust, -/area/gateway) -"hAb" = ( -/turf/closed/wall/r_wall/rust, -/area/security/courtroom) "hDh" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/closet/cardboard, @@ -87571,16 +84825,6 @@ /turf/closed/wall/r_wall/rust, /area/security/prison) "ice" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -87592,26 +84836,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) -"ieA" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/cat_butcherer, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/fore) -"iiA" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine{ - initial_gas_mix = "n2=100;TEMP=80"; - name = "mainframe floor" - }, -/area/tcommsat/server) "ikw" = ( /obj/machinery/camera{ c_tag = "Xenobiology Cell 4"; @@ -87624,13 +84848,6 @@ }, /turf/open/floor/engine, /area/science/xenobiology) -"ivg" = ( -/obj/structure/lattice/catwalk, -/turf/open/space/basic, -/area/space) -"iwR" = ( -/turf/closed/wall/r_wall/rust, -/area/science/server) "iBL" = ( /obj/machinery/camera{ c_tag = "Laser Room Starboard"; @@ -87667,9 +84884,6 @@ }, /turf/open/floor/engine, /area/science/xenobiology) -"iRL" = ( -/turf/closed/wall/rust, -/area/hallway/primary/aft) "iSg" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -87679,9 +84893,6 @@ /mob/living/simple_animal/hostile/retaliate/ghost, /turf/open/floor/plasteel/dark, /area/maintenance/starboard/fore) -"iYW" = ( -/turf/closed/wall/r_wall/rust, -/area/crew_quarters/heads/captain) "iZo" = ( /turf/closed/wall/r_wall/rust, /area/medical/virology) @@ -87735,9 +84946,6 @@ }, /turf/open/floor/engine, /area/science/xenobiology) -"jxc" = ( -/turf/closed/wall/rust, -/area/hallway/primary/fore) "jAT" = ( /obj/structure/lattice/catwalk, /obj/machinery/light, @@ -87745,21 +84953,6 @@ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, /area/hallway/secondary/entry) -"jCp" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine{ - initial_gas_mix = "n2=100;TEMP=80"; - name = "mainframe floor" - }, -/area/tcommsat/server) -"jDv" = ( -/turf/closed/wall/rust, -/area/quartermaster/storage) "jHJ" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 9 @@ -87903,15 +85096,20 @@ /turf/closed/wall/rust, /area/hallway/secondary/exit/departure_lounge) "ktv" = ( -/obj/machinery/air_sensor{ - pixel_x = -32; - pixel_y = -32 +/obj/machinery/power/compressor{ + comp_id = "incineratorturbine"; + dir = 1; + luminosity = 2 }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 +/obj/structure/cable, +/obj/machinery/camera{ + c_tag = "Turbine Chamber"; + dir = 4; + name = "turbine camera"; + network = list("turbine") }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) @@ -87931,6 +85129,21 @@ icon_state = "wood-broken7" }, /area/maintenance/port/fore) +"kRh" = ( +/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/machinery/nanite_chamber, +/turf/open/floor/plasteel/dark, +/area/science/research) "kSc" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall, @@ -87948,7 +85161,7 @@ /area/maintenance/port/fore) "llm" = ( /obj/structure/sign/poster/ripped, -/turf/closed/wall/rust, +/turf/closed/wall, /area/crew_quarters/fitness/recreation) "lKu" = ( /obj/structure/table/wood, @@ -87958,12 +85171,9 @@ icon_state = "wood-broken4" }, /area/maintenance/port/fore) -"lSJ" = ( -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) "lVk" = ( /obj/machinery/status_display/evac, -/turf/closed/wall/rust, +/turf/closed/wall, /area/security/warden) "mbs" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple, @@ -87983,16 +85193,6 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/prison) "mIt" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/disposalpipe/segment, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=SE CPH"; @@ -88035,13 +85235,6 @@ /obj/effect/decal/cleanable/dirt, /turf/closed/mineral/random/labormineral, /area/space/nearstation) -"mPm" = ( -/turf/closed/wall/rust, -/area/security/checkpoint/supply) -"nDw" = ( -/obj/machinery/status_display/evac, -/turf/closed/wall/rust, -/area/crew_quarters/heads/hor) "nJw" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -88054,15 +85247,6 @@ "nNA" = ( /turf/closed/wall/rust, /area/bridge) -"nNV" = ( -/turf/closed/wall/rust, -/area/science/lab) -"nSz" = ( -/turf/closed/wall/rust, -/area/medical/cryo) -"nVt" = ( -/turf/closed/wall/rust, -/area/storage/tech) "nXu" = ( /obj/structure/cable{ icon_state = "4-8" @@ -88131,9 +85315,6 @@ icon_state = "wood-broken4" }, /area/maintenance/port/fore) -"pQf" = ( -/turf/closed/wall/r_wall/rust, -/area/science/xenobiology) "qfZ" = ( /obj/structure/cable{ icon_state = "1-8" @@ -88147,23 +85328,7 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/prison) -"qtv" = ( -/turf/closed/wall/r_wall/rust, -/area/tcommsat/server) -"qtS" = ( -/turf/closed/wall/rust, -/area/medical/genetics/cloning) "qvS" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=W CPH"; dir = 8; @@ -88243,6 +85408,14 @@ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, /area/hallway/secondary/entry) +"sfp" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/nanite_programmer, +/turf/open/floor/plasteel/dark, +/area/science/research) "swG" = ( /obj/item/reagent_containers/food/drinks/drinkingglass{ pixel_x = 4; @@ -88272,35 +85445,12 @@ /obj/structure/sign/warning, /turf/closed/wall/rust, /area/space/nearstation) -"sPG" = ( -/turf/closed/wall/rust, -/area/crew_quarters/heads/hor) -"tgw" = ( -/obj/structure/sign/warning/electricshock, -/turf/closed/wall/r_wall/rust, -/area/security/prison) -"tqw" = ( -/turf/closed/wall/rust, -/area/lawoffice) -"tyb" = ( -/turf/closed/wall/rust, -/area/hallway/primary/central) "tCi" = ( /obj/effect/decal/cleanable/glass, /turf/open/floor/wood{ icon_state = "wood-broken3" }, /area/maintenance/port/fore) -"tEC" = ( -/turf/closed/wall/rust, -/area/crew_quarters/bar) -"tGU" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall/rust, -/area/gateway) -"tYn" = ( -/turf/closed/wall/rust, -/area/janitor) "uda" = ( /turf/closed/wall/rust, /area/security/warden) @@ -88332,16 +85482,6 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/port) "unX" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=E CPH"; dir = 8; @@ -88370,9 +85510,6 @@ "uRM" = ( /turf/open/floor/wood, /area/security/vacantoffice) -"uWo" = ( -/turf/closed/wall/rust, -/area/security/checkpoint/medical) "vle" = ( /obj/structure/festivus, /turf/open/floor/wood, @@ -88386,9 +85523,6 @@ /obj/item/instrument/guitar, /turf/open/floor/plasteel/dark, /area/crew_quarters/bar) -"whw" = ( -/turf/closed/wall/rust, -/area/medical/surgery) "whZ" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -88406,24 +85540,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/wood, /area/security/vacantoffice) -"wmX" = ( -/turf/closed/wall/rust, -/area/quartermaster/qm) -"wvq" = ( -/turf/closed/wall/rust, -/area/security/courtroom) -"wCy" = ( -/turf/closed/wall/rust, -/area/hallway/primary/port) -"wDP" = ( -/turf/closed/wall/rust, -/area/crew_quarters/fitness/recreation) -"wQL" = ( -/turf/closed/wall/rust, -/area/security/execution/education) -"xei" = ( -/turf/closed/wall/r_wall/rust, -/area/teleporter) "xqv" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/drinks/drinkingglass{ @@ -88433,9 +85549,6 @@ /obj/item/reagent_containers/food/drinks/drinkingglass, /turf/open/floor/wood, /area/maintenance/port/fore) -"xqL" = ( -/turf/closed/wall/rust, -/area/quartermaster/office) "xse" = ( /obj/machinery/cryopod, /obj/effect/decal/cleanable/dirt, @@ -88444,10 +85557,6 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/prison) -"xBI" = ( -/obj/machinery/status_display/evac, -/turf/closed/wall/rust, -/area/chapel/office) "xJY" = ( /obj/structure/rack, /obj/item/storage/backpack, @@ -98950,7 +96059,7 @@ bmU ruL ruL ruL -hNk +aav aeu aeu aap @@ -99203,11 +96312,11 @@ cqG cov cpx bLM -hNk +aav mmZ ewj qfZ -hNk +aav aeu aeu aeU @@ -99460,11 +96569,11 @@ cIA coD cqt aeu -hNk +aav xse nXu qPY -hNk +aav aeu aeu aUz @@ -99715,14 +96824,14 @@ cqI cqP afm bVx -hNk -hNk -hNk +aav +aav +aav cxV ydo eBN -tgw -hNk +asO +aav aeu aeu aeu @@ -99972,7 +97081,7 @@ bGl bGV bIi cpv -hNk +aav awn bTz czR @@ -99980,7 +97089,7 @@ cFN cIm cJC aav -hNk +aav aeu aeu aeU @@ -100237,7 +97346,7 @@ bNi bPa caX cJG -hNk +aav aeu aeU aUz @@ -100743,7 +97852,7 @@ ajd cof ajd ajd -hNk +aav btd bVV bMe @@ -100751,7 +97860,7 @@ bNH bTu ciF cIQ -hNk +aav aeu aUz aeU @@ -101000,7 +98109,7 @@ ajd bHc bIo ajd -hNk +aav bLN bMQ bPk @@ -101008,7 +98117,7 @@ bRa bSR bTF bVm -hNk +aav aeu aeu coy @@ -101770,7 +98879,7 @@ ajd ajd ajd ajd -hNk +aav bKv bLX eQS @@ -102028,7 +99137,7 @@ ajd aeu aeu aav -hNk +aav bJB abp abp @@ -102542,7 +99651,7 @@ coA bHj adf aeu -hNk +aav bJF bJN cuS @@ -102799,7 +99908,7 @@ coA bHo aeE agK -hNk +aav bLj bYc cDG @@ -102807,7 +99916,7 @@ aaG aez cIj aeB -wQL +cZm aez aez cko @@ -105378,13 +102487,13 @@ bSW bUd bVO aey -fAH -fAH +aey +aey aey aey byu aey -fAH +aey aey aey clr @@ -105608,7 +102717,7 @@ amA amR amA cFW -wDP +awD bKD bLg bLm @@ -105898,7 +103007,7 @@ ahZ aiL aiL aiL -cDB +bqs ajS bOO bBG @@ -106389,7 +103498,7 @@ bxE byS bGI bMg -wDP +awD bDt bDV bFn @@ -106636,7 +103745,7 @@ csG bid bjx csQ -wDP +awD bKn bLc bMi @@ -106646,7 +103755,7 @@ bLT bEK bGT bMx -wDP +awD afz adZ ajd @@ -106661,7 +103770,7 @@ aej aeY afn aeY -aeY +bqm ahg bXO bYO @@ -106864,7 +103973,7 @@ apF aqP asb aNG -aOa +aOb akd aOC aOm @@ -106893,8 +104002,8 @@ aqu bif bjz csR -wDP -wDP +awD +awD bLo bLp btz @@ -107130,7 +104239,7 @@ abo agk agI agL -abl +afX ahc aPx aPx @@ -107368,7 +104477,7 @@ aeu cwp cwq cyL -aiV +alw cyY adv alw @@ -107625,10 +104734,10 @@ aeu cwp abu cyM -aiW +cyY cyZ czl -alA +cyY czp bgN cwp @@ -107912,8 +105021,8 @@ aQJ aTc aUL aWr -uWo -whw +aQI +aQN bxr aQN aQN @@ -108139,10 +105248,10 @@ cwq cyE ahL cyO -ajh -ajs +cyY +alw akI -alH +cyY czr ans czK @@ -108169,7 +105278,7 @@ aQI aQJ aQf aQJ -uWo +aQI baB bcS bek @@ -108182,7 +105291,7 @@ aUJ aUJ afe brD -bLn +brD bvO bKF bza @@ -108416,8 +105525,8 @@ aCL aPh aGp aNW -aJv -aQk +aJC +agF aSE aQy aWt @@ -108452,7 +105561,7 @@ cBT aef aef lVk -uda +aef aef ani anm @@ -108700,11 +105809,11 @@ btD bvP bxQ bzg -bLu -bLu bIV bIV -csS +bIV +bIV +bIV bFp aah bHz @@ -108929,7 +106038,7 @@ aBq aCP aEo aGt -nSz +aNQ aJB aQo aTO @@ -108952,17 +106061,17 @@ aoV bxV aoV afe -bLu +bIV bFb akv bzZ bKL -bLu +bIV bJQ -bKc +bLu bKk -cBv -bFp +aXE +aYZ aah bHA aaA @@ -108977,7 +106086,7 @@ cqg ajw agV bXT -bYS +bYQ bYm ama aiQ @@ -109185,8 +106294,8 @@ aNH aVH aNO aso -qtS -qtS +aNL +aNL aQd aQC aNn @@ -109217,11 +106326,11 @@ bzh aoL bJU bUa -bKk -csS +aJv +aXE cCa -uda -uda +aef +aef bJC aef aef @@ -109232,7 +106341,7 @@ bWr coN cqh bVW -uda +aef ayi aJr ayi @@ -109474,8 +106583,8 @@ bzi bIV bIV bIV -bLu -cBI +bIV +bIV bFp aah bHC @@ -109732,8 +106841,8 @@ bIV bJS bKd cBW -cBv -bFp +aYR +aYZ aah bHA aff @@ -109987,14 +107096,14 @@ bAL bzh apV bJZ -bKe -cBW -cBy +bUa +bLu +aYR cCb -uda +aef aef lVk -uda +aef uda bXr bNq @@ -110242,11 +107351,11 @@ bGA bJp bAQ bIV -bLu +bIV bIV bKf bIV -csN +bIV bFq aah bHD @@ -110503,7 +107612,7 @@ arf bKb bKg bLu -cBw +bIV bFq aah bHu @@ -110759,8 +107868,8 @@ bzp bIV bJY bKh +aWS bIV -afz ayy agX agX @@ -111014,10 +108123,10 @@ bKC bAy bzu bIV -bLu bIV bIV -bEa +bIV +ajd bFr bBI bHH @@ -111224,7 +108333,7 @@ aeu aWG aWG aWG -bsm +aWG aWG aWG cAN @@ -111257,8 +108366,8 @@ aSg aAc aSg bAN -aPf -aPf +bAN +bAN bAN bAN bAN @@ -111478,7 +108587,7 @@ aaa aeu aeu aeu -bsm +aWG acE cgY cAi @@ -111761,7 +108870,7 @@ aJQ aLn aMN aOD -aiU +bdf aYx aSe aYx @@ -111781,7 +108890,7 @@ boU bfS bss btV -bZH +aEu bxW bzx bKq @@ -111992,7 +109101,7 @@ aeu aeu aeu aeu -bsm +aWG aWG czG cAk @@ -112017,7 +109126,7 @@ aMX aJR aOP aAO -anY +aNy aHq aYM aST @@ -112034,7 +109143,7 @@ bmJ bmJ bqp bri -bmJ +auK bfX bst bvQ @@ -112250,8 +109359,8 @@ aeu aeu aeu aeu -bsm -bsm +aWG +aWG aWG aWG aWG @@ -112262,7 +109371,7 @@ bsZ aWG aWG avY -bsm +aWG beG bwC bxe @@ -112272,7 +109381,7 @@ bwY aGM bxJ ahF -aOS +aPk aBN aOF bdU @@ -112318,7 +109427,7 @@ arq bEo bEF bGX -bBf +bYZ aKC all alX @@ -112519,7 +109628,7 @@ bta btC atL avK -xBI +btg aob azS aAu @@ -112529,7 +109638,7 @@ bwZ bxF bxJ ahF -aOS +aPk aJi aOG btE @@ -112539,7 +109648,7 @@ btE aPK aLU btE -cJc +buC buC aRF aSP @@ -112572,14 +109681,14 @@ ajd bRP bBr cdj -bBf +bYZ bEG -bBf -bBf +bYZ +bYZ bVa -cHC +bUZ cHS -cHC +bUZ aKN cfp baF @@ -112765,7 +109874,7 @@ aeu aeu aeu adH -ajj +alc ajz adQ cAF @@ -112776,7 +109885,7 @@ aWG aWG bvT avL -bsm +aWG btA cBh btA @@ -112786,12 +109895,12 @@ bxu bwP btA bsx -aOS +aPk aaJ -tEC -tEC +btE +btE bvi -bub +aTe buu bvf aTe @@ -112802,14 +109911,14 @@ bvn bfv bvU bvu -cJc +buC blx bnx boY buC bsy aoh -tqw +aoh bCn aoh aoA @@ -112819,8 +109928,8 @@ cbC cbH cbM cbP -aer -aer +ajd +ajd czw bWQ czU @@ -112832,7 +109941,7 @@ cCh cCh cCo bGY -bHv +bYw bVc cbc cch @@ -113045,7 +110154,7 @@ btA ahF aOT cfa -tEC +btE aTB btT buc @@ -113077,7 +110186,7 @@ aYM aYM cbM cbw -aer +ajd ajd ajd czW @@ -113089,7 +110198,7 @@ bBk aaY aaY bGZ -bBf +bYZ bVd bHU aMA @@ -113296,15 +110405,15 @@ azW bwR bye bxi -aEu +aEx bxH bxJ ahF -aOS +aPk cfa btF aqg -btU +aqg buy buJ bvq @@ -113320,7 +110429,7 @@ bjH blB bAS buC -cJc +buC bps aoh aok @@ -113334,7 +110443,7 @@ cbI cbN aYM cbR -cbJ +cbw ajd bKA bBG @@ -113346,7 +110455,7 @@ aci bWc aaY bHk -bBf +bYZ bVd bXV ccj @@ -113843,9 +110952,9 @@ aoS aoX adc aoh -wCy -wCy -wCy +boC +boC +boC bvJ bwc bBj @@ -113860,7 +110969,7 @@ ack bWe bBk bHk -bBf +bYZ cFA axF axF @@ -114053,7 +111162,7 @@ adQ cAr cAy cAC -adQ +adH bsf cCI cBc @@ -114064,14 +111173,14 @@ cBc btA bwK btB -bwU +btB bxD -aAD +btB aEx bxJ aIl ahF -aOS +aPk cfa btF aRM @@ -114102,7 +111211,7 @@ asF asF aos bEd -wvq +asF bGq bOP bIt @@ -114117,7 +111226,7 @@ acl bCd bBk bHk -bBf +bYZ cHk bFa bGf @@ -114314,7 +111423,7 @@ adH anb anU apG -adQ +adH aoc atO awh @@ -114349,7 +111458,7 @@ bpH bsh buC boW -wvq +asF adu bwk byi @@ -114585,7 +111694,7 @@ aEC bxJ aIo ahF -aOS +aPk cfa btE aXm @@ -114599,14 +111708,14 @@ btE btE bey btE -tEC -cJc -cJc +btE +buC +buC buC buC buC bpn -wvq +asF aow arB atc @@ -114631,7 +111740,7 @@ bws aaY aaY bHk -bBf +bYZ cac bFa cnz @@ -114842,7 +111951,7 @@ btA btA ago aaZ -aOS +aPk cfa btH aXp @@ -114850,7 +111959,7 @@ btY bvk bvE bvH -aWS +aTe buA bbk bcW @@ -114863,7 +111972,7 @@ bqr brs bsk btO -wvq +asF asY ask aaV @@ -114888,7 +111997,7 @@ bUz bWg axF bYn -bBf +bYZ cae bVo cck @@ -115087,7 +112196,7 @@ cCM cCR bsf ajv -adQ +adH cDc cCU cDh @@ -115099,7 +112208,7 @@ aaI aGN cDq aJS -aOS +aPk cfa btI aXr @@ -115118,14 +112227,14 @@ aLD bpn asF asF -wvq +asF asF asF asF asu auI atf -auK +byi avW ccR apa @@ -115317,7 +112426,7 @@ aeu ceF ceF ceF -ceG +ceF ceF ceF ceF @@ -115338,10 +112447,10 @@ aeU aUz aeu adH -adQ adH adH -adQ +adH +adH adH cCU cDy @@ -115358,7 +112467,7 @@ ago aBO aNq aRY -elZ +btK btE buf aSh @@ -115392,8 +112501,8 @@ auP bQx bOP bRh -tyb -iRL +bOU +axF cag cbh bRX @@ -115432,7 +112541,6 @@ aFH aFN cwz aaa -acm aaa aaa acm @@ -115492,6 +112600,7 @@ aaa aaa aaa aaa +aaa "} (106,1,1) = {" aaa @@ -115564,20 +112673,20 @@ aeu aeu asZ asZ -aAg asZ asZ -aAg -aAg asZ asZ -ceG +asZ +asZ +asZ +ceF ceF akN aac adr adA -ceG +ceF ceF ceF ceF @@ -115613,7 +112722,7 @@ cdD cdD ago aJT -aOS +aPk aMU aOI btE @@ -115621,8 +112730,8 @@ btE btE aOy btE -tEC -tEC +btE +btE bbr aTe aTe @@ -115690,7 +112799,6 @@ aIL aFI aFW aFI -aFI cko cko aaa @@ -115749,6 +112857,7 @@ aaa aaa aaa aaa +aaa "} (107,1,1) = {" aaa @@ -115818,16 +112927,16 @@ aUz aeu aeu aeu -aAg -asZ -asZ -asZ -aAg asZ asZ asZ asZ -aAg +asZ +asZ +asZ +asZ +asZ +asZ ceF axB acn @@ -115879,7 +112988,7 @@ aPQ aTu bpq aXa -tEC +btE btE aTL aOy @@ -115916,7 +113025,7 @@ bCe bVg bCe bHl -bBf +bYZ cHj bFa bFS @@ -115946,7 +113055,6 @@ aFO cwc aFO cwA -lSJ aFI aFI aFI @@ -116006,6 +113114,7 @@ aaa aaa aaa aaa +aaa "} (108,1,1) = {" aaa @@ -116076,14 +113185,14 @@ aeu aeu asZ asZ -aAg -aAg +asZ +asZ asZ asZ cef asZ asZ -aAg +asZ asZ ceF acJ @@ -116154,7 +113263,7 @@ asF asF arn arn -hAb +arn arn aur arn @@ -116166,14 +113275,14 @@ bOP bJy aCq cbA -bBf +bYZ byv -bBE -bBf -bBf -bBf -bBf -bBf +bcD +bYZ +bYZ +bYZ +bYZ +bYZ cHk bFa bFa @@ -116206,7 +113315,7 @@ aFY ktv aNi aGb -aGc +aaa aaa aaa aaa @@ -116384,14 +113493,14 @@ aEH ceZ aIs aiA -aOS +aPk cgq aXu aox aMi aMc aTz -apX +aox arA akM aox @@ -116460,7 +113569,6 @@ aFU cwd jHJ cwH -cwH aFI aFI aFI @@ -116520,6 +113628,7 @@ aaa aaa aaa aaa +aaa "} (110,1,1) = {" aaa @@ -116588,7 +113697,7 @@ aeu aeu aeu asZ -aAg +asZ asZ aam aaF @@ -116599,7 +113708,7 @@ ceD cel abR atB -adT +chX aHw ace acM @@ -116718,7 +113827,6 @@ aJl aFI aFI aFI -aFI cko cko aaa @@ -116777,6 +113885,7 @@ aaa aaa aaa aaa +aaa "} (111,1,1) = {" aaa @@ -116844,7 +113953,7 @@ aaa aeU ciQ aeu -aAg +asZ asZ aak aan @@ -116860,7 +113969,7 @@ adg ace acp acW -alV +adg adG adR adU @@ -116899,7 +114008,7 @@ ago aIz ajW ajJ -aOS +aPk fXq aIV aox @@ -116917,13 +114026,13 @@ cBV aox atT atT -dis -dis -dis -dis +atT +atT +atT +atT ajK atT -dis +atT atj apN awj @@ -117187,7 +114296,7 @@ asA apf atr auG -arD +ark bsP bQx bOF @@ -117359,7 +114468,7 @@ aeU anH aeu asZ -aAg +asZ aal aaw aaU @@ -117414,7 +114523,7 @@ aIB aba cgw aRk -apY +aNy oPf aLV aHz @@ -117423,8 +114532,8 @@ arl arl byV bzc -gMU -gMU +arl +arl bfJ abk aqb @@ -117433,8 +114542,8 @@ atT aqz aoW bqe -aqQ -aqQ +bsE +bsE avQ byn bzI @@ -117627,7 +114736,7 @@ cdH ceB abZ atB -adT +chX aZh acz ada @@ -117660,15 +114769,15 @@ ciZ ahh ahh ahh -qtv -qtv -qtv -qtv -qtv +ahh +ahh +ahh +ahh +ahh +cfM +cfM cfM cfM -hvb -hvb cfM aRl bVL @@ -117706,7 +114815,7 @@ atG bQx bOF bYW -nVt +bCM bDp bQn bSf @@ -117874,7 +114983,7 @@ aeu aeu aeu asZ -aAg +asZ apn ceE cfJ @@ -117884,10 +114993,10 @@ abC abL aca asZ -alV +adg azv chB -chV +azv adg ciN ciM @@ -117914,7 +115023,7 @@ aoM adH adH ahh -qtv +ahh awo cdn cdJ @@ -117930,7 +115039,7 @@ cfM aRm cci aKP -gMU +arl arl arl byN @@ -117956,7 +115065,7 @@ atj atj bHI atj -nNA +atj atT atT atT @@ -118130,15 +115239,15 @@ aeu aeu aeu aeu -aAg asZ asZ asZ -aAg +asZ +asZ asZ ceo asZ -aAg +asZ asZ asZ cfY @@ -118189,10 +115298,10 @@ cdg aQh bwp ciX -gMU +arl byq aXz -aYZ +aZc bbU bzm bzc @@ -118389,14 +115498,14 @@ aeu aeu aeu asZ -aAg -aAg asZ asZ -aAg asZ asZ -aAg +asZ +asZ +asZ +asZ asZ cfY acj @@ -118405,7 +115514,7 @@ adm adz adN ciB -cga +cfY acm aeo aaa @@ -118647,15 +115756,15 @@ aeu aeu aeu asZ -aAg -aAg asZ asZ -aAg asZ -aAg asZ -cga +asZ +asZ +asZ +asZ +cfY cfY cde chG @@ -118684,7 +115793,7 @@ adH adQ abX cBc -qtv +ahh cew awI cdq @@ -118913,11 +116022,11 @@ aeu aeu aeu cfY -cga cfY cfY cfY -cga +cfY +cfY cfY acm acm @@ -118934,21 +116043,21 @@ aeu adQ cCr cED -ieA +anJ ale alT cEW aoZ cFg agC -qtv +ahh atU -jCp +awJ awJ awJ aAj cff -iiA +awJ cfE cfR cge @@ -118960,7 +116069,7 @@ chm aLg arl arl -gMU +arl bAw aXH aZl @@ -118974,8 +116083,8 @@ awg blT bnI bpe -bqm -bsF +bsE +bsE bur atj aHU @@ -118983,9 +116092,9 @@ auc atj atj aug -nNA -nNA -nNA +atj +atj +atj atT atT bIz @@ -119217,7 +116326,7 @@ atF aLk aLV aLW -gMU +arl arl byM aZn @@ -119231,10 +116340,10 @@ aqh aqk att aqG -bqs +bsE arY auM -arX +bsE byt afT atj @@ -119246,7 +116355,7 @@ arw avF aus bIJ -bOY +aZg bKZ bmP bNZ @@ -119457,7 +116566,7 @@ cFh cFj ahh ahh -awM +evx cdC ceJ aAl @@ -119490,7 +116599,7 @@ atD aqG bqt cOW -cOW +cPb cPb byw ard @@ -119716,13 +116825,13 @@ cAF ahh ahh ahh -qtv ahh -qtv -qtv +ahh +ahh +ahh ahh cfM -hvb +cfM cfM cfM cgz @@ -119980,13 +117089,13 @@ cvM awE aEN aGQ -hzY -jxc +aUa +ago avw aRB aJi aLE -apX +aox aOk aox aox @@ -120249,8 +117358,8 @@ akw aox aox aox -apX -apX +aox +aox aox aox aox @@ -120274,7 +117383,7 @@ bqf cjy aus bIJ -bOY +aZg bLi bmc bmc @@ -120494,7 +117603,7 @@ cvO cvU aEQ aGS -tGU +cvW aJY awr aRX @@ -120527,8 +117636,8 @@ aui aui avb aui -xei -xei +aui +aui aui bCH bQd @@ -120756,10 +117865,10 @@ aKi cIw cKd aox -aox +aGh aRc -bzN -akM +aGh +aGh ajt ajt aZq @@ -120767,7 +117876,7 @@ aZq ajt ajt aQO -apX +aox cCk bka blW @@ -120792,11 +117901,11 @@ bOF bJy aCq cbA -bBf -bBf -bBf +bYZ +bYZ +bYZ bBE -bBf +bYZ bEN ane aBS @@ -120996,7 +118105,7 @@ cIX khA cDT iSg -cEl +cEb cJD atV cEg @@ -121010,13 +118119,13 @@ aES aHv aUa aKl -aPz +ajj aNl aGh -aGh +alV aZf -aGh -aGh +apY +aqQ ajt aBc bmH @@ -121025,10 +118134,10 @@ bcZ ajt bgf aox -apX aox aox -cdY +aox +cdZ cdZ ahy asx @@ -121270,9 +118379,9 @@ aHq aNq aZO aGh -aQm +bqU aRi -aSn +bqU bqU ajt aXV @@ -121288,7 +118397,7 @@ blZ bpq bpg aYO -iYW +asx bwb arz bDc @@ -121310,7 +118419,7 @@ bQy bBn axF bCr -bBf +bYZ cpW bYu aCc @@ -121538,7 +118647,7 @@ bqc bdo bqz bgo -apX +aox bqb cba aIN @@ -121549,10 +118658,10 @@ asx bwd bzA bLe -auT +aGc auT arF -iYW +asx bAb bQR aYO @@ -121809,7 +118918,7 @@ byE bzP arV brU -iYW +asx bAp bQS aox @@ -121824,7 +118933,7 @@ bBR bCl bCA bCr -bBf +bYZ csC bYw aIb @@ -122053,9 +119162,9 @@ bdy ajt ajt blc -hqv -ezp -ezp +ajt +aZd +aZd aZd auj aZd @@ -122063,10 +119172,10 @@ asx asx asx asx -iYW -iYW asx -iYW +asx +asx +asx bMu bRr aox @@ -122307,7 +119416,7 @@ ajt boI ajt bqy -hqv +ajt bgr bhd biJ @@ -122315,9 +119424,9 @@ bjn bmE bns bpk -bnD -bnS -boc +brN +brN +brN bwG bso bpi @@ -122828,11 +119937,11 @@ boV bjn bmG bnK -bny +brN bqH -bny +brN buB -bny +brN bzt bAs bBQ @@ -122852,7 +119961,7 @@ bQC bCx awq bUY -bBf +bYZ cud cyb btG @@ -123085,11 +120194,11 @@ bqP bmF bcX bnN -bny +brN bqH -bny +brN buB -bny +brN bzC boS bCF @@ -123102,7 +120211,7 @@ bZM bhY bIT bQI -bLr +bMt bMt bMt bMt @@ -123342,9 +120451,9 @@ bpb bjn bme bnK -bny +brN bqH -bny +brN buB bwM byG @@ -123352,7 +120461,7 @@ bof bFJ bFX bqQ -ezp +aZd aZd bBU bXv @@ -123599,7 +120708,7 @@ bhd bol bmg bnO -bny +brN bqI bsR buD @@ -123608,8 +120717,8 @@ bAl bAu bFV bGk -ezp -ezp +aZd +aZd bGh bZI bhY @@ -123847,7 +120956,7 @@ bsb brq brF brG -hqv +ajt boQ boH bqo @@ -124104,7 +121213,7 @@ brr aVd brJ brI -hqv +ajt ajt bmA bph @@ -124123,7 +121232,7 @@ bob bRc bZy bZp -bZA +bZD bZD bZJ bZN @@ -124325,14 +121434,14 @@ bfq iMq bbx alB -afX -agF +arx +arx +alB +alB +alB alB alB alB -pQf -pQf -pQf alB alB alB @@ -124582,7 +121691,7 @@ aWJ ayv aWJ alB -cIe +bdp bhl alB bfq @@ -124626,8 +121735,8 @@ bAX bnz bBZ bqS -bGW -bGW +bZD +aAD bqX brz buO @@ -124669,7 +121778,7 @@ clM axW cnk coo -axU +ayn aLH aLx aLz @@ -124834,7 +121943,7 @@ aeu aeu aeu aeu -pQf +alB bfs aWJ bft @@ -125090,8 +122199,8 @@ alB alB alB alB -pQf -pQf +alB +alB bfM bfM bfM @@ -125129,10 +122238,10 @@ bdf bpC bkG bbH -bnM -bpC -bpC -bpW +bBc +bBc +bBc +bBc bgP bBc bBp @@ -125146,7 +122255,7 @@ bqY bvB buR bPx -erN +bnv bjX bkz bOv @@ -125189,7 +122298,7 @@ aLF aag aag aag -aLF +bsm cuA cuW bYI @@ -125353,7 +122462,7 @@ aeV bfl bfV aWR -aWP +adT adx aWR bgC @@ -125379,17 +122488,17 @@ aXP bai aZS aZr -ajL -ajL +cAX +cAX cAX aJJ aRs aSB aTP -aYd -aYK -aYK -aYd +arD +arX +arX +auz bdO beO bpF @@ -125403,14 +122512,14 @@ blf blf blg blf -mPm +blf blQ bAC bBL bkQ bjW bAv -bOC +bEg bGM bHP bJc @@ -125620,7 +122729,7 @@ cqw bgM bgn bVA -pQf +alB ctJ cxP aWY @@ -125630,7 +122739,7 @@ ayx bdc bdR aAZ -eVT +aZv aEE aFp aHJ @@ -125644,12 +122753,12 @@ aYK aZL bch aYd -aZg -aZj +aYK +aYK aYd bhe cLt -xqL +bhI bhX bhs biM @@ -125906,7 +123015,7 @@ aZQ aYd bdP beP -xqL +bhI bhy ats bko @@ -125969,10 +123078,10 @@ ckk aEg cnu cnu -cnd +bOc cnd cnu -cnd +bOc cnu alm aaa @@ -126403,9 +123512,9 @@ bgk aBd aZv aXw -aXE +kRh aXI -aYR +sfp beD bbj aNF @@ -126427,7 +123536,7 @@ aKA bjh bjy bpw -mPm +blf bsV buS bxl @@ -126481,13 +123590,13 @@ cmH cvE cmR cwe -cnd +krJ cwN cqQ csq cnu cuL -cnd +cnu acm aaa aaa @@ -126652,7 +123761,7 @@ alB cOb cps cMW -iwR +aZF aZF ami aZF @@ -126684,7 +123793,7 @@ bkr bmx bod bpx -mPm +blf blg bBo blg @@ -126703,7 +123812,7 @@ bNM bOo cgd bNM -tYn +bNM aVM bNx bWx @@ -126733,7 +123842,7 @@ cms cmE cmQ cju -bOC +bEg cnV cmh bOb @@ -126952,7 +124061,7 @@ bIm bHR bNg bAF -bOC +bEg bQe bLZ bkE @@ -127001,7 +124110,7 @@ cwZ cxi cnu cnu -cnd +cnu alm aaa aaa @@ -127146,7 +124255,7 @@ alB alB alB alB -pQf +alB alB bfQ bfQ @@ -127166,7 +124275,7 @@ alB cby cMP ajO -iwR +aZF aXf aeG aik @@ -127181,8 +124290,8 @@ beE mIG aNM bgW -nNV -nNV +aDI +aDI biB aYg aDI @@ -127252,11 +124361,11 @@ bEg cvG cvL cwm -cnd +bOc cpb crf -cnd -cnd +cnu +cnu cko aeu aeu @@ -127447,7 +124556,7 @@ bbb bdz cby clA -wmX +aCb bjJ blJ biV @@ -127467,7 +124576,7 @@ bCc bOw bAT bOC -erN +bnv bHT bJh bJK @@ -127691,7 +124800,7 @@ aZY aJF aWX aVJ -nDw +anx bbM aNT aPo @@ -127704,7 +124813,7 @@ bbb bdE cbz cLt -wmX +aCb bhO aqH biI @@ -127717,7 +124826,7 @@ bkA bke blr bkY -blC +blD bls bPj bmo @@ -127734,7 +124843,7 @@ bTk bXL bXx bPe -bUt +bWx hDh uRM uRM @@ -127931,7 +125040,7 @@ alB alB alB alB -pQf +alB alB alB cng @@ -127948,7 +125057,7 @@ aGa aKu aMe bfB -sPG +amV bfr bex aTU @@ -127991,9 +125100,9 @@ bOG bQU bUs bTv -krJ -krJ -krJ +bOc +bOc +bOc bOc bWn bWx @@ -128224,7 +125333,7 @@ big big bom aCb -jDv +bhQ bpB bkl bli @@ -128244,7 +125353,7 @@ bQo bJM bPe bMF -bRs +aZj bQV bPe bTw @@ -128270,9 +125379,9 @@ bUN cke aeu bzG -cjC -clg -clP +clR +clR +clR ctU bzG aeu @@ -128527,7 +125636,7 @@ jAT aeu aeu bzG -cjF +clR clE clQ ctW @@ -128784,8 +125893,8 @@ bUN aeu aeu bzG -cjG -clF +clR +clR clR ctX bzG @@ -128994,7 +126103,7 @@ bhH bhW bmN boK -emD +bhH bhH bjV bkh @@ -129017,7 +126126,7 @@ bLE bMN bON bQY -bSQ +bOc bPe bOc bWz @@ -129535,7 +126644,7 @@ cmr aWs crl bXC -bXo +bON bYg bZk bTO @@ -129736,7 +126845,7 @@ cME cMr cLs bkd -ava +bkd bkd bkd azD @@ -130048,7 +127157,7 @@ bRV bNz bSn crl -bRt +bON bXw bWM bPe @@ -130056,7 +127165,7 @@ bZC bPe bOc bSr -bSd +krJ cgg hxn hxn @@ -130271,7 +127380,7 @@ aSM aUn baC aYp -bcD +awi bgi bkd bhH @@ -130305,7 +127414,7 @@ bRZ cmr bRA crl -bXy +bON bXA bXN bTG @@ -130562,7 +127671,7 @@ bSb cmr cGz cro -bRt +bON bXA cFE bTt @@ -131040,7 +128149,7 @@ awi awi baC baC -bcD +awi aYs cdc cna @@ -131551,7 +128660,7 @@ axO cOm cbj aio -auz +cbm aSZ cOo aVt @@ -131600,13 +128709,13 @@ aeu aeu aUz acm -cmJ -ivg -ivg -cmJ -ivg -ivg -cmJ +acm +acK +acK +acm +acK +acK +acm acm aeU aeU @@ -131801,14 +128910,14 @@ bkd aze aAG cbj -cLt +cbk aJn cLg aMq ava bkd bkd -ava +bkd avA avA bkd @@ -132058,7 +129167,7 @@ bkd ava ava bkd -ava +bkd avA crw avA @@ -132319,7 +129428,7 @@ bkd cLK cLK afJ -ava +bkd aeu alm acm @@ -132572,7 +129681,7 @@ aeu aeu aeu aeu -ava +bkd agy cLR agy @@ -132829,7 +129938,7 @@ aeu aeu aeu aeu -beK +bhq aaa aaa aaa diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index ae0f757a43..9fe0fd87ee 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -8268,6 +8268,9 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "apf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, /turf/open/floor/plating{ icon_state = "platingdmg3" }, @@ -37512,12 +37515,12 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bvb" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, /turf/open/floor/plasteel/dark/corner, /area/hallway/primary/starboard) "bvc" = ( @@ -37581,10 +37584,10 @@ /turf/open/floor/circuit/green, /area/ai_monitored/turret_protected/ai) "bvg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/effect/landmark/blobstart, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, /turf/open/floor/plating, /area/maintenance/starboard) "bvh" = ( @@ -38444,33 +38447,36 @@ dir = 4; pixel_x = -23 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, /area/hallway/primary/starboard) "bxa" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bxb" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 27 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, /obj/machinery/light{ dir = 4 }, @@ -38498,8 +38504,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bxf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 }, /turf/closed/wall, /area/engine/atmos) @@ -39190,6 +39196,9 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -39198,6 +39207,9 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/dark/corner, /area/hallway/primary/starboard) "byR" = ( @@ -39205,21 +39217,19 @@ name = "Station Intercom (General)"; pixel_x = -30 }, -/obj/item/crowbar/red, -/obj/item/wrench, -/obj/item/clothing/mask/gas, /obj/machinery/airalarm{ pixel_y = 23 }, -/obj/structure/table, -/obj/item/storage/box, -/obj/item/storage/box, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/computer/atmos_alert, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -39231,10 +39241,13 @@ /obj/machinery/light{ dir = 1 }, -/obj/machinery/computer/atmos_alert, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/computer/station_alert, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -39248,10 +39261,13 @@ /obj/machinery/camera{ c_tag = "Atmospherics - Control Room" }, -/obj/machinery/computer/station_alert, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/structure/closet/secure_closet/atmospherics, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -39265,54 +39281,44 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/structure/closet/secure_closet/atmospherics, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, /area/engine/atmos) "byV" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/computer/atmos_control, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/checker, +/area/engine/atmos) +"byW" = ( /obj/structure/sign/plaques/atmos{ pixel_y = 32 }, -/obj/item/phone{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/cigbutt/cigarbutt{ - pixel_x = 5; - pixel_y = -1 - }, -/obj/structure/table, /obj/machinery/light_switch{ pixel_x = 26 }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/computer/atmos_control, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/plasteel/checker, /area/engine/atmos) -"byW" = ( -/obj/structure/table, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/clothing/head/welding{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/light_switch{ - pixel_x = -26 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) "byX" = ( /obj/machinery/power/apc/highcap/ten_k{ areastring = "/area/engine/atmos"; @@ -39323,8 +39329,15 @@ /obj/structure/cable/yellow{ icon_state = "0-2" }, -/obj/machinery/camera{ - c_tag = "Atmospherics - Entrance" +/obj/machinery/light_switch{ + pixel_x = -26 + }, +/obj/machinery/pipedispenser/disposal/transit_tube, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -39333,16 +39346,27 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "byZ" = ( -/obj/machinery/space_heater, /obj/machinery/firealarm{ pixel_y = 24 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/pipedispenser, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Atmospherics - Entrance"; + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bza" = ( @@ -40077,42 +40101,24 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bAE" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"bAF" = ( /obj/structure/chair/office/dark{ dir = 4 }, /obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/plasteel, /area/engine/atmos) -"bAF" = ( -/obj/machinery/computer/atmos_control{ - dir = 8 - }, -/obj/machinery/requests_console{ - department = "Atmospherics"; - departmentType = 4; - name = "Atmos RC"; - pixel_x = 30 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) "bAG" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/grenade/chem_grenade/smart_metal_foam, -/obj/item/grenade/chem_grenade/smart_metal_foam, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Monitoring"; + req_access_txt = "24" }, +/turf/open/floor/plasteel, /area/engine/atmos) "bAH" = ( /obj/structure/cable/yellow{ @@ -40121,6 +40127,7 @@ /obj/structure/cable/yellow{ icon_state = "2-4" }, +/obj/machinery/light/small, /turf/open/floor/plasteel, /area/engine/atmos) "bAI" = ( @@ -40131,10 +40138,11 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bAJ" = ( -/obj/machinery/space_heater, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/pipedispenser/disposal, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/engine/atmos) "bAK" = ( @@ -40172,9 +40180,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bAQ" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/manifold4w/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bAR" = ( @@ -40841,12 +40847,12 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bCj" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, /obj/structure/cable/yellow{ icon_state = "2-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bCk" = ( @@ -40856,39 +40862,50 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bCl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/computer/atmos_control{ +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ dir = 8 }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/turf/open/floor/plasteel/dark/corner, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_x = 26; + pixel_y = -26; + req_access_txt = "24" + }, +/turf/open/floor/plasteel, /area/engine/atmos) "bCm" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"bCn" = ( -/obj/structure/table, -/obj/item/storage/belt/utility, -/obj/item/t_scanner, -/obj/item/t_scanner, -/obj/item/t_scanner, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/effect/turf_decal/tile/yellow{ - dir = 8 + dir = 4 }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 +/obj/machinery/requests_console{ + department = "Atmospherics"; + departmentType = 4; + name = "Atmos RC"; + pixel_x = 30 }, +/obj/machinery/vending/wardrobe/atmos_wardrobe, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"bCn" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/suit_storage_unit/atmos, +/turf/open/floor/plasteel, /area/engine/atmos) "bCo" = ( /obj/structure/cable/yellow{ @@ -40897,25 +40914,27 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel, +/turf/closed/wall, /area/engine/atmos) "bCp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Monitoring"; + req_access_txt = "24" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bCq" = ( -/obj/machinery/space_heater, -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, /obj/effect/turf_decal/stripes/line{ dir = 10 }, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, /area/engine/atmos) "bCr" = ( /obj/machinery/atmospherics/components/binary/pump/on{ @@ -40965,7 +40984,8 @@ /area/engine/atmos) "bCy" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/purple/visible{ +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/layer_manifold{ dir = 4 }, /turf/open/floor/plating, @@ -41608,35 +41628,22 @@ /area/engine/atmos) "bDP" = ( /obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/yellow{ icon_state = "1-4" }, /turf/open/floor/plasteel, /area/engine/atmos) "bDQ" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"bDR" = ( -/obj/machinery/door/airlock/atmos/glass{ - name = "Atmospherics Monitoring"; - req_access_txt = "24" - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, +/turf/closed/wall, /area/engine/atmos) "bDS" = ( /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -41658,6 +41665,9 @@ "bDV" = ( /obj/structure/closet/crate, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Atmospherics - Entrance" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bDW" = ( @@ -42622,6 +42632,9 @@ name = "Atmospherics Blast Door" }, /obj/effect/turf_decal/delivery, +/obj/machinery/door/window/westleft{ + req_access_txt = "24" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bFG" = ( @@ -42640,51 +42653,17 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bFI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, /area/engine/atmos) "bFJ" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"bFK" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/button/door{ - id = "atmos"; - name = "Atmospherics Lockdown"; - pixel_x = 26; - pixel_y = -26; - req_access_txt = "24" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"bFL" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, +/turf/open/floor/plasteel, /area/engine/atmos) "bFM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ @@ -42717,6 +42696,7 @@ name = "Distribution Loop"; req_access_txt = "24" }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bFQ" = ( @@ -42726,15 +42706,13 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bFR" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plasteel, +/turf/closed/wall, /area/engine/atmos) "bFS" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 9 - }, +/obj/machinery/atmospherics/pipe/simple/purple/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bFT" = ( @@ -42777,6 +42755,7 @@ /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plating, /area/engine/atmos) "bFY" = ( @@ -43320,52 +43299,33 @@ /turf/open/floor/plasteel/dark/corner, /area/hallway/primary/starboard) "bHp" = ( -/obj/machinery/portable_atmospherics/canister/air, /obj/machinery/light/small{ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) "bHq" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) "bHr" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, /turf/open/floor/plasteel, -/area/engine/atmos) +/area/hallway/primary/starboard) "bHs" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/machinery/light/small{ +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bHt" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, +/turf/closed/wall/r_wall, /area/engine/atmos) "bHu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, @@ -43387,9 +43347,8 @@ /area/engine/atmos) "bHx" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/purple/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 }, /turf/open/floor/plating, /area/engine/atmos) @@ -43418,8 +43377,8 @@ /area/engine/atmos) "bHB" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 }, /turf/open/floor/plating, /area/engine/atmos) @@ -43991,13 +43950,13 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bIH" = ( @@ -44034,8 +43993,10 @@ /area/engine/atmos) "bIK" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bIL" = ( @@ -44046,53 +44007,27 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) -"bIM" = ( +"bIN" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, -/turf/closed/wall/r_wall, +/obj/machinery/suit_storage_unit/atmos, +/turf/open/floor/plasteel, /area/engine/atmos) -"bIN" = ( -/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, +"bIO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plasteel{ - dir = 1 - }, -/area/engine/atmos) -"bIO" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Air to External Air Ports" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, +/turf/closed/wall, /area/engine/atmos) "bIP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, /obj/structure/cable/yellow{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bIQ" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Air to External Air Ports" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -44100,37 +44035,42 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bIS" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, +/obj/item/beacon, /turf/open/floor/plasteel, /area/engine/atmos) "bIT" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4 - }, /obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bIU" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible, -/obj/machinery/meter, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Air to Ports" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bIV" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to Ports" }, -/obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmos) "bIW" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall, /area/engine/atmos) "bIX" = ( /obj/machinery/atmospherics/pipe/manifold/yellow/visible{ @@ -44155,20 +44095,12 @@ /turf/open/floor/plasteel/cafeteria, /area/engine/atmos) "bIZ" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/atmospherics/components/binary/pump{ dir = 8; name = "N2O to Pure" }, /turf/open/floor/plasteel/dark, /area/engine/atmos) -"bJa" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/atmos) "bJb" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/yellow/visible{ @@ -44837,7 +44769,6 @@ /area/storage/tcom) "bKt" = ( /obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/engineering{ name = "Telecomms Storage"; req_access_txt = "61" @@ -44849,69 +44780,47 @@ /turf/open/floor/plasteel, /area/storage/tcom) "bKu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bKv" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "External Waste Ports to Filter" - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"bKw" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"bKw" = ( /obj/structure/cable/yellow{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bKx" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bKy" = ( -/obj/item/beacon, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 }, -/turf/open/floor/plasteel, +/turf/closed/wall, /area/engine/atmos) "bKz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 }, -/turf/open/floor/plasteel, +/turf/closed/wall, /area/engine/atmos) "bKA" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Air to Ports" - }, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/closed/wall, /area/engine/atmos) "bKB" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Mix to Ports" +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 }, -/turf/open/floor/plasteel, +/turf/closed/wall/r_wall, /area/engine/atmos) "bKC" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Pure to Ports" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/engine/atmos) "bKD" = ( @@ -44919,24 +44828,30 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bKE" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bKF" = ( /obj/machinery/computer/atmos_control/tank/nitrous_tank{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/structure/window/reinforced{ dir = 4 }, /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5 + }, /turf/open/floor/plasteel/white/corner, /area/engine/atmos) "bKG" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 10 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bKH" = ( @@ -45526,6 +45441,9 @@ /area/crew_quarters/theatre) "bLS" = ( /obj/machinery/vending/autodrobe, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, /turf/open/floor/wood, /area/crew_quarters/theatre) "bLT" = ( @@ -45543,14 +45461,19 @@ c_tag = "Telecomms - Storage"; dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/storage/tcom) "bLV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/holopad, /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, /turf/open/floor/plasteel/dark, /area/storage/tcom) "bLW" = ( @@ -45578,9 +45501,6 @@ /turf/open/floor/plating, /area/maintenance/starboard) "bMa" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, /obj/machinery/portable_atmospherics/pump, /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -45591,82 +45511,62 @@ /turf/open/floor/plasteel/cafeteria, /area/engine/atmos) "bMb" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 0; + name = "External to Filter" + }, /turf/open/floor/plasteel/white/corner{ dir = 1 }, /area/engine/atmos) -"bMc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bMd" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 +/obj/structure/cable/yellow{ + icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/engine/atmos) "bMe" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -26 - }, -/obj/machinery/camera{ - c_tag = "Atmospherics - Central"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/plating, /area/engine/atmos) "bMf" = ( -/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, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Port to External" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bMg" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 }, -/turf/open/floor/plasteel, +/turf/closed/wall, /area/engine/atmos) "bMh" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/theatre) "bMi" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/storage/tcom) "bMj" = ( /obj/machinery/holopad, /turf/open/floor/plasteel, /area/engine/atmos) "bMk" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ - dir = 1 - }, /obj/structure/window/reinforced{ dir = 4 }, @@ -45677,13 +45577,16 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 + }, +/obj/machinery/portable_atmospherics/canister, /turf/open/floor/plasteel/white/corner, /area/engine/atmos) "bMl" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bMm" = ( @@ -46474,57 +46377,46 @@ /obj/machinery/atmospherics/components/unary/portables_connector/visible, /turf/open/floor/plating, /area/maintenance/starboard) -"bNP" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ +"bNQ" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bNR" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bNS" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, /turf/open/floor/plasteel/white/corner{ dir = 1 }, /area/engine/atmos) -"bNQ" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bNR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/engine/atmos) -"bNS" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Port Mix to West Ports" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bNU" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Port Mix to East Ports" - }, -/obj/item/crowbar, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/dark, /area/engine/atmos) "bNV" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/door/window/northleft{ dir = 8; name = "Inner Pipe Access"; req_access_txt = "24" }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bNW" = ( @@ -47163,9 +47055,6 @@ /turf/open/floor/plating, /area/maintenance/starboard) "bPo" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, /obj/machinery/portable_atmospherics/scrubber, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -47180,12 +47069,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bPp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel/white/corner{ dir = 1 }, @@ -47194,57 +47078,42 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bPr" = ( -/obj/structure/closet/secure_closet/atmospherics, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ + dir = 1 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/engine/atmos) "bPs" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plasteel{ - dir = 1 - }, -/area/engine/atmos) +/turf/closed/wall, +/area/maintenance/starboard) "bPt" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ + dir = 1 }, -/obj/machinery/meter, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/engine/atmos) "bPu" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plasteel{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, /area/engine/atmos) "bPv" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 8 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "O2 to Airmix" }, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/engine/atmos) "bPw" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/structure/window/reinforced{ dir = 4 }, @@ -47262,8 +47131,8 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -47857,33 +47726,40 @@ /turf/open/floor/plating, /area/maintenance/starboard) "bQS" = ( -/obj/machinery/suit_storage_unit/atmos, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/engine/atmos) "bQT" = ( -/obj/structure/sign/warning/nosmoking, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, /area/engine/atmos) "bQU" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall/r_wall, /area/engine/atmos) "bQV" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 }, -/obj/machinery/meter, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/atmos) "bQW" = ( /obj/machinery/computer/atmos_control/tank/toxin_tank{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/structure/window/reinforced{ dir = 4 }, @@ -47897,6 +47773,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bQX" = ( @@ -48507,38 +48384,24 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, /area/engine/atmos) "bSh" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plasteel{ - dir = 1 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 9 }, +/turf/open/floor/plating, /area/engine/atmos) "bSi" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/obj/item/wrench, -/turf/open/floor/plasteel, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold, +/turf/open/floor/plating, /area/engine/atmos) "bSj" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ - dir = 1 - }, /obj/structure/window/reinforced{ dir = 4 }, @@ -48553,6 +48416,8 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/space_heater, /turf/open/floor/plasteel, /area/engine/atmos) "bSk" = ( @@ -48570,15 +48435,15 @@ /area/engine/atmos) "bSn" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, /obj/structure/cable/yellow{ icon_state = "1-2" }, /obj/structure/cable/yellow{ icon_state = "1-4" }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, /turf/open/floor/plating, /area/maintenance/port) "bSo" = ( @@ -48962,6 +48827,9 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/starboard) "bTe" = ( @@ -48995,41 +48863,18 @@ /obj/machinery/vending/wardrobe/atmos_wardrobe, /turf/open/floor/plasteel/dark, /area/engine/atmos) -"bTj" = ( -/obj/machinery/requests_console{ - department = "Atmospherics"; - departmentType = 4; - name = "Atmos RC"; - pixel_x = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/shower{ - dir = 8; - name = "emergency shower" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bTk" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Port to Filter" - }, -/obj/machinery/light/small{ +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ dir = 8 }, -/obj/machinery/camera{ - c_tag = "Atmospherics - Starboard"; - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/atmos) "bTl" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 }, -/turf/open/floor/plasteel, +/turf/closed/wall/r_wall, /area/engine/atmos) "bTm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -49656,61 +49501,19 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "bUA" = ( -/obj/machinery/pipedispenser, -/obj/effect/turf_decal/stripes/line{ - dir = 10 +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 }, -/turf/open/floor/plasteel, +/turf/closed/wall/r_wall, /area/engine/atmos) "bUB" = ( -/obj/machinery/light{ +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ dir = 1 }, -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/pipedispenser/disposal, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUC" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = 28 - }, -/obj/machinery/pipedispenser/disposal/transit_tube, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUD" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Port to Filter" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUE" = ( -/obj/item/cigbutt, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUF" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUG" = ( -/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible, -/turf/open/floor/plasteel, +/obj/structure/lattice/catwalk, +/turf/open/space, /area/engine/atmos) "bUH" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/structure/window/reinforced{ dir = 4 }, @@ -49728,8 +49531,8 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 }, /turf/open/floor/plasteel/dark, /area/engine/atmos) @@ -50163,7 +49966,6 @@ /turf/closed/wall, /area/hallway/secondary/service) "bVA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock{ name = "Service Hall"; req_access_txt = "null"; @@ -50226,17 +50028,20 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, /area/engine/atmos) "bVG" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 1 - }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -50255,37 +50060,16 @@ /area/engine/atmos) "bVI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 + dir = 9 }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, /area/engine/atmos) -"bVJ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, -/obj/machinery/meter, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bVK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bVL" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Port to Fuel Pipe" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bVM" = ( /obj/machinery/computer/atmos_control/tank/carbon_tank{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/structure/window/reinforced{ dir = 4 }, @@ -50299,6 +50083,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bVN" = ( @@ -50966,6 +50751,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/starboard) "bXe" = ( @@ -51012,9 +50798,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, /turf/open/floor/plasteel, /area/engine/atmos) "bXh" = ( @@ -51024,19 +50807,6 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Fuel Pipe to Filter" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bXi" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/dark/visible{ - dir = 1 - }, /turf/open/floor/plasteel, /area/engine/atmos) "bXj" = ( @@ -51044,56 +50814,11 @@ icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bXk" = ( -/obj/effect/landmark/start/atmospheric_technician, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bXl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bXm" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bXn" = ( -/obj/machinery/atmospherics/pipe/manifold/dark/visible, -/obj/machinery/meter{ - color = "" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bXo" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Pure to Fuel Pipe" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bXp" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 4 + dir = 9 }, /turf/open/floor/plasteel, /area/engine/atmos) "bXq" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ - dir = 1 - }, /obj/structure/window/reinforced{ dir = 4 }, @@ -51108,6 +50833,8 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/space_heater, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bXr" = ( @@ -51562,8 +51289,8 @@ /turf/open/floor/plating, /area/maintenance/starboard) "bYt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, /turf/open/floor/plating, /area/maintenance/starboard) @@ -51574,6 +51301,9 @@ icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/starboard) "bYv" = ( @@ -51600,36 +51330,11 @@ /obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/floor/plasteel, /area/engine/atmos) -"bYx" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bYy" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "N2 to Airmix" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bYz" = ( -/obj/machinery/atmospherics/components/trinary/mixer/airmix{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bYA" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bYB" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/light{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bYC" = ( @@ -52135,9 +51840,6 @@ /turf/closed/wall, /area/maintenance/disposal/incinerator) "bZF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, /obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_x = -30 @@ -52145,20 +51847,14 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, /area/engine/atmos) -"bZG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bZH" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "N2 to Pure" +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -52168,13 +51864,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bZJ" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bZK" = ( /obj/machinery/atmospherics/pipe/manifold/yellow/visible{ dir = 1 @@ -52183,7 +51872,7 @@ /area/engine/atmos) "bZL" = ( /obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 4 + dir = 1 }, /obj/machinery/meter, /turf/open/floor/plasteel, @@ -52193,7 +51882,6 @@ dir = 4 }, /obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/item/paper_bin{ pixel_x = -2; pixel_y = 8 @@ -52205,6 +51893,9 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 9 + }, /turf/open/floor/plasteel/dark/corner, /area/engine/atmos) "bZN" = ( @@ -52975,6 +52666,9 @@ name = "Inner Pipe Access"; req_access_txt = "24" }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "cbc" = ( @@ -52984,15 +52678,12 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "cbd" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ - dir = 4 - }, /obj/structure/window/reinforced, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -53004,6 +52695,7 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/structure/reagent_dispensers/watertank/high, /turf/open/floor/plasteel, /area/engine/atmos) "cbe" = ( @@ -53011,9 +52703,6 @@ /obj/machinery/computer/atmos_control/tank/nitrogen_tank{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/dark/visible, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -53029,13 +52718,6 @@ /area/engine/atmos) "cbf" = ( /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1; - name = "Nitrogen Outlet" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -53046,6 +52728,10 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/obj/machinery/portable_atmospherics/canister, /turf/open/floor/plasteel, /area/engine/atmos) "cbg" = ( @@ -53059,16 +52745,14 @@ name = "Inner Pipe Access"; req_access_txt = "24" }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "cbh" = ( /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ - dir = 4 - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -53079,6 +52763,10 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plasteel, /area/engine/atmos) "cbi" = ( @@ -53086,9 +52774,6 @@ /obj/machinery/computer/atmos_control/tank/oxygen_tank{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -53099,17 +52784,13 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "cbj" = ( /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1; - name = "O2 to Airmix" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -53120,6 +52801,9 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/components/trinary/mixer/airmix{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "cbk" = ( @@ -53133,41 +52817,35 @@ name = "Inner Pipe Access"; req_access_txt = "24" }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "cbl" = ( /obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/obj/machinery/portable_atmospherics/canister, /turf/open/floor/plasteel/cafeteria, /area/engine/atmos) "cbn" = ( /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Air to Pure" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel/cafeteria, /area/engine/atmos) "cbo" = ( @@ -53175,15 +52853,21 @@ dir = 4 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 9 - }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/structure/rack, +/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/plasteel/cafeteria, /area/engine/atmos) "cbp" = ( @@ -53941,64 +53625,79 @@ /area/maintenance/disposal/incinerator) "ccL" = ( /obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 + dir = 10 }, /turf/closed/wall/r_wall, /area/engine/atmos) "ccM" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 +/obj/machinery/atmospherics/components/binary/valve/digital{ + name = "Waste Release" }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "ccN" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ dir = 4 }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "ccO" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 9 +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "ccP" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"ccQ" = ( -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"ccR" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"ccS" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"ccT" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Nitrogen Outlet" }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"ccU" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ +/obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, /turf/open/floor/plasteel/dark, /area/engine/atmos) -"ccV" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 +"ccQ" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "N2 to Pure" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"ccR" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"ccS" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"ccT" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Air to Pure" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"ccV" = ( /obj/machinery/camera{ c_tag = "Atmospherics - Starboard Aft"; dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 9 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "ccW" = ( @@ -54008,6 +53707,7 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plating, /area/engine/atmos) "ccX" = ( @@ -55275,11 +54975,6 @@ /obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/space, /area/space/nearstation) -"cfv" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/space, -/area/space/nearstation) "cfw" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/manifold/yellow/visible{ @@ -76245,11 +75940,8 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "cUR" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/valve/digital{ - name = "Waste Release" +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 }, /turf/open/floor/plasteel/dark, /area/engine/atmos) @@ -76360,16 +76052,11 @@ /turf/open/space/basic, /area/space) "cVy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"cVz" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 }, -/obj/structure/lattice/catwalk, -/turf/open/space, +/turf/open/floor/plating, /area/engine/atmos) "cVC" = ( /mob/living/simple_animal/sloth/citrus, @@ -76385,9 +76072,6 @@ /obj/machinery/computer/atmos_control/tank/air_tank{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, @@ -79052,43 +78736,23 @@ /obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/space, /area/space/nearstation) -"dhe" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"dhg" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"dhh" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix to Engine" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "dhi" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/door/window/northleft{ dir = 8; name = "Inner Pipe Access"; req_access_txt = "24" }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "dhj" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "dhk" = ( @@ -79096,6 +78760,7 @@ /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plating, /area/engine/atmos) "dhl" = ( @@ -79673,12 +79338,12 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, /obj/structure/sign/poster/contraband/clown{ pixel_x = 32 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/wood, /area/crew_quarters/theatre) "din" = ( @@ -80908,15 +80573,14 @@ /turf/open/floor/plating, /area/engine/atmos) "dBM" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Monitoring"; + req_access_txt = "24" + }, /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, +/turf/open/floor/plasteel, /area/engine/atmos) "dBN" = ( /obj/effect/spawner/structure/window/reinforced, @@ -81365,13 +81029,6 @@ }, /turf/open/floor/plasteel, /area/hydroponics) -"dDm" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/engine/atmos) "dDo" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/white, @@ -81590,6 +81247,15 @@ }, /turf/open/floor/plating, /area/quartermaster/storage) +"dLd" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "dLK" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -81599,6 +81265,12 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) +"dOR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/starboard) "dYu" = ( /obj/machinery/door/airlock/external{ name = "Auxiliary Airlock" @@ -81673,10 +81345,10 @@ /turf/open/floor/plating, /area/crew_quarters/cryopod) "eJq" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "CO2 to Pure" + name = "CO2 Outlet Pump" }, /turf/open/floor/plasteel/dark, /area/engine/atmos) @@ -81826,6 +81498,12 @@ /obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/white, /area/science/circuit) +"gRX" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "gXY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -81895,6 +81573,13 @@ }, /turf/open/floor/plasteel/white, /area/science/lab) +"izM" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Pure to Ports" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "iCn" = ( /obj/machinery/vr_sleeper, /turf/open/floor/plasteel, @@ -81903,6 +81588,13 @@ /obj/structure/table, /turf/open/floor/plating, /area/maintenance/port/aft) +"iRL" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Mix to Engine" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "iSt" = ( /obj/machinery/door/airlock/grunge, /obj/structure/cable/yellow{ @@ -81934,6 +81626,14 @@ }, /turf/open/floor/plasteel, /area/security/prison) +"jsc" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/camera{ + c_tag = "Atmospherics - Aft"; + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) "jwW" = ( /turf/closed/wall/mineral/plastitanium, /area/crew_quarters/fitness/recreation) @@ -81959,6 +81659,15 @@ }, /turf/open/floor/plating, /area/maintenance/solars/port/aft) +"jAj" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "jBe" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -82072,6 +81781,9 @@ dir = 1; name = "O2 to Pure" }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "kOt" = ( @@ -82298,11 +82010,11 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "njd" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/atmospherics/components/binary/pump{ dir = 8; name = "Plasma to Pure" }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "nnK" = ( @@ -82343,6 +82055,12 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) +"nBn" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "nIb" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/mining{ @@ -82355,6 +82073,15 @@ }, /turf/open/floor/plasteel, /area/construction/storage/wing) +"nLT" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) "nWb" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -82413,6 +82140,13 @@ /obj/structure/table/reinforced, /turf/open/floor/plasteel/white, /area/science/circuit) +"oms" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) "omz" = ( /obj/machinery/status_display/supply, /turf/closed/wall, @@ -82488,6 +82222,13 @@ /obj/structure/grille, /turf/open/floor/plating, /area/maintenance/port/aft) +"pbF" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "pmc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -82673,6 +82414,12 @@ }, /turf/open/floor/plasteel, /area/security/prison) +"rpR" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "rzX" = ( /obj/structure/chair/office/light{ dir = 1; @@ -82686,6 +82433,12 @@ }, /turf/open/floor/plasteel/white, /area/science/lab) +"rAc" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "rLV" = ( /obj/structure/table, /obj/item/folder, @@ -82753,6 +82506,13 @@ /obj/structure/grille, /turf/open/floor/plating/airless, /area/space/nearstation) +"siI" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port to Filter" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "soe" = ( /obj/effect/turf_decal/tile/green, /obj/effect/turf_decal/tile/green{ @@ -82771,6 +82531,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) +"stP" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Port to Fuel Pipe" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "syk" = ( /obj/machinery/door/airlock{ id_tag = "AuxShower"; @@ -82919,6 +82685,10 @@ /obj/machinery/cryopod, /turf/open/floor/plasteel/dark, /area/crew_quarters/cryopod) +"uku" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) "upN" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -83137,6 +82907,12 @@ /obj/machinery/vending/cola/random, /turf/open/floor/plasteel, /area/hallway/primary/port) +"xgC" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "xkG" = ( /obj/item/integrated_electronics/wirer, /obj/structure/table/reinforced, @@ -121457,7 +121233,7 @@ bFA byN byN byN -byN +bMh byN bPf byN @@ -121705,7 +121481,7 @@ bpc dhQ btw buX -bwY +nLT bGp btw dCV @@ -121962,7 +121738,7 @@ alq alq alq buY -alq +dOR alq alq alq @@ -121971,7 +121747,7 @@ alq alq alq bKr -bKr +bMi bKr bKr bKr @@ -122477,7 +122253,7 @@ bry bry bva bxa -bry +bHr bAy bAy bDN @@ -122991,7 +122767,7 @@ bhT bhT bvc bxc -bxc +bHs bAA bCg dBK @@ -123247,7 +123023,7 @@ bpg brA bep bvd -bxd +bxc byR bAB bCh @@ -123265,7 +123041,7 @@ bTh bUx aut bXc -apc +bZz bZE caZ ccJ @@ -123504,7 +123280,7 @@ bpg brB bep bve -bxd +bxc byS bAC dBJ @@ -123520,7 +123296,7 @@ apc aqq apc bUy -alq +bPs bXd apf bZE @@ -123761,13 +123537,13 @@ bpg brC bep bCK -bxd +bxc byT bAD bCj bDP -bFI -bHr +bFH +bHq bIK bBt atm @@ -123777,13 +123553,13 @@ apc bSf apc bxc -bxc +bxg bXe bxc bxc bxc ccL -bxl +bQT cft pOP pOP @@ -124018,13 +123794,13 @@ bph brD bep bvg -bxd +bFI byU -bAE -bCk -dBJ +bDU +bKC +bMd bFJ -bHs +bHq bIL cVD atm @@ -124040,8 +123816,8 @@ bYv bZF cbb ccM -bxc -aaf +bQU +bUB aaf aaf aaf @@ -124275,15 +124051,15 @@ bpi brE btz bvh -bxd +bxc byV bAF -bCl -bDQ -bFK -bxk -bIM -bKu +bCk +dBJ +bFH +bHq +bCk +bxd bxc bxc bxc @@ -124294,11 +124070,11 @@ bxc bVG bXg bAO -bZG +bCi cbc cUR cVy -cVz +aaf bAR bAR bAR @@ -124533,14 +124309,14 @@ brF bep bvi bxc -bxc -bxc +byW +bAE bCm -bDR -bza -bxl +dBJ +bCl +bCn bIN -bxg +bDQ bMa bMa bPo @@ -124554,7 +124330,7 @@ bCi bCi cbd ccN -ceg +bQV cfu cgA chN @@ -124790,28 +124566,28 @@ brG bep bep bxc -byW +bKy bAG -bCn +bFR dBM -bFL -bHt +bza +bIW bIO -bKv +bMg bMb -bNP +bNS bPp bPp bSg bDS bDS bVI -bXi +jAj bYw bYw cbe ccO -bza +bSh aaf gJs chO @@ -125054,22 +124830,22 @@ bDT bFM bHu bIP +dLd bKw -bMc bNQ bPq bPq -bHu -bTj -bHu -bVJ +bPq +bPq +bPq +bPq bXj -bYx -bMg +bCi +bCi cbf ccP ceh -cfv +cfw cgA chP cje @@ -125310,23 +125086,23 @@ bCp bDU bFN bAO -bIQ -bKx -bMd -bxd -bPr -bQS -bPr -bxd -bUA -bVK -bXk -bYy +bIS +siI +bCi +rAc +bCi +bCi +bCi +bCi +bCi +bCi +bKD +bCi bZH cbg ccQ -bza -aaf +bSi +cfx bAR bAR bAR @@ -125568,17 +125344,17 @@ bDV bFO bHv bIR -bKy -bMe -bNR -bNR -bQT -bNR -bNR -bUB -bFO -bXl -bIS +nBn +stP +xgC +bCi +bCi +bCi +bCi +bCi +bCi +bCi +bCi bZI cbh ccR @@ -125818,24 +125594,24 @@ bhT bhT bvm bxg -bza -bza -bza -bza -bFP -bza -bIS bKz +bKA +bKA +bMe +bFP +bMe bMf -bxd -bPs -bPs -bSh -bxd -bUC -bVK -bXm -bIS +uku +pbF +bCi +bCi +bCi +bCi +bCi +bCi +bCi +bCi +bCi bZI cbi ccS @@ -126082,20 +125858,20 @@ bDW bFQ bHw bIT -bKA -bMg -bNS -bPt -bQU -bSi -bTk -bDW -bFQ -bXm -bYz -bZJ +oms +pbF +bCi +bCi +bCi +bCi +bCi +bCi +bCi +bCi +bCi +bZI cbj -ccP +bPv ceh cfw cgA @@ -126336,24 +126112,24 @@ bzc bAL ddF bDX -bFR +bCi bHx bIU -bKB -bMh +uku +pbF bCi bCi bKD bCi bCi -bUD bCi -dDm -bIS +bCi +dCY +bCi bZK cbk kJW -ceh +bSi cfx bAR bAR @@ -126594,22 +126370,22 @@ bAM bCt bDY bFS -bHy +bKu bIV -bKC -bMi -bNU -bMg -bQV -bMg -bMg -bUE -bVL -bXn -bYA -bZJ +uku +iRL +rpR +bCi +bCi +bCi +bCi +bCi +bCi +bCi +bCi +bZI cbl -bKG +bQS cei cfy cgB @@ -126852,21 +126628,21 @@ bCu bDZ bFT bHz -bIW +bNR +izM bKD -dhe -dhg -bPu -bPu -bPu -bTl -bUF +gRX +bCi +bCi +bCi +bCi +bCi bKD -bXo +bCi bMj bZI cVJ -ccQ +ccS bza aaf gJs @@ -127111,20 +126887,20 @@ bFU bHy bIX bKE -bKE -dhh -bPv -bKE -bKE -bKE -bUG -bKE -bXp -bKE +bNR +gRX +bCi +bCi +bCi +bCi +bCi +bCi +bCi +bCi bZL cbn ccT -cei +bTk cfy cgC chV @@ -127380,8 +127156,8 @@ bXq bNV bZM cbo -ccU -bxc +ccS +bTl aaf bAR bAR @@ -127628,17 +127404,17 @@ bKG bMl dhj njd -bKG -bMl -bKG +jsc +bPr +bNU eJq -bKG -bMl +bNU +bPt bYB -bKG -bKG +bNU +bNU ccV -bxc +bTl aaf aaf aaf @@ -127875,27 +127651,27 @@ aaa aaf bxc bxc -bxc +bKB bCy -bza +cei bFX -bza -bJa -bza +cei +bCy +cei bFX dhk -bJa -bza +bCy +cei bFX -bza -bJa -bza +cei +bCy +cei bFX -bxc -bxc -bxc +bPu +bPu +bPu ccW -bxc +bUA aaf aaa aaa diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 2277e4a3ff..5f3a789f6f 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -46,13 +46,13 @@ /area/engine/engineering) "aag" = ( /obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, /obj/machinery/door/poddoor/shutters/radiation/preopen{ id = "engsm"; name = "Radiation Chamber Shutters" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, /turf/open/floor/plating, /area/engine/engineering) "aah" = ( @@ -4719,9 +4719,13 @@ /area/security/warden) "aml" = ( /obj/structure/cable{ - icon_state = "2-8" + icon_state = "0-8" }, -/turf/closed/wall/r_wall, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, /area/security/warden) "amm" = ( /obj/structure/cable{ @@ -5124,14 +5128,25 @@ dir = 8; pixel_x = 28 }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ana" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/closed/wall/r_wall, +/turf/open/floor/plasteel/showroomfloor, /area/security/warden) +"ana" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) "anb" = ( /obj/structure/cable{ icon_state = "1-2" @@ -5333,19 +5348,19 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, -/turf/open/floor/plasteel, -/area/security/brig) -"anB" = ( /obj/structure/cable{ icon_state = "2-8" }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, +/turf/open/floor/plasteel, +/area/security/brig) +"anB" = ( /obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plating, /area/security/warden) "anC" = ( @@ -5394,17 +5409,22 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "anK" = ( /obj/structure/cable{ icon_state = "0-2" }, -/obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, +/obj/structure/cable{ + icon_state = "0-8" + }, /turf/open/floor/plating, /area/security/warden) "anL" = ( @@ -5671,6 +5691,9 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/security/brig) "aop" = ( @@ -5887,11 +5910,10 @@ /turf/open/floor/plasteel/dark, /area/security/brig) "aoQ" = ( -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-2" - }, /obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, /turf/open/floor/plating, /area/security/warden) "aoR" = ( @@ -5949,6 +5971,9 @@ /obj/item/crowbar, /obj/item/wrench, /obj/item/laser_pointer/red, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "aoY" = ( @@ -5956,14 +5981,17 @@ /obj/machinery/light_switch{ pixel_y = -22 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "aoZ" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, /turf/open/floor/plating, /area/security/warden) "apa" = ( @@ -6237,32 +6265,22 @@ /turf/open/floor/plasteel, /area/security/brig) "apI" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "0-2" }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/closed/wall/r_wall, +/obj/structure/cable, +/turf/open/floor/plating, /area/security/warden) "apJ" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, /obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plating, /area/security/warden) "apK" = ( /obj/structure/table/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, /obj/machinery/door/window/brigdoor{ dir = 1; name = "Armory Desk"; @@ -6282,14 +6300,11 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "apL" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plating, /area/security/warden) "apM" = ( @@ -6297,26 +6312,44 @@ name = "Brig Control"; req_access_txt = "3" }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "apN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, /obj/structure/cable{ icon_state = "4-8" }, -/turf/closed/wall/r_wall, -/area/security/warden) -"apO" = ( /obj/structure/cable{ icon_state = "1-8" }, -/turf/closed/wall/r_wall, -/area/security/warden) +/turf/open/floor/plasteel, +/area/security/brig) +"apO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) "apP" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security{ @@ -6437,12 +6470,12 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel, /area/security/brig) "aqo" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -6455,6 +6488,12 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/security/brig) "aqp" = ( @@ -6482,12 +6521,21 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, /area/security/brig) "aqr" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/security/brig) "aqs" = ( @@ -6498,6 +6546,12 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, /area/security/brig) "aqt" = ( @@ -6510,6 +6564,12 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, /area/security/brig) "aqu" = ( @@ -6518,6 +6578,9 @@ }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/security/brig) "aqv" = ( @@ -7469,6 +7532,9 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel, /area/security/brig) "asx" = ( @@ -7488,6 +7554,12 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel, /area/security/brig) "asy" = ( @@ -7513,10 +7585,16 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/security/brig) "asA" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/security/brig) "asB" = ( @@ -7533,6 +7611,9 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/security/brig) "asC" = ( @@ -7930,31 +8011,34 @@ /obj/structure/cable{ icon_state = "0-8" }, -/obj/structure/cable{ - icon_state = "0-4" - }, /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plating, /area/security/brig) "aty" = ( -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 }, /obj/structure/cable{ - icon_state = "1-8" + icon_state = "2-8" }, -/turf/closed/wall, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, /area/security/brig) "atz" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable, /turf/open/floor/plating, /area/security/brig) "atA" = ( @@ -7962,9 +8046,6 @@ id = "Cell 2"; name = "Cell 2" }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 @@ -7972,19 +8053,19 @@ /turf/open/floor/plasteel, /area/security/brig) "atB" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, /obj/structure/cable{ icon_state = "4-8" }, -/turf/closed/wall, +/turf/open/floor/plasteel, /area/security/brig) "atC" = ( /obj/machinery/door/window/brigdoor/security/cell{ id = "Cell 3"; name = "Cell 3" }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 @@ -7992,14 +8073,12 @@ /turf/open/floor/plasteel, /area/security/brig) "atD" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plating, /area/security/brig) "atE" = ( @@ -8009,9 +8088,6 @@ name = "Brig"; req_access_txt = "63" }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/red{ @@ -8023,13 +8099,11 @@ /turf/open/floor/plasteel, /area/security/brig) "atF" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, /obj/structure/cable{ icon_state = "0-2" }, /obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, /turf/open/floor/plating, /area/security/brig) "atG" = ( @@ -8443,6 +8517,9 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/security/brig) "auA" = ( @@ -8900,6 +8977,9 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/security/brig) "avv" = ( @@ -8931,6 +9011,9 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/security/brig) "avy" = ( @@ -8962,6 +9045,9 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/security/brig) "avB" = ( @@ -9541,18 +9627,21 @@ /turf/open/floor/plating, /area/security/brig) "awK" = ( -/obj/structure/cable{ - icon_state = "0-4" +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 }, /obj/structure/cable{ - icon_state = "0-8" + icon_state = "2-4" }, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Gate"; - name = "brig shutters" +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/security/brig) "awL" = ( /obj/machinery/door/firedoor, @@ -9564,9 +9653,6 @@ name = "Brig"; req_access_txt = "63" }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -9577,9 +9663,6 @@ /turf/open/floor/plasteel, /area/security/brig) "awM" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, /obj/structure/cable, /obj/machinery/door/poddoor/preopen{ id = "Secure Gate"; @@ -23047,7 +23130,7 @@ name = "Hydroponics Desk"; req_access_txt = "35" }, -/obj/item/reagent_containers/food/snacks/monkeycube, +/obj/item/reagent_containers/food/snacks/cube/monkey, /turf/open/floor/plasteel/dark, /area/hydroponics) "bce" = ( @@ -37869,6 +37952,7 @@ icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/pipedispenser, /turf/open/floor/engine, /area/science/storage) "bII" = ( @@ -37881,12 +37965,14 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/obj/machinery/pipedispenser/disposal, /turf/open/floor/engine, /area/science/storage) "bIJ" = ( /obj/structure/cable{ icon_state = "1-8" }, +/obj/machinery/pipedispenser/disposal/transit_tube, /turf/open/floor/engine, /area/science/storage) "bIK" = ( @@ -38840,6 +38926,8 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/structure/reagent_dispensers/watertank/high, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/atmos) "bKT" = ( @@ -38858,6 +38946,10 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bKU" = ( @@ -38905,9 +38997,6 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bKW" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-8" }, @@ -38920,11 +39009,15 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bKX" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Mix to Engine" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -38943,10 +39036,10 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bKZ" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold{ dir = 4 }, -/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/engine/atmos) "bLa" = ( @@ -39329,6 +39422,9 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bLZ" = ( @@ -39400,6 +39496,7 @@ /obj/machinery/atmospherics/pipe/manifold/yellow/visible{ dir = 4 }, +/obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmos) "bMf" = ( @@ -39409,6 +39506,9 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bMh" = ( @@ -39423,6 +39523,9 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bMi" = ( @@ -39863,53 +39966,49 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bNd" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bNe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 }, /turf/open/floor/plasteel, /area/engine/atmos) "bNf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, +/obj/item/beacon, /turf/open/floor/plasteel, /area/engine/atmos) "bNg" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1; - name = "Air to Distro" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 5 }, /turf/open/floor/plasteel, /area/engine/atmos) "bNh" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to Ports" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bNi" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4 }, +/obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmos) "bNj" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Ports" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bNk" = ( @@ -39919,13 +40018,13 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bNl" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bNm" = ( @@ -40316,81 +40415,75 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/vending/wardrobe/atmos_wardrobe, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bOj" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/atmos/glass{ - name = "Atmospherics Monitoring"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel, +/turf/closed/wall, /area/engine/atmos) "bOk" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, +/obj/machinery/space_heater, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bOl" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 + dir = 10 + }, +/obj/machinery/space_heater, +/obj/effect/turf_decal/stripes/line{ + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bOm" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/engine/atmos) "bOn" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bOo" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Mix to Port" - }, +/obj/machinery/atmospherics/pipe/manifold/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bOp" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Pure to Mix" - }, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bOq" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump/on{ +/obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Unfiltered to Mix" + name = "Pure to Mix" }, /turf/open/floor/plasteel, /area/engine/atmos) "bOr" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/engine/atmos) "bOs" = ( /obj/structure/sign/warning/fire, @@ -40593,133 +40686,65 @@ /area/engine/atmos) "bOQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 + dir = 10 }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/closed/wall, /area/engine/atmos) "bOR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 }, -/turf/closed/wall/r_wall, +/turf/open/floor/plating, /area/engine/atmos) "bOS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Atmospherics Monitoring"; - dir = 1 - }, -/obj/machinery/space_heater, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/vg_decals/atmos/mix, +/turf/open/floor/engine/vacuum, /area/engine/atmos) "bOT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 }, -/turf/open/floor/plasteel, +/turf/closed/wall, /area/engine/atmos) "bOU" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Waste to Filter" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "bOV" = ( -/obj/structure/table, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/clothing/head/welding{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/multitool{ - layer = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOW" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass/fifty, -/obj/item/storage/belt/utility, -/obj/item/t_scanner, -/obj/item/t_scanner, -/obj/item/t_scanner, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Air to External" }, /turf/open/floor/plasteel, /area/engine/atmos) "bOX" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/stack/sheet/glass, -/obj/item/stack/rods/fifty, -/obj/item/pipe_dispenser, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOY" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "bOZ" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 }, /turf/open/floor/plasteel, /area/engine/atmos) "bPa" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) -"bPb" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Pure to Port" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bPc" = ( -/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bPd" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -40732,14 +40757,15 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bPf" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold{ dir = 4 }, -/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/engine/atmos) "bPg" = ( @@ -40957,60 +40983,76 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bPO" = ( -/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/sorting/mail{ + sortType = 6 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bPP" = ( -/obj/structure/tank_dispenser, -/obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/structure/closet/secure_closet/atmospherics, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bPQ" = ( /turf/closed/wall, /area/engine/atmos) "bPR" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Waste In" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/plasteel, +/turf/closed/wall, /area/engine/atmos) "bPS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics Central"; + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bPT" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Air to Port" - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Air to Distro" }, /turf/open/floor/plasteel, /area/engine/atmos) "bPU" = ( /obj/machinery/atmospherics/components/binary/pump{ - name = "Mix to Port" + name = "Air to Ports" }, /turf/open/floor/plasteel, /area/engine/atmos) "bPV" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bPW" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bPX" = ( @@ -41025,6 +41067,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bPY" = ( @@ -41039,14 +41082,14 @@ /turf/open/floor/engine/n2o, /area/engine/atmos) "bQa" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/machinery/atmospherics/miner/n2o, +/obj/effect/turf_decal/vg_decals/atmos/nitrous_oxide, /turf/open/floor/engine/n2o, /area/engine/atmos) "bQb" = ( /obj/machinery/light/small{ dir = 4 }, +/obj/machinery/atmospherics/miner/n2o, /turf/open/floor/engine/n2o, /area/engine/atmos) "bQc" = ( @@ -41349,10 +41392,6 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bQF" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/effect/landmark/start/atmospheric_technician, /obj/effect/turf_decal/tile/yellow{ dir = 1 }, @@ -41362,54 +41401,48 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bQG" = ( -/obj/machinery/computer/atmos_control{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/engine/atmos) "bQH" = ( -/obj/machinery/pipedispenser, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, /turf/open/floor/plasteel, /area/engine/atmos) "bQI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, /area/engine/atmos) "bQJ" = ( -/obj/structure/closet/secure_closet/atmospherics, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Ports to Filter" }, /turf/open/floor/plasteel, /area/engine/atmos) "bQK" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ +/obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bQL" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bQM" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQN" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ - dir = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Unfiltered to Mix" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41683,105 +41716,88 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bRr" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Atmospherics Desk"; - req_access_txt = "24" - }, -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "atmospherics security door" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, +/turf/closed/wall/r_wall, /area/engine/atmos) "bRs" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/effect/landmark/start/atmospheric_technician, /obj/effect/turf_decal/tile/yellow{ dir = 1 }, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/structure/tank_dispenser, /turf/open/floor/plasteel, /area/engine/atmos) "bRt" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) "bRu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRw" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRx" = ( +/obj/machinery/computer/atmos_control, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRy" = ( +/obj/structure/closet/secure_closet/atmospherics, /obj/machinery/requests_console{ department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = 30 }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/computer/atmos_alert{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRv" = ( -/obj/machinery/pipedispenser/disposal, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Atmospherics Central"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRx" = ( -/obj/machinery/suit_storage_unit/atmos, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRy" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/meter, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/atmos) "bRz" = ( +/obj/structure/disposalpipe/segment, /obj/machinery/holopad, /turf/open/floor/plasteel, /area/engine/atmos) "bRA" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 +/obj/structure/chair/office/dark{ + dir = 1 }, -/obj/machinery/meter, +/obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/plasteel, /area/engine/atmos) "bRB" = ( @@ -41792,6 +41808,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bRC" = ( @@ -42030,6 +42047,11 @@ id = "atmos"; name = "atmospherics security door" }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Atmospherics Desk"; + req_access_txt = "24" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bSb" = ( @@ -42042,76 +42064,70 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/conveyor_switch{ + id = "atmosdeliver" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bSc" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 2; - sortType = 6 +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/engine/atmos) "bSd" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/suit_storage_unit/atmos, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bSe" = ( +/obj/machinery/suit_storage_unit/atmos, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bSe" = ( -/obj/machinery/pipedispenser/disposal/transit_tube, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bSf" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/item/wrench, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bSg" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/light{ dir = 8 }, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plasteel, /area/engine/atmos) "bSh" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Starboard"; - dir = 8 - }, /obj/machinery/atmospherics/components/binary/pump{ dir = 8; name = "Plasma Outlet Pump" }, /obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) -"bSi" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/atmos) "bSj" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; @@ -42383,31 +42399,42 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bSR" = ( -/obj/machinery/light{ - dir = 8 +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Port to Filter" - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) "bSS" = ( -/obj/item/beacon, +/obj/structure/chair/office/dark, +/obj/effect/landmark/start/atmospheric_technician, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bST" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ +/obj/machinery/computer/atmos_alert{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bSU" = ( /obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8 + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -42423,6 +42450,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bSW" = ( @@ -42432,14 +42460,14 @@ /turf/open/floor/engine/plasma, /area/engine/atmos) "bSX" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/obj/machinery/atmospherics/miner/toxins, +/obj/effect/turf_decal/vg_decals/atmos/plasma, /turf/open/floor/engine/plasma, /area/engine/atmos) "bSY" = ( /obj/machinery/light/small{ dir = 4 }, +/obj/machinery/atmospherics/miner/toxins, /turf/open/floor/engine/plasma, /area/engine/atmos) "bSZ" = ( @@ -42775,19 +42803,22 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bTI" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, /obj/effect/turf_decal/tile/yellow{ dir = 1 }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bTJ" = ( @@ -42800,6 +42831,9 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bTK" = ( @@ -42839,87 +42873,72 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bTM" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 30; - pixel_y = 26 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/vending/wardrobe/atmos_wardrobe, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/structure/reagent_dispensers/watertank/high, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/fireaxecabinet{ - pixel_y = 32 + pixel_x = -32 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/camera{ - c_tag = "Atmospherics Mixing" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTR" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Port to Filter" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTS" = ( -/obj/item/cigbutt, -/obj/machinery/atmospherics/pipe/manifold4w/general/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTT" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 }, /turf/open/floor/plasteel, /area/engine/atmos) -"bTU" = ( +"bTN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/engine/atmos) +"bTP" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, /obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ dir = 1 }, +/obj/machinery/camera{ + c_tag = "Atmospherics Starboard"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTQ" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "atmospherics security door" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/turf_decal/delivery, +/obj/structure/closet/firecloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTR" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTT" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bTV" = ( @@ -43066,9 +43085,6 @@ /obj/machinery/camera{ c_tag = "Engineering Access" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, /obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = 24 @@ -43092,89 +43108,86 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bUp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bUq" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 4 - }, /turf/open/floor/plasteel, /area/engine/atmos) "bUr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 9 }, +/obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmos) "bUs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "O2 to Pure" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bUt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bUu" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUv" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "incinerator mix pump" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUw" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 4 + dir = 5 }, /turf/open/floor/plasteel, /area/engine/atmos) -"bUx" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/purple/visible{ +"bUv" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "bUy" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 4 - }, /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bUz" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/purple/visible{ +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/turf/open/floor/plating, +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ + dir = 1 + }, +/turf/open/floor/plasteel, /area/engine/atmos) "bUA" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 10 +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 }, -/turf/open/space, -/area/space/nearstation) +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "bUC" = ( /obj/structure/flora/ausbushes/fernybush, /turf/open/floor/plating/asteroid, @@ -43466,12 +43479,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bVc" = ( @@ -43483,10 +43496,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, /obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, /turf/open/floor/plasteel, /area/engine/atmos) "bVd" = ( @@ -43516,35 +43527,42 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bVg" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, /turf/open/floor/plasteel, /area/engine/atmos) "bVh" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/atmos) "bVi" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 1 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5 }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/atmos) "bVj" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/obj/machinery/atmospherics/components/binary/pump{ + name = "incinerator mix pump" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bVk" = ( @@ -43556,24 +43574,25 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bVl" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/layer_manifold{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plating, /area/engine/atmos) "bVm" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/purple/visible, -/turf/open/space, -/area/space/nearstation) +/obj/machinery/atmospherics/pipe/layer_manifold, +/turf/open/floor/plating, +/area/engine/atmos) "bVn" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output{ dir = 8 @@ -43861,44 +43880,21 @@ }, /turf/open/floor/plasteel, /area/engine/break_room) -"bVV" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Waste to Space" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bVW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 9 }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bVX" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) "bVY" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "O2 to Pure" +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) "bVZ" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bWa" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "N2 to Pure" +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -43910,6 +43906,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bWc" = ( @@ -43917,24 +43914,19 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plating, /area/engine/atmos) -"bWd" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/purple/visible, -/turf/open/space, -/area/space/nearstation) "bWe" = ( /obj/machinery/air_sensor/atmos/carbon_tank, /turf/open/floor/engine/co2, /area/engine/atmos) "bWf" = ( -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/obj/machinery/atmospherics/miner/carbon_dioxide, +/obj/effect/turf_decal/vg_decals/atmos/carbon_dioxide, /turf/open/floor/engine/co2, /area/engine/atmos) "bWg" = ( /obj/machinery/light/small{ dir = 4 }, +/obj/machinery/atmospherics/miner/carbon_dioxide, /turf/open/floor/engine/co2, /area/engine/atmos) "bWh" = ( @@ -44251,43 +44243,34 @@ /area/engine/break_room) "bWI" = ( /obj/machinery/portable_atmospherics/scrubber, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bWJ" = ( /obj/machinery/portable_atmospherics/pump, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/line{ dir = 5 }, /turf/open/floor/plasteel, /area/engine/atmos) -"bWK" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bWL" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bWM" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bWN" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 10 +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 }, /turf/open/floor/plasteel, /area/engine/atmos) "bWO" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bWP" = ( @@ -44298,8 +44281,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bWQ" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 10 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -44311,14 +44294,6 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plating, /area/engine/atmos) -"bWS" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/purple/visible, -/turf/open/space, -/area/space/nearstation) "bWT" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{ dir = 8 @@ -44497,11 +44472,13 @@ /area/engine/engineering) "bXr" = ( /obj/machinery/portable_atmospherics/scrubber, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Waste to Space" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bXs" = ( @@ -44510,14 +44487,22 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bXt" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bXu" = ( @@ -44528,6 +44513,9 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bXv" = ( @@ -44536,6 +44524,9 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bXw" = ( @@ -44544,7 +44535,10 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/layer_manifold, /turf/open/floor/plasteel, /area/engine/atmos) "bXx" = ( @@ -44555,6 +44549,9 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 10 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bXy" = ( @@ -44565,17 +44562,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bXz" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, +/obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmos) "bXA" = ( @@ -44606,6 +44593,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bXD" = ( @@ -44622,7 +44610,6 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bXE" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, @@ -44633,6 +44620,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/purple/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bXF" = ( @@ -44646,15 +44634,13 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bXG" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 6 - }, /turf/closed/wall/r_wall, /area/engine/atmos) "bXI" = ( @@ -44851,17 +44837,11 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/engine/atmos) -"bYq" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 5 - }, -/turf/open/floor/plating, -/area/engine/atmos) "bYs" = ( /obj/machinery/atmospherics/pipe/simple/green/hidden{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "bYt" = ( @@ -44872,9 +44852,6 @@ /turf/closed/wall, /area/maintenance/disposal/incinerator) "bYu" = ( -/obj/machinery/atmospherics/pipe/simple/green/hidden{ - dir = 9 - }, /obj/structure/cable{ icon_state = "1-2" }, @@ -44882,9 +44859,16 @@ name = "Incinerator"; req_access_txt = "24" }, +/obj/machinery/atmospherics/pipe/simple/green/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/purple/visible, /turf/open/floor/plasteel/dark, /area/maintenance/disposal/incinerator) "bYv" = ( +/obj/machinery/atmospherics/pipe/simple/green/hidden{ + dir = 9 + }, /turf/closed/wall, /area/maintenance/disposal/incinerator) "bYw" = ( @@ -45283,16 +45267,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"bZd" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/space, -/area/space/nearstation) -"bZe" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/space, -/area/space/nearstation) "bZf" = ( /obj/machinery/power/apc{ dir = 8; @@ -45332,6 +45306,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/purple/visible, /turf/open/floor/plasteel/dark, /area/maintenance/disposal/incinerator) "bZh" = ( @@ -45350,7 +45325,6 @@ /area/maintenance/disposal/incinerator) "bZi" = ( /obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/purple/visible, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -45499,10 +45473,12 @@ /turf/open/floor/plasteel, /area/engine/engineering) "bZK" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/structure/lattice, +/obj/machinery/atmospherics/components/unary/relief_valve/atmos/atmos_waste{ dir = 1 }, -/turf/open/floor/plating/airless, +/obj/structure/lattice/catwalk, +/turf/open/space, /area/engine/atmos) "bZL" = ( /obj/machinery/atmospherics/pipe/simple, @@ -45543,6 +45519,9 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 5 + }, /turf/open/floor/plasteel/dark, /area/maintenance/disposal/incinerator) "bZQ" = ( @@ -45562,11 +45541,14 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/maintenance/disposal/incinerator) "bZR" = ( /obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 5 + dir = 4 }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) @@ -46019,16 +46001,14 @@ /turf/open/floor/engine/n2, /area/engine/atmos) "cbt" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/machinery/atmospherics/miner/nitrogen, +/obj/effect/turf_decal/vg_decals/atmos/nitrogen, /turf/open/floor/engine/n2, /area/engine/atmos) "cbu" = ( /turf/open/floor/engine/o2, /area/engine/atmos) "cbv" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/atmospherics/miner/oxygen, +/obj/effect/turf_decal/vg_decals/atmos/oxygen, /turf/open/floor/engine/o2, /area/engine/atmos) "cbw" = ( @@ -46036,8 +46016,8 @@ /turf/open/floor/engine/air, /area/engine/atmos) "cbx" = ( -/obj/machinery/portable_atmospherics/canister/air, /obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/vg_decals/atmos/air, /turf/open/floor/engine/air, /area/engine/atmos) "cby" = ( @@ -46238,10 +46218,12 @@ /area/engine/engineering) "ccm" = ( /obj/machinery/light/small, +/obj/machinery/atmospherics/miner/nitrogen, /turf/open/floor/engine/n2, /area/engine/atmos) "ccn" = ( /obj/machinery/light/small, +/obj/machinery/atmospherics/miner/oxygen, /turf/open/floor/engine/o2, /area/engine/atmos) "cco" = ( @@ -49946,15 +49928,15 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "cqG" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, /obj/effect/turf_decal/tile/yellow{ dir = 1 }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "cqH" = ( @@ -53086,6 +53068,9 @@ dir = 1; pixel_y = -22 }, +/obj/structure/reflector/double/anchored{ + dir = 9 + }, /turf/open/floor/plasteel/dark, /area/engine/engineering) "dFJ" = ( @@ -53126,7 +53111,9 @@ /area/medical/chemistry) "dJk" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, /turf/open/floor/plating, /area/engine/atmos) "dJm" = ( @@ -53829,12 +53816,6 @@ }, /turf/open/floor/wood, /area/lawoffice) -"fuR" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "fvb" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -54651,10 +54632,9 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "hjk" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/floor/plasteel, /area/engine/atmos) "hjD" = ( @@ -54668,6 +54648,17 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/engineering) +"hka" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/camera{ + c_tag = "Atmospherics Console"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "hkQ" = ( /obj/machinery/light{ dir = 4 @@ -55483,6 +55474,23 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) +"jen" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) "jeq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -55636,6 +55644,20 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) +"jxK" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) "jzz" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/warning/vacuum/external, @@ -55726,10 +55748,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) -"jLW" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) "jOB" = ( /turf/open/floor/plating, /area/storage/emergency/starboard) @@ -55851,6 +55869,16 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/medical/chemistry) +"kas" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/engine/atmos) "kaR" = ( /obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ dir = 8 @@ -56378,12 +56406,6 @@ /obj/machinery/atmospherics/pipe/manifold/general/visible, /turf/open/floor/plasteel/dark, /area/science/xenobiology) -"lhP" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "liR" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -56398,12 +56420,6 @@ /obj/machinery/atmospherics/pipe/simple/general/hidden, /turf/open/floor/plating, /area/maintenance/department/cargo) -"ljG" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "lms" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -56439,6 +56455,16 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"loL" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 4; + filter_type = "n2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) "lqc" = ( /obj/item/toy/gun, /obj/effect/decal/cleanable/oil, @@ -57604,6 +57630,7 @@ /area/maintenance/department/science) "odM" = ( /obj/effect/landmark/barthpot, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/carpet, /area/library/lounge) "oep" = ( @@ -58211,10 +58238,13 @@ /turf/open/floor/plasteel/dark, /area/maintenance/department/crew_quarters/dorms) "pmB" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "N2 to Pure" + }, /turf/open/floor/plasteel, /area/engine/atmos) "pnU" = ( @@ -58339,9 +58369,6 @@ /turf/open/space/basic, /area/space/nearstation) "pCo" = ( -/obj/structure/reflector/single/anchored{ - dir = 6 - }, /obj/machinery/light/small{ dir = 1 }, @@ -59008,6 +59035,22 @@ }, /turf/open/floor/plasteel/white, /area/medical/sleeper) +"rdB" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) "reH" = ( /obj/item/reagent_containers/food/drinks/bottle/vodka, /obj/structure/disposalpipe/segment{ @@ -59074,6 +59117,18 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) +"rjF" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/brig) "rmC" = ( /turf/open/space/basic, /area/space/station_ruins) @@ -59708,13 +59763,6 @@ }, /turf/open/floor/plasteel, /area/science/xenobiology) -"tbw" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 - }, -/turf/open/space, -/area/space/nearstation) "tbF" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ @@ -59857,10 +59905,10 @@ /turf/open/floor/engine, /area/engine/engineering) "tlV" = ( -/obj/structure/reflector/double/anchored{ - dir = 9 +/obj/structure/reflector/single/anchored{ + dir = 6 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plating, /area/engine/engineering) "tnP" = ( /obj/machinery/seed_extractor, @@ -60006,13 +60054,6 @@ /obj/item/wrench, /turf/open/floor/plating, /area/maintenance/department/cargo) -"tDE" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix to Engine" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "tHk" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -60063,6 +60104,19 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"tTZ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) "tXn" = ( /obj/structure/sink{ dir = 4; @@ -60708,19 +60762,6 @@ }, /turf/open/floor/engine, /area/engine/engineering) -"vsG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Research Lab Maintenance"; - req_one_access_txt = "7;29" - }, -/turf/open/floor/plating, -/area/maintenance/department/engine) "vsJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ @@ -61281,13 +61322,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/engine) -"wJP" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 9 - }, -/turf/open/space, -/area/space/nearstation) "wKa" = ( /obj/machinery/light/small, /turf/open/floor/plating, @@ -61303,12 +61337,6 @@ }, /turf/open/floor/plating, /area/crew_quarters/heads/cmo) -"wLK" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "wMF" = ( /obj/effect/spawner/lootdrop/three_course_meal, /obj/effect/spawner/lootdrop/three_course_meal, @@ -83125,7 +83153,7 @@ amf amR anA aoo -aoo +ana aoo aqn arl @@ -83133,7 +83161,7 @@ asw atx auz avu -awJ +rjF axG ayH aAe @@ -83381,16 +83409,16 @@ alx amg amg anB -ana +amg aoQ -apI +amg aqo alv asx -aty ajM ajM -atB +ajM +akA axH ayI aAf @@ -83641,13 +83669,13 @@ anC aop aoR apJ -aqp +apN aon -asy +aty atz aux avv -awK +awI axG ayL aAi @@ -83900,7 +83928,7 @@ aoS apJ aqq aon -asv +atB atA auA avw @@ -84157,11 +84185,11 @@ aoT apK aqr arl -asw -atx +awK +atD auz avx -awJ +rjF axG ayJ aAg @@ -84415,10 +84443,10 @@ apL aqs aon asz -atB ajM ajM -atB +ajM +akA axI ayL aAh @@ -84671,11 +84699,11 @@ aoV apJ aqt arm -asy +rdB atz aux avy -awK +awI axG ayL aAi @@ -85182,14 +85210,14 @@ amY anI aor aoX -apJ -aqt +apI +apO aro -asw +jen atD auz avA -awJ +rjF axG ayL aAi @@ -85434,19 +85462,19 @@ ajj ajT akP alA -amj +aml amZ anJ amX aoY -apN +amg sBA arp asB -atB ajM ajM -atB +ajM +akA axJ ayL aAi @@ -85691,15 +85719,15 @@ ahL ahL ahL ahL -aml -ana +amg +amg anK aos aoZ -apO +amg aqv aro -asw +jxK atE auB avB @@ -85956,7 +85984,7 @@ apa agP aqw arp -asC +tTZ atF alv alv @@ -86474,7 +86502,7 @@ asE ajM auD avC -ajM +akA axJ axG aAm @@ -87502,7 +87530,7 @@ asG ajM auH avG -auH +awR axM ayR aAo @@ -93980,7 +94008,7 @@ jZG bpY bpY bpY -vsG +bNZ bva bva bva @@ -94012,7 +94040,7 @@ bXk pCo wcs wcs -tlV +wcs eyj qkM miw @@ -94266,7 +94294,7 @@ bZA cam mgz aac -cbX +tlV wcs wcs dEy @@ -94528,7 +94556,7 @@ oHa eWi cbX aac -vlC +loL cgx qeY fyO @@ -96054,7 +96082,7 @@ bRq bCC bSP bTG -bUo +bTQ bVc bUo bWH @@ -96570,7 +96598,7 @@ bLW bTH bUp bVe -bVV +bUp bWI bXr bKQ @@ -96820,14 +96848,14 @@ bMZ bOh bOP bPO -bPO +bRz bRt bSc bSQ bTI bUq bVf -bQI +bMf bWJ bXs bJN @@ -97080,12 +97108,12 @@ bPP bQG bRu bSd -bLW +bTO bTJ bMf -bUs bMf -fuR +bMf +bMf bXt bYp eAZ @@ -97332,17 +97360,17 @@ bJN bJN bNb bOj -bOR -bJN -bJN -bJN -bJN +bPQ +bRx +bRA +bSS +bST bJN bTK -bUr -bVg -bVW -bWL +bMf +bMf +bMf +bMf bXu bLW cui @@ -97589,19 +97617,19 @@ bJN bLY bNc bOk -bOS bPQ +bRy +hka bQH -bRv bSe bPQ bTL -bUs bMf -bVX +bMf +bMf bWM bXv -bWc +bVh poP bZL caB @@ -97848,18 +97876,18 @@ bNd bOl bOT bPR +bPQ +bPQ bQI -bQI -bQI -bQI -bTM -bUs -ljG +bPQ +bNc +bMf +bMf hjk pmB bXw dJk -tbw +cui bJP bJP bJP @@ -98105,18 +98133,18 @@ bNe bOm bOU bPS -bPS -bRw -bMf -bMf +bSf +bUp +bTM +bUp bTN -bUt -wLK -bOk -bWK -bXt +bMf +bMf +bVZ +bOX +bUA bYp -bZd +eAZ bZL caC cbu @@ -98359,21 +98387,21 @@ bJL bKR bMb bNf -bOk +bQJ bOV -bPQ -bQJ -bRx -bQJ -bPQ -bTO -ljG -lhP -bOk -bWL +bMf +bMf +bMf +bMf +bMf +bMf +bMf +bMf +bVZ +bOX bXx -bLW -abI +bVi +cui bMi caD cbv @@ -98617,20 +98645,20 @@ bJN bMc bNg bOn -bOW -bPQ -bPQ -bPQ -bPQ -bPQ -bTP -wLK -bVh +bOX +bMf +bMf +bMf +bMf +bMf +bMf +bMf +bMf bVY -bWM -bXy -bWc -bZe +bUs +bVg +bVm +poP bZL caE cbu @@ -98872,22 +98900,22 @@ bIE bJN bJN bMd -bNf -bOk +bPT +bOn bOX -bPQ -bQK -bQK -bQK -bPQ -bTQ -wLK -bKX -bOk -bWN -bXz -bYq -abI +bMf +bMf +bMf +bMf +bMf +bMf +bMf +bMf +bVZ +bOX +kas +bNm +cui bJP bJP bJP @@ -99131,20 +99159,20 @@ bKS bMe bNh bOo -bOY -bPT -bQL -bRy -bSf -bSR -bTM -wLK -bKX +bOX +bMf +bMf +bMf +bMf +bMf +bMf +bMf +bMf bVZ bWO bXA bQO -bZe +poP bZM caF cbw @@ -99385,23 +99413,23 @@ aht aaa bJN bKT -bMf +bWM bNi -bOk +bQK bOZ bMf bMf -bRz bMf -bSS -bTR -tDE -bKX -bWa +bMf +bMf +bMf +bMf +bMf +bVZ bMf bXB bNm -abI +cui bMi caG cbx @@ -99642,23 +99670,23 @@ bCP bAA bHw bKU -bMf -bMf -bOk -bPa +bOr bPU -bOY -bRA -bOY -bST -bTS -bUu -bVi -bMe +bRw +bPa +bMf +bMf +bMf +bMf +bMf +bMf +bMf +bMf +bVY bWP bXy bQO -bZe +poP bZN caH cby @@ -99899,23 +99927,23 @@ bCR bIF bHw bKV +bOX +bUv +bQL +bPa +bMf bMf bMf -bOk -bPb bMf -bQM -bQM -bQM bSU bTT bUv bKX -bMf -bMf +bTR +bUt bXC bYs -bYw +bVW bYw bYw cBT @@ -100159,17 +100187,17 @@ bKW bMg bNj bOp -bPc bPV bPV bPV -bSg bPV bPV bUw +bUw +bUw bVj -bMg -bMg +bTS +bUu bXD bYt bZf @@ -100413,19 +100441,19 @@ bCR bIH bHw cqG -bMf +bOX bNk bOq bPd bPW -bQN +bPW bPW bPd bPW -bTU -bUx -bPd bPW +bPW +bPd +bUr bWQ bXE bYu @@ -100672,18 +100700,18 @@ bHw bKY bMh bNl -bOi +bQM bPe bPX -bNl +bSR bRB bSh bSV -bNl +bTP bUy bVk bWb -bNl +bUz bXF bYv bZh @@ -100927,22 +100955,22 @@ bHv bIJ bHw bKZ -bLW -bNm -bOr +bOR +bWR +bWc bPf bPY bQO bPY -bSi +bPf bPY bQO -bUz +bWc bVl bWc bWR bXG -jLW +bYw bZi bZR caL @@ -101194,11 +101222,11 @@ abI bLa abI bNn -bUA -bVm -bWd -bWS -wJP +abI +bLa +abI +bNn +abI aht bZj bZS @@ -101955,7 +101983,7 @@ buz abI bJP bLd -bLe +bOS bLe bJP bPh diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index c9b81cefd9..d015547ac4 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -7639,7 +7639,7 @@ /obj/item/clothing/suit/space/hardsuit/deathsquad{ pixel_y = 5 }, -/obj/item/clothing/gloves/combat, +/obj/item/clothing/gloves/tackler/combat/insulated, /obj/item/clothing/shoes/combat/swat, /obj/item/clothing/mask/gas/sechailer/swat, /obj/effect/turf_decal/stripes/line, @@ -16752,7 +16752,7 @@ }, /area/centcom/holding) "Nf" = ( -/obj/machinery/autoylathe, +/obj/machinery/autolathe/toy, /turf/open/indestructible/hotelwood, /area/centcom/holding) "Ni" = ( diff --git a/_maps/shuttles/cargo_kilo.dmm b/_maps/shuttles/cargo_kilo.dmm index 6d9d543842..86660a4dc7 100644 --- a/_maps/shuttles/cargo_kilo.dmm +++ b/_maps/shuttles/cargo_kilo.dmm @@ -3,50 +3,30 @@ /turf/closed/wall/mineral/titanium, /area/shuttle/supply) "b" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/supply) "c" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/supply) "d" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 5 }, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/supply) "e" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 10 }, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/supply) "f" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -55,18 +35,7 @@ }, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/supply) -"g" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/supply) "h" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -91,20 +60,10 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/supply) "k" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/supply) "l" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -126,10 +85,6 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/supply) "n" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -140,20 +95,12 @@ /turf/open/floor/mineral/titanium/yellow, /area/shuttle/supply) "o" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/supply) "p" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -176,10 +123,6 @@ /turf/open/floor/mineral/titanium/yellow, /area/shuttle/supply) "q" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -196,19 +139,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/mineral/plastitanium, /area/shuttle/supply) -"s" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/supply) "t" = ( /obj/machinery/door/poddoor{ id = "QMLoaddoor2"; @@ -228,28 +158,15 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/supply) "v" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/end{ dir = 8 }, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/supply) "w" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/supply) "x" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -260,10 +177,6 @@ /turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/supply) "z" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/supply) @@ -290,6 +203,27 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/supply) +"K" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"Q" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"Z" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) (1,1,1) = {" a @@ -323,12 +257,12 @@ C a c o -g -k -g +K +Z +w o -g -s +K +Q e A D @@ -336,13 +270,13 @@ D (4,1,1) = {" a c -g -g -g -g -g -g -g +w +w +w +w +w +w +w z A D @@ -350,13 +284,13 @@ D (5,1,1) = {" a c -g -g -g -g -g -g w +w +w +w +w +w +k x A D diff --git a/_maps/shuttles/emergency_kilo.dmm b/_maps/shuttles/emergency_kilo.dmm index 3c2da5ae85..c7aa1f28ce 100644 --- a/_maps/shuttles/emergency_kilo.dmm +++ b/_maps/shuttles/emergency_kilo.dmm @@ -144,7 +144,6 @@ pixel_y = 4 }, /obj/item/folder/blue, -/obj/item/gun/energy/e_gun/mini, /turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "av" = ( @@ -172,10 +171,6 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "ax" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/structure/sign/warning/vacuum/external{ pixel_y = 32 }, @@ -288,10 +283,6 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "aM" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, @@ -301,10 +292,6 @@ /turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "aN" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -725,10 +712,6 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "bB" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -791,14 +774,6 @@ /obj/machinery/recharge_station, /turf/open/floor/plasteel/dark, /area/shuttle/escape) -"bG" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/escape) "bH" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/turf_decal/bot, @@ -1057,20 +1032,12 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "cj" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "ck" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "cm" = ( @@ -1079,27 +1046,15 @@ /area/shuttle/escape) "cr" = ( /obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "cs" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/escape) "cA" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 10 }, @@ -1159,10 +1114,6 @@ /turf/open/floor/plating/airless, /area/shuttle/escape) "Xo" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -1543,7 +1494,7 @@ bn bi ac cj -bG +cr bR cK cT diff --git a/_maps/shuttles/ferry_kilo.dmm b/_maps/shuttles/ferry_kilo.dmm index 744d09d373..a905f8a0de 100644 --- a/_maps/shuttles/ferry_kilo.dmm +++ b/_maps/shuttles/ferry_kilo.dmm @@ -70,10 +70,6 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/transport) "m" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -115,10 +111,6 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/transport) "r" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -126,10 +118,6 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/transport) "s" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/stripes/corner, /obj/effect/turf_decal/stripes/corner{ dir = 1 diff --git a/_maps/shuttles/infiltrator_basic.dmm b/_maps/shuttles/infiltrator_basic.dmm index 1dffe12884..d2effaa35b 100644 --- a/_maps/shuttles/infiltrator_basic.dmm +++ b/_maps/shuttles/infiltrator_basic.dmm @@ -505,9 +505,7 @@ /turf/open/floor/plasteel/dark, /area/shuttle/syndicate/airlock) "bd" = ( -/obj/structure/sign/warning/vacuum/external{ - layer = 4 - }, +/obj/structure/sign/warning/vacuum/external, /turf/closed/wall/r_wall/syndicate, /area/shuttle/syndicate/airlock) "be" = ( @@ -808,6 +806,10 @@ "bQ" = ( /obj/structure/closet/syndicate/personal, /obj/effect/turf_decal/bot_white, +/obj/item/pickaxe/drill/diamonddrill, +/obj/item/pickaxe/drill/diamonddrill, +/obj/item/pickaxe/drill/diamonddrill, +/obj/item/gun/energy/plasmacutter, /turf/open/floor/plasteel/dark, /area/shuttle/syndicate/armory) "bR" = ( @@ -848,6 +850,10 @@ "bX" = ( /obj/structure/closet/syndicate/nuclear, /obj/effect/turf_decal/bot_white, +/obj/item/pickaxe/drill/diamonddrill, +/obj/item/pickaxe/drill/diamonddrill, +/obj/item/pickaxe/drill/diamonddrill, +/obj/item/gun/energy/plasmacutter, /turf/open/floor/plasteel/dark, /area/shuttle/syndicate/armory) "bY" = ( diff --git a/_maps/shuttles/labour_kilo.dmm b/_maps/shuttles/labour_kilo.dmm index 9ee9a38f07..6b70922475 100644 --- a/_maps/shuttles/labour_kilo.dmm +++ b/_maps/shuttles/labour_kilo.dmm @@ -29,10 +29,6 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/labor) "f" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -47,10 +43,6 @@ req_access_txt = "1" }, /obj/machinery/light, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -63,10 +55,6 @@ pixel_x = 30; pixel_y = 30 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -111,10 +99,6 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/labor) "l" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -127,10 +111,6 @@ /obj/machinery/light{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -141,17 +121,12 @@ machinedir = 1; pixel_x = 30 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 5 }, /turf/open/floor/mineral/plastitanium/red, /area/shuttle/labor) "o" = ( -/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -164,10 +139,6 @@ /turf/open/floor/mineral/plastitanium/red, /area/shuttle/labor) "p" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/mineral/plastitanium/red, /area/shuttle/labor) @@ -177,9 +148,6 @@ pixel_x = 25 }, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/structure/chair/comfy/shuttle{ dir = 8 }, @@ -189,31 +157,12 @@ /turf/open/floor/mineral/plastitanium/red, /area/shuttle/labor) "r" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/structure/closet/crate, /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/stripes/line, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/labor) -"s" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/loading_area{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/labor) "t" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/labor) @@ -284,7 +233,7 @@ g a m p -s +t w y "} diff --git a/_maps/shuttles/mining_kilo.dmm b/_maps/shuttles/mining_kilo.dmm index 1de45c713c..5609ecfc06 100644 --- a/_maps/shuttles/mining_kilo.dmm +++ b/_maps/shuttles/mining_kilo.dmm @@ -15,7 +15,6 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/mining) "d" = ( -/obj/effect/turf_decal/bot, /obj/machinery/computer/shuttle/mining, /turf/open/floor/mineral/plastitanium, /area/shuttle/mining) @@ -31,10 +30,6 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/mining) "f" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -48,10 +43,6 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/mining) "h" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -61,20 +52,12 @@ /turf/open/floor/mineral/titanium/yellow, /area/shuttle/mining) "i" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 5 }, /turf/open/floor/mineral/titanium/yellow, /area/shuttle/mining) "j" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/machinery/status_display/evac{ pixel_x = -32 }, @@ -114,10 +97,6 @@ /turf/open/floor/plating, /area/shuttle/mining) "m" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -134,10 +113,6 @@ /turf/open/floor/plating/airless, /area/shuttle/mining) "p" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/general/hidden{ icon_state = "pipe11-2"; diff --git a/_maps/shuttles/pirate_default.dmm b/_maps/shuttles/pirate_default.dmm index c002e66d53..9bd9d335c9 100644 --- a/_maps/shuttles/pirate_default.dmm +++ b/_maps/shuttles/pirate_default.dmm @@ -943,6 +943,9 @@ /obj/item/grenade/smokebomb{ pixel_x = 5 }, +/obj/item/pickaxe/drill/diamonddrill, +/obj/item/pickaxe/drill/diamonddrill, +/obj/item/pickaxe/drill/diamonddrill, /turf/open/floor/pod/light, /area/shuttle/pirate) "ep" = ( diff --git a/byond-extools.dll b/byond-extools.dll new file mode 100644 index 0000000000..a83ea1e543 Binary files /dev/null and b/byond-extools.dll differ diff --git a/code/__DEFINES/MC.dm b/code/__DEFINES/MC.dm index 65be8258a1..bad64846d6 100644 --- a/code/__DEFINES/MC.dm +++ b/code/__DEFINES/MC.dm @@ -25,35 +25,38 @@ //SubSystem flags (Please design any new flags so that the default is off, to make adding flags to subsystems easier) //subsystem does not initialize. -#define SS_NO_INIT 1 +#define SS_NO_INIT (1<<0) //subsystem does not fire. // (like can_fire = 0, but keeps it from getting added to the processing subsystems list) // (Requires a MC restart to change) -#define SS_NO_FIRE 2 +#define SS_NO_FIRE (1<<1) //subsystem only runs on spare cpu (after all non-background subsystems have ran that tick) // SS_BACKGROUND has its own priority bracket -#define SS_BACKGROUND 4 +#define SS_BACKGROUND (1<<2) //subsystem does not tick check, and should not run unless there is enough time (or its running behind (unless background)) -#define SS_NO_TICK_CHECK 8 +#define SS_NO_TICK_CHECK (1<<3) //Treat wait as a tick count, not DS, run every wait ticks. // (also forces it to run first in the tick, above even SS_NO_TICK_CHECK subsystems) // (implies all runlevels because of how it works) // (overrides SS_BACKGROUND) // This is designed for basically anything that works as a mini-mc (like SStimer) -#define SS_TICKER 16 +#define SS_TICKER (1<<4) //keep the subsystem's timing on point by firing early if it fired late last fire because of lag // ie: if a 20ds subsystem fires say 5 ds late due to lag or what not, its next fire would be in 15ds, not 20ds. -#define SS_KEEP_TIMING 32 +#define SS_KEEP_TIMING (1<<5) //Calculate its next fire after its fired. // (IE: if a 5ds wait SS takes 2ds to run, its next fire should be 5ds away, not 3ds like it normally would be) // This flag overrides SS_KEEP_TIMING -#define SS_POST_FIRE_TIMING 64 +#define SS_POST_FIRE_TIMING (1<<6) + +/// Show in stat() by default even if SS_NO_FIRE +#define SS_ALWAYS_SHOW_STAT (1<<7) //SUBSYSTEM STATES #define SS_IDLE 0 //aint doing shit. diff --git a/code/__DEFINES/__513_compatibility.dm b/code/__DEFINES/__513_compatibility.dm deleted file mode 100644 index 12577fb68b..0000000000 --- a/code/__DEFINES/__513_compatibility.dm +++ /dev/null @@ -1,32 +0,0 @@ - -#if DM_VERSION < 513 - -#define ismovableatom(A) (istype(A, /atom/movable)) - -#define islist(L) (istype(L, /list)) - -#define CLAMP01(x) (CLAMP(x, 0, 1)) - -#define CLAMP(CLVALUE,CLMIN,CLMAX) ( max( (CLMIN), min((CLVALUE), (CLMAX)) ) ) - -#define ATAN2(x, y) ( !(x) && !(y) ? 0 : (y) >= 0 ? arccos((x) / sqrt((x)*(x) + (y)*(y))) : -arccos((x) / sqrt((x)*(x) + (y)*(y))) ) - -#define TAN(x) (sin(x) / cos(x)) - -#define arctan(x) (arcsin(x/sqrt(1+x*x))) - -////////////////////////////////////////////////// - -#else - -#define ismovableatom(A) ismovable(A) - -#define CLAMP01(x) clamp(x, 0, 1) - -#define CLAMP(CLVALUE, CLMIN, CLMAX) clamp(CLVALUE, CLMIN, CLMAX) - -#define TAN(x) tan(x) - -#define ATAN2(x, y) arctan(x, y) - -#endif diff --git a/code/__DEFINES/_tick.dm b/code/__DEFINES/_tick.dm index 10b815e547..fc6147c430 100644 --- a/code/__DEFINES/_tick.dm +++ b/code/__DEFINES/_tick.dm @@ -1,13 +1,28 @@ -#define TICK_LIMIT_RUNNING 80 +/// Percentage of tick to leave for master controller to run +#define MAPTICK_MC_MIN_RESERVE 70 +/// internal_tick_usage is updated every tick by extools +#define MAPTICK_LAST_INTERNAL_TICK_USAGE ((GLOB.internal_tick_usage / world.tick_lag) * 100) +/// Tick limit while running normally +#define TICK_BYOND_RESERVE 2 +#define TICK_LIMIT_RUNNING (max(100 - TICK_BYOND_RESERVE - MAPTICK_LAST_INTERNAL_TICK_USAGE, MAPTICK_MC_MIN_RESERVE)) +/// Tick limit used to resume things in stoplag #define TICK_LIMIT_TO_RUN 70 +/// Tick limit for MC while running #define TICK_LIMIT_MC 70 -#define TICK_LIMIT_MC_INIT_DEFAULT 98 +/// Tick limit while initializing +#define TICK_LIMIT_MC_INIT_DEFAULT (100 - TICK_BYOND_RESERVE) -#define TICK_USAGE world.tick_usage //for general usage -#define TICK_USAGE_REAL world.tick_usage //to be used where the result isn't checked +/// for general usage of tick_usage +#define TICK_USAGE world.tick_usage +/// to be used where the result isn't checked +#define TICK_USAGE_REAL world.tick_usage +/// Returns true if tick_usage is above the limit #define TICK_CHECK ( TICK_USAGE > Master.current_ticklimit ) +/// runs stoplag if tick_usage is above the limit #define CHECK_TICK ( TICK_CHECK ? stoplag() : 0 ) +/// Returns true if tick usage is above 95, for high priority usage #define TICK_CHECK_HIGH_PRIORITY ( TICK_USAGE > 95 ) +/// runs stoplag if tick_usage is above 95, for high priority usage #define CHECK_TICK_HIGH_PRIORITY ( TICK_CHECK_HIGH_PRIORITY? stoplag() : 0 ) diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index e728d49956..2b19b557b2 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -161,10 +161,14 @@ #define ATMOS_TANK_O2 "o2=100000;TEMP=293.15" #define ATMOS_TANK_N2 "n2=100000;TEMP=293.15" #define ATMOS_TANK_AIRMIX "o2=2644;n2=10580;TEMP=293.15" + //LAVALAND #define LAVALAND_EQUIPMENT_EFFECT_PRESSURE 50 //what pressure you have to be under to increase the effect of equipment meant for lavaland #define LAVALAND_DEFAULT_ATMOS "o2=14;n2=23;TEMP=300" +//SNOSTATION +#define ICEMOON_DEFAULT_ATMOS "o2=17;n2=63;TEMP=180" + //ATMOSIA GAS MONITOR TAGS #define ATMOS_GAS_MONITOR_INPUT_O2 "o2_in" #define ATMOS_GAS_MONITOR_OUTPUT_O2 "o2_out" @@ -255,10 +259,10 @@ //HELPERS #define PIPING_LAYER_SHIFT(T, PipingLayer) \ - if(T.dir & NORTH || T.dir & SOUTH) { \ + if(T.dir & (NORTH|SOUTH)) { \ T.pixel_x = (PipingLayer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_P_X;\ } \ - if(T.dir & WEST || T.dir & EAST) { \ + if(T.dir & (WEST|EAST)) { \ T.pixel_y = (PipingLayer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_P_Y;\ } @@ -294,6 +298,8 @@ GLOBAL_LIST_INIT(atmos_adjacent_savings, list(0,0)) #define ARCHIVE_TEMPERATURE(gas) gas.temperature_archived = gas.temperature +#define ARCHIVE(gas) gas.temperature_archived = gas.temperature; gas.gas_archive = gas.gases.Copy(); + GLOBAL_LIST_INIT(pipe_paint_colors, list( "amethyst" = rgb(130,43,255), //supplymain "blue" = rgb(0,0,255), diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index cc2cd8834a..3d15412efe 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -43,6 +43,7 @@ #define COLOR_RED_GRAY "#B4696A" #define COLOR_PALE_BLUE_GRAY "#98C5DF" #define COLOR_PALE_GREEN_GRAY "#B7D993" +#define COLOR_PALE_ORANGE "#FFC066" #define COLOR_PALE_RED_GRAY "#D59998" #define COLOR_PALE_PURPLE_GRAY "#CBB1CA" #define COLOR_PURPLE_GRAY "#AE8CA8" diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index 14c78f90d0..6ef8b07ddd 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -35,9 +35,9 @@ /// Default combat flags for those affected by ((stamina combat)) #define COMBAT_FLAGS_DEFAULT NONE /// Default combat flags for everyone else (so literally everyone but humans) -#define COMBAT_FLAGS_STAMSYSTEM_EXEMPT (COMBAT_FLAG_SPRINT_ACTIVE | COMBAT_FLAG_COMBAT_ACTIVE | COMBAT_FLAG_SPRINT_TOGGLED | COMBAT_FLAG_COMBAT_TOGGLED) +#define COMBAT_FLAGS_STAMSYSTEM_EXEMPT (COMBAT_FLAG_SPRINT_ACTIVE | COMBAT_FLAG_COMBAT_ACTIVE | COMBAT_FLAG_SPRINT_TOGGLED | COMBAT_FLAG_COMBAT_TOGGLED | COMBAT_FLAG_SPRINT_FORCED | COMBAT_FLAG_COMBAT_FORCED) /// Default combat flags for those only affected by sprint (so just silicons) -#define COMBAT_FLAGS_STAMEXEMPT_YESSPRINT (COMBAT_FLAG_COMBAT_ACTIVE | COMBAT_FLAG_COMBAT_TOGGLED) +#define COMBAT_FLAGS_STAMEXEMPT_YESSPRINT (COMBAT_FLAG_COMBAT_ACTIVE | COMBAT_FLAG_COMBAT_TOGGLED | COMBAT_FLAG_COMBAT_FORCED) /// The user wants combat mode on #define COMBAT_FLAG_COMBAT_TOGGLED (1<<0) @@ -57,6 +57,10 @@ #define COMBAT_FLAG_INTENTIONALLY_RESTING (1<<7) /// Currently stamcritted but not as violently #define COMBAT_FLAG_SOFT_STAMCRIT (1<<8) +/// Force combat mode on at all times, overrides everything including combat disable traits. +#define COMBAT_FLAG_COMBAT_FORCED (1<<9) +/// Force sprint mode on at all times, overrides everything including sprint disable traits. +#define COMBAT_FLAG_SPRINT_FORCED (1<<10) // Helpers for getting someone's stamcrit state. Cast to living. #define NOT_STAMCRIT 0 @@ -111,9 +115,6 @@ #define GRAB_NECK 2 #define GRAB_KILL 3 -//slowdown when in softcrit -#define SOFTCRIT_ADD_SLOWDOWN 6 - /// Attack types for check_block()/run_block(). Flags, combinable. /// Attack was melee, whether or not armed. #define ATTACK_TYPE_MELEE (1<<0) @@ -251,13 +252,32 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( #define TOTAL_MASS_MEDIEVAL_WEAPON 3.6 //very, very generic average sword/warpick/etc. weight in pounds. #define TOTAL_MASS_TOY_SWORD 1.5 +//stamina cost defines. +#define STAM_COST_ATTACK_OBJ_MULT 1.2 +#define STAM_COST_ATTACK_MOB_MULT 0.8 +#define STAM_COST_BATON_MOB_MULT 1 +#define STAM_COST_NO_COMBAT_MULT 1.25 +#define STAM_COST_W_CLASS_MULT 1.25 +#define STAM_COST_THROW_MULT 2 + + //bullet_act() return values #define BULLET_ACT_HIT "HIT" //It's a successful hit, whatever that means in the context of the thing it's hitting. #define BULLET_ACT_BLOCK "BLOCK" //It's a blocked hit, whatever that means in the context of the thing it's hitting. #define BULLET_ACT_FORCE_PIERCE "PIERCE" //It pierces through the object regardless of the bullet being piercing by default. #define BULLET_ACT_TURF "TURF" //It hit us but it should hit something on the same turf too. Usually used for turfs. -/// Bitflags for check_block() and handle_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS. +/// Check whether or not we can block, without "triggering" a block. Basically run checks without effects like depleting shields. +/// Wrapper for do_run_block(). The arguments on that means the same as for this. +#define mob_check_block(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list)\ + do_run_block(FALSE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list) + +/// Runs a block "sequence", effectively checking and then doing effects if necessary. +/// Wrapper for do_run_block(). The arguments on that means the same as for this. +#define mob_run_block(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list)\ + do_run_block(TRUE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list) + +/// Bitflags for check_block() and run_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS. /// Attack was not blocked #define BLOCK_NONE NONE /// Attack was blocked, do not do damage. THIS FLAG MUST BE THERE FOR DAMAGE/EFFECT PREVENTION! @@ -302,8 +322,8 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( /// Block priorities #define BLOCK_PRIORITY_HELD_ITEM 100 -#define BLOCK_PRIORITY_CLOTHING 50 #define BLOCK_PRIORITY_WEAR_SUIT 75 +#define BLOCK_PRIORITY_CLOTHING 50 #define BLOCK_PRIORITY_UNIFORM 25 #define BLOCK_PRIORITY_DEFAULT BLOCK_PRIORITY_HELD_ITEM diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm index 2f54d066a0..77ec97f47e 100644 --- a/code/__DEFINES/construction.dm +++ b/code/__DEFINES/construction.dm @@ -59,8 +59,6 @@ //let's just pretend fulltile windows being children of border windows is fine #define FULLTILE_WINDOW_DIR NORTHEAST -//The amount of materials you get from a sheet of mineral like iron/diamond/glass etc -#define MINERAL_MATERIAL_AMOUNT 2000 //The maximum size of a stack object. #define MAX_STACK_SIZE 50 //maximum amount of cable in a coil diff --git a/code/__DEFINES/dcs/flags.dm b/code/__DEFINES/dcs/flags.dm index 3210341cc3..59c0c58b8d 100644 --- a/code/__DEFINES/dcs/flags.dm +++ b/code/__DEFINES/dcs/flags.dm @@ -40,6 +40,7 @@ #define CALTROP_BYPASS_SHOES 1 #define CALTROP_IGNORE_WALKERS 2 +// Spellcasting #define SPELL_SKIP_ALL_REQS (1<<0) #define SPELL_SKIP_CENTCOM (1<<1) #define SPELL_SKIP_STAT (1<<2) @@ -53,3 +54,24 @@ #define SPELL_CULT_ARMOR (1<<10) #define SPELL_WIZARD_GARB (SPELL_WIZARD_HAT|SPELL_WIZARD_ROBE) #define SPELL_CULT_GARB (SPELL_CULT_HELMET|SPELL_CULT_ARMOR) + +//// Identification //// +// /datum/component/identification/identification_flags +/// Delete on successful broad identification (so the main way we "uncover" how an object works, since this won't be on it to obfuscate it) +#define ID_COMPONENT_DEL_ON_IDENTIFY (1<<0) +/// We've already been successfully deepscanned by a deconstructive analyzer +#define ID_COMPONENT_DECONSTRUCTOR_DEEPSCANNED (1<<1) + +// /datum/component/identification/identification_effect_flags +/// Block user from getting actions if they don't know how to use this. Triggered on equip. +#define ID_COMPONENT_EFFECT_NO_ACTIONS (1<<0) + +// /datum/component/identification/identification_method_flags +/// Can be identified in a deconstructive analyzer +#define ID_COMPONENT_IDENTIFY_WITH_DECONSTRUCTOR (1<<0) + +// Return values for /datum/component/deitnfication/check_knowledge() +/// Has no knowledge, default +#define ID_COMPONENT_KNOWLEDGE_NONE 0 +/// Has full knowledge +#define ID_COMPONENT_KNOWLEDGE_FULL 1 diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 53348b3467..c74a8cdb05 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -30,7 +30,7 @@ #define COMSIG_PARENT_ATTACKBY "atom_attackby" //from base of atom/attackby(): (/obj/item, /mob/living, params) #define COMPONENT_NO_AFTERATTACK 1 //Return this in response if you don't want afterattack to be called #define COMSIG_ATOM_HULK_ATTACK "hulk_attack" //from base of atom/attack_hulk(): (/mob/living/carbon/human) -#define COMSIG_PARENT_EXAMINE "atom_examine" //from base of atom/examine(): (/mob) +#define COMSIG_PARENT_EXAMINE "atom_examine" //from base of atom/examine(): (/mob, list/examine_return_text) #define COMSIG_ATOM_GET_EXAMINE_NAME "atom_examine_name" //from base of atom/get_examine_name(): (/mob, list/overrides) //Positions for overrides list #define EXAMINE_POSITION_ARTICLE 1 @@ -110,7 +110,8 @@ #define COMSIG_TURF_MULTIZ_NEW "turf_multiz_new" //from base of turf/New(): (turf/source, direction) // /atom/movable signals -#define COMSIG_MOVABLE_PRE_MOVE "movable_pre_move" //from base of atom/movable/Moved(): (/atom) +#define COMSIG_MOVABLE_PRE_MOVE "movable_pre_move" ///from base of atom/movable/Moved(): (/atom) + #define COMPONENT_MOVABLE_BLOCK_PRE_MOVE 1 #define COMSIG_MOVABLE_MOVED "movable_moved" //from base of atom/movable/Moved(): (/atom, dir) #define COMSIG_MOVABLE_CROSS "movable_cross" //from base of atom/movable/Cross(): (/atom/movable) #define COMSIG_MOVABLE_CROSSED "movable_crossed" //from base of atom/movable/Crossed(): (/atom/movable) @@ -119,6 +120,8 @@ #define COMSIG_MOVABLE_UNCROSSED "movable_uncrossed" //from base of atom/movable/Uncrossed(): (/atom/movable) #define COMSIG_MOVABLE_BUMP "movable_bump" //from base of atom/movable/Bump(): (/atom) #define COMSIG_MOVABLE_IMPACT "movable_impact" //from base of atom/movable/throw_impact(): (/atom/hit_atom, /datum/thrownthing/throwingdatum) + #define COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH 1 ///if true, flip if the impact will push what it hits + #define COMPONENT_MOVABLE_IMPACT_NEVERMIND 2 ///return true if you destroyed whatever it was you're impacting and there won't be anything for hitby() to run on #define COMSIG_MOVABLE_IMPACT_ZONE "item_impact_zone" //from base of mob/living/hitby(): (mob/living/target, hit_zone) #define COMSIG_MOVABLE_BUCKLE "buckle" //from base of atom/movable/buckle_mob(): (mob, force) #define COMSIG_MOVABLE_UNBUCKLE "unbuckle" //from base of atom/movable/unbuckle_mob(): (mob, force) @@ -138,7 +141,6 @@ #define HEARING_SOURCE 8*/ #define COMSIG_MOVABLE_DISPOSING "movable_disposing" //called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source) #define COMSIG_MOVABLE_TELEPORTED "movable_teleported" //from base of do_teleport(): (channel, turf/origin, turf/destination) - // /mind signals #define COMSIG_PRE_MIND_TRANSFER "pre_mind_transfer" //from base of mind/transfer_to() before it's done: (new_character, old_character) #define COMPONENT_STOP_MIND_TRANSFER 1 //stops the mind transfer from happening. @@ -148,6 +150,8 @@ #define COMSIG_MOB_EXAMINATE "mob_examinate" //from base of /mob/verb/examinate(): (atom/A) #define COMSIG_MOB_DEATH "mob_death" //from base of mob/death(): (gibbed) #define COMPONENT_BLOCK_DEATH_BROADCAST 1 //stops the death from being broadcasted in deadchat. +#define COMSIG_MOB_CLICKON "mob_clickon" //from base of mob/clickon(): (atom/A, params) + #define COMSIG_MOB_CANCEL_CLICKON 1 #define COMSIG_MOB_GHOSTIZE "mob_ghostize" //from base of mob/Ghostize(): (can_reenter_corpse, special, penalize) #define COMPONENT_BLOCK_GHOSTING (1<<0) #define COMPONENT_DO_NOT_PENALIZE_GHOSTING (1<<1) @@ -179,7 +183,28 @@ // #define SPEECH_FORCED 7 #define COMSIG_MOB_ANTAG_ON_GAIN "mob_antag_on_gain" //from base of /datum/antagonist/on_gain(): (antag_datum) -#define COMSIG_MOB_SPELL_CAN_CAST "mob_spell_can_cast" //called from base of /obj/effect/proc_holder/spell/can_cast(): (spell) +#define COMSIG_MOB_SPELL_CAN_CAST "mob_spell_can_cast" //from base of /obj/effect/proc_holder/spell/can_cast(): (spell) + +#define COMSIG_MOB_ACTION_SKILL_MOD "mob_action_skill_mod" //from base of /datum/skill_holder/action_skills_mod() : (proc args list, list/mod_values) + #define ACTION_SKILL_MOD_SKILL 1 //redundancy. + #define ACTION_SKILL_MOD_VALUE 2 + #define ACTION_SKILL_MOD_THRESHOLD 3 + #define ACTION_SKILL_MOD_IS_MULTI 4 + //other mod values, kept separate from the args + #define MOD_VALUES_SKILL_MOD 1 + +#define COMSIG_MOB_ITEM_ACTION_SKILLS_MOD "mob_item_action_skills_mod" //from base of /datum/skill_holder/item_action_skills_mod() : (proc args list, mod_values) + #define ITEM_SKILLS_MOD_ITEM 1 //redundancy + #define ITEM_SKILLS_MOD_VALUE 2 + #define ITEM_SKILLS_MOD_FLAGS 3 + #define ITEM_SKILLS_MOD_BAD_FLAGS 4 + #define ITEM_SKILLS_MOD_IS_MULTI 5 + //other mod values, kept separate from the args + #define MOD_VALUES_ITEM_SKILLS_SUM 1 + #define MOD_VALUES_ITEM_SKILLS_DIV 2 + #define MOD_VALUES_ITEM_SKILLS_CHECKED 3 + +#define COMSIG_MOB_SKILL_GET_AFFINITY "mob_skill_get_affinity" //from base of /datum/skill_holder/get_skill_affinity(): (skill_path, list/return_value) // /mob/living signals #define COMSIG_LIVING_REGENERATE_LIMBS "living_regenerate_limbs" //from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs) @@ -197,6 +222,7 @@ #define COMSIG_LIVING_RUN_BLOCK "living_do_run_block" //from base of mob/living/do_run_block(): (real_attack, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone) #define COMSIG_LIVING_COMBAT_ENABLED "combatmode_enabled" //from base of mob/living/enable_combat_mode() (was_forced) #define COMSIG_LIVING_COMBAT_DISABLED "combatmode_disabled" //from base of mob/living/disable_combat_mode() (was_forced) +#define COMSIG_LIVING_GET_BLOCKING_ITEMS "get_blocking_items" //from base of mob/living/get_blocking_items(): (list/items) //ALL OF THESE DO NOT TAKE INTO ACCOUNT WHETHER AMOUNT IS 0 OR LOWER AND ARE SENT REGARDLESS! #define COMSIG_LIVING_STATUS_STUN "living_stun" //from base of mob/living/Stun() (amount, update, ignore) @@ -212,7 +238,7 @@ // /mob/living/carbon signals #define COMSIG_CARBON_SOUNDBANG "carbon_soundbang" //from base of mob/living/carbon/soundbang_act(): (list(intensity)) #define COMSIG_CARBON_IDENTITY_TRANSFERRED_TO "carbon_id_transferred_to" //from datum/dna/transfer_identity(): (datum/dna, transfer_SE) - +#define COMSIG_CARBON_TACKLED "carbon_tackled" //sends from tackle.dm on tackle completion // /mob/living/simple_animal/hostile signals #define COMSIG_HOSTILE_ATTACKINGTARGET "hostile_attackingtarget" #define COMPONENT_HOSTILE_NO_ATTACK 1 @@ -237,7 +263,11 @@ #define COMSIG_ITEM_AFTERATTACK "item_afterattack" //from base of obj/item/afterattack(): (atom/target, mob/user, params) #define COMSIG_ITEM_ALT_AFTERATTACK "item_alt_afterattack" //from base of obj/item/altafterattack(): (atom/target, mob/user, proximity, params) #define COMSIG_ITEM_EQUIPPED "item_equip" //from base of obj/item/equipped(): (/mob/equipper, slot) + // Do not grant actions on equip. + #define COMPONENT_NO_GRANT_ACTIONS 1 #define COMSIG_ITEM_DROPPED "item_drop" //from base of obj/item/dropped(): (mob/user) + // relocated, tell inventory procs if those called this that the item isn't available anymore. + #define COMPONENT_DROPPED_RELOCATION 1 #define COMSIG_ITEM_PICKUP "item_pickup" //from base of obj/item/pickup(): (/mob/taker) #define COMSIG_ITEM_ATTACK_ZONE "item_attack_zone" //from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone) #define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" //return a truthy value to prevent ensouling, checked in /obj/effect/proc_holder/spell/targeted/lichdom/cast(): (mob/user) @@ -247,6 +277,9 @@ // THE FOLLOWING TWO BLOCKS SHOULD RETURN BLOCK FLAGS AS DEFINED IN __DEFINES/combat.dm! #define COMSIG_ITEM_CHECK_BLOCK "check_block" //from base of obj/item/check_block(): (mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) #define COMSIG_ITEM_RUN_BLOCK "run_block" //from base of obj/item/run_block(): (mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) +#define COMSIG_ITEM_DECONSTRUCTOR_DEEPSCAN "deconstructor_deepscan" //Called by deconstructive analyzers deepscanning an item: (obj/machinery/rnd/destructive_analyzer/analyzer_machine, mob/user, list/information_list) + // Uncovered information + #define COMPONENT_DEEPSCAN_UNCOVERED_INFORMATION 1 // /obj/item/clothing signals #define COMSIG_SHOES_STEP_ACTION "shoes_step_action" //from base of obj/item/clothing/shoes/proc/step_action(): () diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index b8fe76fb1d..649e0a029b 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -132,7 +132,7 @@ #define FEMALE_UNIFORM_FULL 1 #define FEMALE_UNIFORM_TOP 2 -//flags for outfits that have mutantrace variants: These are hard sprited too. +//flags for outfits that have mutant race variants: Most of these require additional sprites to work. #define STYLE_DIGITIGRADE (1<<0) //jumpsuits, suits and shoes #define STYLE_MUZZLE (1<<1) //hats or masks #define STYLE_SNEK_TAURIC (1<<2) //taur-friendly suits @@ -140,6 +140,9 @@ #define STYLE_HOOF_TAURIC (1<<4) #define STYLE_ALL_TAURIC (STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC|STYLE_HOOF_TAURIC) #define STYLE_NO_ANTHRO_ICON (1<<5) //When digis fit the default sprite fine and need no copypasted states. This is the case of skirts and winter coats, for example. +#define USE_SNEK_CLIP_MASK (1<<6) +#define USE_QUADRUPED_CLIP_MASK (1<<7) +#define USE_TAUR_CLIP_MASK (USE_SNEK_CLIP_MASK|USE_QUADRUPED_CLIP_MASK) //digitigrade legs settings. #define NOT_DIGITIGRADE 0 diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 378667cd82..122ba67402 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -174,7 +174,10 @@ GLOBAL_LIST_INIT(clawfootmob, typecacheof(list( /mob/living/simple_animal/pet/fox, /mob/living/simple_animal/chicken, /mob/living/simple_animal/hostile/bear, - /mob/living/simple_animal/hostile/jungle/mega_arachnid + /mob/living/simple_animal/hostile/jungle/mega_arachnid, + /mob/living/simple_animal/hostile/asteroid/ice_whelp, + /mob/living/simple_animal/hostile/asteroid/wolf, + /mob/living/simple_animal/hostile/asteroid/polarbear ))) GLOBAL_LIST_INIT(barefootmob, typecacheof(list( diff --git a/code/__DEFINES/language.dm b/code/__DEFINES/language.dm index dc2ac19e65..add4a8e277 100644 --- a/code/__DEFINES/language.dm +++ b/code/__DEFINES/language.dm @@ -3,5 +3,24 @@ #define LANGUAGE_HIDE_ICON_IF_UNDERSTOOD 4 #define LANGUAGE_HIDE_ICON_IF_NOT_UNDERSTOOD 8 -#define LANGUAGE_KNOWN "language_known" -#define LANGUAGE_SHADOWED "language_shadowed" +// LANGUAGE SOURCE DEFINES +#define LANGUAGE_ALL "all" // For use in full removal only. +#define LANGUAGE_ATOM "atom" +#define LANGUAGE_MIND "mind" + +#define LANGUAGE_ABSORB "absorb" +#define LANGUAGE_APHASIA "aphasia" +#define LANGUAGE_BLOODSUCKER "bloodsucker" +#define LANGUAGE_CLOCKIE "clockie" +#define LANGUAGE_CULTIST "cultist" +#define LANGUAGE_CURATOR "curator" +#define LANGUAGE_DEVIL "devil" +#define LANGUAGE_GLAND "gland" +#define LANGUAGE_HAT "hat" +#define LANGUAGE_HIGH "high" +#define LANGUAGE_MALF "malf" +#define LANGUAGE_MASTER "master" +#define LANGUAGE_SOFTWARE "software" +#define LANGUAGE_STONER "stoner" +#define LANGUAGE_VASSAL "vassal" +#define LANGUAGE_VOICECHANGE "voicechange" diff --git a/code/__DEFINES/layers_planes.dm b/code/__DEFINES/layers_planes.dm index d0f9f8bc28..a6c31bf965 100644 --- a/code/__DEFINES/layers_planes.dm +++ b/code/__DEFINES/layers_planes.dm @@ -1,6 +1,8 @@ //Defines for atom layers and planes //KEEP THESE IN A NICE ACSCENDING ORDER, PLEASE +#define PLANE_VOID -100 + #define CLICKCATCHER_PLANE -99 #define PLANE_SPACE -95 @@ -8,6 +10,10 @@ #define PLANE_SPACE_PARALLAX -90 #define PLANE_SPACE_PARALLAX_RENDER_TARGET "PLANE_SPACE_PARALLAX" +#define OPENSPACE_LAYER 17 //Openspace layer over all +#define OPENSPACE_PLANE -4 //Openspace plane below all turfs +#define OPENSPACE_BACKDROP_PLANE -3 //Black square just over openspace plane to guaranteed cover all in openspace turf + #define FLOOR_PLANE -2 #define FLOOR_PLANE_RENDER_TARGET "FLOOR_PLANE" #define GAME_PLANE -1 @@ -61,7 +67,9 @@ #define BELOW_MOB_LAYER 3.7 #define LYING_MOB_LAYER 3.8 +#define MOB_LOWER_LAYER 3.95 //#define MOB_LAYER 4 //For easy recordkeeping; this is a byond define +#define MOB_UPPER_LAYER 4.05 #define ABOVE_MOB_LAYER 4.1 #define WALL_OBJ_LAYER 4.25 #define EDGED_TURF_LAYER 4.3 @@ -83,6 +91,8 @@ #define MASSIVE_OBJ_LAYER 11 #define POINT_LAYER 12 +#define CHAT_LAYER 12.1 + #define EMISSIVE_BLOCKER_PLANE 12 #define EMISSIVE_BLOCKER_LAYER 12 #define EMISSIVE_BLOCKER_RENDER_TARGET "*EMISSIVE_BLOCKER_PLANE" @@ -103,10 +113,6 @@ #define ABOVE_LIGHTING_LAYER 16 #define ABOVE_LIGHTING_RENDER_TARGET "ABOVE_LIGHTING_PLANE" -#define FLOOR_OPENSPACE_PLANE 17 -#define OPENSPACE_LAYER 17 -#define OPENSPACE_RENDER_TARGET "OPENSPACE_PLANE" - #define BYOND_LIGHTING_PLANE 18 #define BYOND_LIGHTING_LAYER 18 #define BYOND_LIGHTING_RENDER_TARGET "BYOND_LIGHTING_PLANE" diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm index eee0676dec..5a26feb624 100644 --- a/code/__DEFINES/machines.dm +++ b/code/__DEFINES/machines.dm @@ -22,14 +22,14 @@ //used in design to specify which machine can build it #define IMPRINTER (1<<0) //For circuits. Uses glass/chemicals. -#define PROTOLATHE (1<<1) //New stuff. Uses glass/metal/chemicals -#define AUTOLATHE (1<<2) //Uses glass/metal only. -#define CRAFTLATHE (1<<3) //Uses fuck if I know. For use eventually. -#define MECHFAB (1<<4) //Remember, objects utilising this flag should have construction_time and construction_cost vars. -#define BIOGENERATOR (1<<5) //Uses biomass -#define LIMBGROWER (1<<6) //Uses synthetic flesh -#define SMELTER (1<<7) //uses various minerals -#define AUTOYLATHE (1<<8) // CITADEL ADD +#define PROTOLATHE (1<<1) //New stuff. Uses materials/chemicals +#define AUTOLATHE (1<<2) //Uses materials only. +#define TOYLATHE (1<<3) //Glass/metal/plastic. Meant for toys. +#define NO_PUBLIC_LATHE (1<<4) //prevents the design from being auto-unlocked by public auto(y)lathes. +#define MECHFAB (1<<5) //Remember, objects utilising this flag should have construction_time and construction_cost vars. +#define BIOGENERATOR (1<<6) //Uses biomass +#define LIMBGROWER (1<<7) //Uses synthetic flesh +#define SMELTER (1<<8) //uses various minerals #define NANITE_COMPILER (1<<9) //Prints nanite disks #define AUTOBOTTLER (1<<10) //Uses booze, for printing //Note: More then one of these can be added to a design but imprinter and lathe designs are incompatable. diff --git a/code/__DEFINES/mapping/maploader.dm b/code/__DEFINES/mapping/maploader.dm new file mode 100644 index 0000000000..e225e68867 --- /dev/null +++ b/code/__DEFINES/mapping/maploader.dm @@ -0,0 +1,3 @@ +//map template annihilate_bounds +#define MAP_TEMPLATE_ANNIHILATE_PRELOAD 1 //annihilate bounds before starting loading +#define MAP_TEMPLATE_ANNIHILATE_LOADING 2 //"sweeping" delete during loading diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm index 73e900226e..47546cac30 100644 --- a/code/__DEFINES/maps.dm +++ b/code/__DEFINES/maps.dm @@ -35,10 +35,18 @@ require only minor tweaks. #define ZTRAIT_REEBE "Reebe" #define ZTRAIT_RESERVED "Transit/Reserved" #define ZTRAIT_AWAY "Away Mission" +#define ZTRAIT_VR "Virtual Reality" #define ZTRAIT_SPACE_RUINS "Space Ruins" #define ZTRAIT_LAVA_RUINS "Lava Ruins" +#define ZTRAIT_ICE_RUINS "Ice Ruins" +#define ZTRAIT_ICE_RUINS_UNDERGROUND "Ice Ruins Underground" #define ZTRAIT_ISOLATED_RUINS "Isolated Ruins" //Placing ruins on z levels with this trait will use turf reservation instead of usual placement. +//boolean - weather types that occur on the level +#define ZTRAIT_SNOWSTORM "Weather_Snowstorm" +#define ZTRAIT_ASHSTORM "Weather_Ashstorm" +#define ZTRAIT_ACIDRAIN "Weather_Acidrain" + // number - bombcap is multiplied by this before being applied to bombs #define ZTRAIT_BOMBCAP_MULTIPLIER "Bombcap Multiplier" @@ -67,6 +75,7 @@ require only minor tweaks. #define ZTRAITS_SPACE list(ZTRAIT_LINKAGE = CROSSLINKED, ZTRAIT_SPACE_RUINS = TRUE) #define ZTRAITS_LAVALAND list(\ ZTRAIT_MINING = TRUE, \ + ZTRAIT_ASHSTORM = TRUE, \ ZTRAIT_LAVA_RUINS = TRUE, \ ZTRAIT_BOMBCAP_MULTIPLIER = 5, \ ZTRAIT_BASETURF = /turf/open/lava/smooth/lava_land_surface) @@ -101,4 +110,8 @@ require only minor tweaks. #define PLACE_BELOW "below" //On z levl below - centered on same tile #define PLACE_ISOLATED "isolated" //On isolated ruin z level //Map type stuff. -#define MAP_TYPE_STATION "station" \ No newline at end of file +#define MAP_TYPE_STATION "station" + +//Random z-levels name defines. +#define AWAY_MISSION_NAME "Away Mission" +#define VIRT_REALITY_NAME "Virtual Reality" diff --git a/code/__DEFINES/material/worth.dm b/code/__DEFINES/material/worth.dm new file mode 100644 index 0000000000..db79d7317b --- /dev/null +++ b/code/__DEFINES/material/worth.dm @@ -0,0 +1,2 @@ +/// cm3 of material matter per sheet +#define MINERAL_MATERIAL_AMOUNT 2000 diff --git a/code/__DEFINES/materials.dm b/code/__DEFINES/materials.dm index 89553d9c6c..e2ae22345f 100644 --- a/code/__DEFINES/materials.dm +++ b/code/__DEFINES/materials.dm @@ -7,5 +7,5 @@ /// Flag for atoms, this flag ensures it isn't re-colored by materials. Useful for snowflake icons such as default toolboxes. #define MATERIAL_COLOR (1<<0) #define MATERIAL_ADD_PREFIX (1<<1) -#define MATERIAL_NO_EFFECTS (1<<2) +#define MATERIAL_EFFECTS (1<<2) #define MATERIAL_AFFECT_STATISTICS (1<<3) \ No newline at end of file diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm index f37efd694c..e418b8b4c6 100644 --- a/code/__DEFINES/maths.dm +++ b/code/__DEFINES/maths.dm @@ -17,6 +17,8 @@ #define PERCENT(val) (round((val)*100, 0.1)) +#define CLAMP01(x) clamp(x, 0, 1) + //time of day but automatically adjusts to the server going into the next day within the same round. //for when you need a reliable time number that doesn't depend on byond time. #define REALTIMEOFDAY (world.timeofday + (MIDNIGHT_ROLLOVER * MIDNIGHT_ROLLOVER_CHECK)) @@ -30,13 +32,13 @@ #define FLOOR(x, y) ( round((x) / (y)) * (y) ) // Similar to clamp but the bottom rolls around to the top and vice versa. min is inclusive, max is exclusive -#define WRAP(val, min, max) CLAMP(( min == max ? min : (val) - (round(((val) - (min))/((max) - (min))) * ((max) - (min))) ),min,max-1) +#define WRAP(val, min, max) clamp(( min == max ? min : (val) - (round(((val) - (min))/((max) - (min))) * ((max) - (min))) ),min,max-1) // Real modulus that handles decimals #define MODULUS(x, y) ( (x) - (y) * round((x) / (y)) ) // Cotangent -#define COT(x) (1 / TAN(x)) +#define COT(x) (1 / tan(x)) // Secant #define SEC(x) (1 / cos(x)) @@ -169,8 +171,8 @@ while(pixel_y < -16) pixel_y += 32 new_y-- - new_x = CLAMP(new_x, 0, world.maxx) - new_y = CLAMP(new_y, 0, world.maxy) + new_x = clamp(new_x, 0, world.maxx) + new_y = clamp(new_y, 0, world.maxy) return locate(new_x, new_y, starting.z) // Returns a list where [1] is all x values and [2] is all y values that overlap between the given pair of rectangles @@ -195,7 +197,7 @@ #define EXP_DISTRIBUTION(desired_mean) ( -(1/(1/desired_mean)) * log(rand(1, 1000) * 0.001) ) -#define LORENTZ_DISTRIBUTION(x, s) ( s*TAN(TODEGREES(PI*(rand()-0.5))) + x ) +#define LORENTZ_DISTRIBUTION(x, s) ( s*tan(TODEGREES(PI*(rand()-0.5))) + x ) #define LORENTZ_CUMULATIVE_DISTRIBUTION(x, y, s) ( (1/PI)*TORADIANS(arctan((x-y)/s)) + 1/2 ) #define RULE_OF_THREE(a, b, x) ((a*x)/b) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 843ce2ab8a..55aec7022f 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -35,15 +35,15 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s #define BODY_ADJ_LAYER 27 //certain mutantrace features (snout, body markings) that must appear above the body parts #define GENITALS_FRONT_LAYER 26 //Draws some genitalia above clothes and the TAUR body if need be. #define BODY_LAYER 25 //underwear, undershirts, socks, eyes, lips(makeup) -#define FRONT_MUTATIONS_LAYER 24 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes) -#define DAMAGE_LAYER 23 //damage indicators (cuts and burns) -#define UNIFORM_LAYER 22 -#define ID_LAYER 21 -#define HANDS_PART_LAYER 20 -#define SHOES_LAYER 19 -#define GLOVES_LAYER 18 -#define EARS_LAYER 17 -#define BODY_TAUR_LAYER 16 +#define BODY_ADJ_UPPER_LAYER 24 +#define FRONT_MUTATIONS_LAYER 23 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes) +#define DAMAGE_LAYER 22 //damage indicators (cuts and burns) +#define UNIFORM_LAYER 21 +#define ID_LAYER 20 +#define HANDS_PART_LAYER 19 +#define SHOES_LAYER 18 +#define GLOVES_LAYER 17 +#define EARS_LAYER 16 #define SUIT_LAYER 15 #define GENITALS_EXPOSED_LAYER 14 #define GLASSES_LAYER 13 @@ -71,14 +71,6 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s #define ABOVE_SHOES_LAYER (SHOES_LAYER-1) #define ABOVE_BODY_FRONT_LAYER (BODY_FRONT_LAYER-1) - -//Security levels -#define SEC_LEVEL_GREEN 0 -#define SEC_LEVEL_BLUE 1 -#define SEC_LEVEL_AMBER 2 -#define SEC_LEVEL_RED 3 -#define SEC_LEVEL_DELTA 4 - //some arbitrary defines to be used by self-pruning global lists. (see master_controller) #define PROCESS_KILL 26 //Used to trigger removal from a processing list @@ -524,4 +516,18 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S #define UNTIL(X) while(!(X)) stoplag() + +//Scavenging element defines for special loot "events". +#define SCAVENGING_FOUND_NOTHING "found_nothing" +#define SCAVENGING_SPAWN_MOUSE "spawn_mouse" +#define SCAVENGING_SPAWN_MICE "spawn_mice" +#define SCAVENGING_SPAWN_TOM "spawn_tom_the_mouse" + +//Scavenging element defines for ckey/mind restrictions. +#define NO_LOOT_RESTRICTION 0 +#define LOOT_RESTRICTION_MIND 1 +#define LOOT_RESTRICTION_CKEY 2 +#define LOOT_RESTRICTION_MIND_PILE 3 //limited to the current pile. +#define LOOT_RESTRICTION_CKEY_PILE 4 //Idem + #define WANTED_FILE "wanted_message.json" diff --git a/code/__DEFINES/misc/return_values.dm b/code/__DEFINES/misc/return_values.dm new file mode 100644 index 0000000000..d55f603de9 --- /dev/null +++ b/code/__DEFINES/misc/return_values.dm @@ -0,0 +1,3 @@ +// obj/item/dropped +/// dropped() relocated this item, return FALSE for doUnEquip. +#define ITEM_RELOCATED_BY_DROPPED "relocated_by_dropped" diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index e5f817614b..e0df69bfe9 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -138,6 +138,7 @@ #define MOOD_LEVEL_SAD4 -25 //Sanity levels for humans +#define SANITY_AMAZING 150 #define SANITY_GREAT 125 #define SANITY_NEUTRAL 100 #define SANITY_DISTURBED 75 @@ -265,6 +266,7 @@ #define WIZARD_AGE_MIN 30 //youngest a wizard can be #define APPRENTICE_AGE_MIN 29 //youngest an apprentice can be #define SHOES_SLOWDOWN 0 //How much shoes slow you down by default. Negative values speed you up +#define SHOES_SPEED_SLIGHT SHOES_SLOWDOWN - 1 // slightest speed boost to movement #define POCKET_STRIP_DELAY 40 //time taken (in deciseconds) to search somebody's pockets #define DOOR_CRUSH_DAMAGE 15 //the amount of damage that airlocks deal when they crush you @@ -288,6 +290,8 @@ #define HUMAN_FIRE_STACK_ICON_NUM 3 -#define PULL_PRONE_SLOWDOWN 0.6 -#define FIREMAN_CARRY_SLOWDOWN 0 -#define PIGGYBACK_CARRY_SLOWDOWN 1 +#define GRAB_PIXEL_SHIFT_PASSIVE 6 +#define GRAB_PIXEL_SHIFT_AGGRESSIVE 12 +#define GRAB_PIXEL_SHIFT_NECK 16 + +#define SLEEP_CHECK_DEATH(X) sleep(X); if(QDELETED(src) || stat == DEAD) return; diff --git a/code/__DEFINES/mobs/slowdowns.dm b/code/__DEFINES/mobs/slowdowns.dm new file mode 100644 index 0000000000..2d858e9509 --- /dev/null +++ b/code/__DEFINES/mobs/slowdowns.dm @@ -0,0 +1,10 @@ +/// How much someone is slowed from pulling a prone human +#define PULL_PRONE_SLOWDOWN 0.6 +/// How much someone is slowed from fireman carrying a human +#define FIREMAN_CARRY_SLOWDOWN 0 +/// How much someone is slowed by piggybacking a human +#define PIGGYBACK_CARRY_SLOWDOWN 1 +/// slowdown when in softcrit. Note that crawling slowdown will also apply at the same time! +#define SOFTCRIT_ADD_SLOWDOWN 2 +/// slowdown when crawling +#define CRAWLING_ADD_SLOWDOWN 4 diff --git a/code/__DEFINES/movespeed_modification.dm b/code/__DEFINES/movespeed_modification.dm index 4d40474a3c..1f3ae63940 100644 --- a/code/__DEFINES/movespeed_modification.dm +++ b/code/__DEFINES/movespeed_modification.dm @@ -1,12 +1,3 @@ -#define MOVESPEED_DATA_INDEX_PRIORITY 1 -#define MOVESPEED_DATA_INDEX_FLAGS 2 -#define MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN 3 -#define MOVESPEED_DATA_INDEX_MOVETYPE 4 -#define MOVESPEED_DATA_INDEX_BL_MOVETYPE 5 -#define MOVESPEED_DATA_INDEX_CONFLICT 6 - -#define MOVESPEED_DATA_INDEX_MAX 6 - //flags #define IGNORE_NOSLOW (1 << 0) @@ -15,70 +6,7 @@ #define MOVE_CONFLICT_JETPACK "JETPACK" //ids +#define MOVESPEED_ID_SANITY "mood_sanity" -#define MOVESPEED_ID_MOB_WALK_RUN_CONFIG_SPEED "MOB_WALK_RUN" -#define MOVESPEED_ID_MOB_GRAB_STATE "MOB_GRAB_STATE" -#define MOVESPEED_ID_MOB_EQUIPMENT "MOB_EQUIPMENT" -#define MOVESPEED_ID_MOB_GRAVITY "MOB_GRAVITY" -#define MOVESPEED_ID_CONFIG_SPEEDMOD "MOB_CONFIG_MODIFIER" - -#define MOVESPEED_ID_SLIME_REAGENTMOD "SLIME_REAGENT_MODIFIER" -#define MOVESPEED_ID_SLIME_HEALTHMOD "SLIME_HEALTH_MODIFIER" -#define MOVESPEED_ID_SLIME_TEMPMOD "SLIME_TEMPERATURE_MODIFIER" - -#define MOVESPEED_ID_SLIME_STATUS "SLIME_STATUS" - -#define MOVESPEED_ID_TARANTULA_WEB "TARANTULA_WEB" - -#define MOVESPEED_ID_LIVING_TURF_SPEEDMOD "LIVING_TURF_SPEEDMOD" -#define MOVESPEED_ID_LIVING_LIMBLESS "LIVING_LIMBLESS" - -#define MOVESPEED_ID_CARBON_SOFTCRIT "CARBON_SOFTCRIT" -#define MOVESPEED_ID_CARBON_OLDSPEED "CARBON_DEPRECATED_SPEED" - -#define MOVESPEED_ID_DNA_VAULT "DNA_VAULT" - -#define MOVESPEED_ID_YELLOW_ORB "YELLOW_ORB" - -#define MOVESPEED_ID_TARFOOT "TARFOOT" - -#define MOVESPEED_ID_SEPIA "SEPIA" - -#define MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD "MONKEY_REAGENT_SPEEDMOD" -#define MOVESPEED_ID_MONKEY_TEMPERATURE_SPEEDMOD "MONKEY_TEMPERATURE_SPEEDMOD" -#define MOVESPEED_ID_MONKEY_HEALTH_SPEEDMOD "MONKEY_HEALTH_SPEEDMOD" - -#define MOVESPEED_ID_CHANGELING_MUSCLES "CHANGELING_MUSCLES" - -#define MOVESPEED_ID_SIMPLEMOB_VARSPEED "SIMPLEMOB_VARSPEED_MODIFIER" -#define MOVESPEED_ID_ADMIN_VAREDIT "ADMIN_VAREDIT_MODIFIER" - -#define MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD "PAI_SPACEWALK_MODIFIER" - -#define MOVESPEED_ID_SANITY "MOOD_SANITY" - -#define MOVESPEED_ID_SPECIES "SPECIES_SPEED_MOD" - -#define MOVESPEED_ID_SMALL_STRIDE "SMALL_STRIDE" -#define MOVESPEED_ID_PRONE_DRAGGING "PRONE_DRAG" -#define MOVESPEED_ID_HUMAN_CARRYING "HUMAN_CARRY" -#define MOVESPEED_ID_SHRINK_RAY "SHRUNKEN_SPEED_MODIFIER" - -#define MOVESPEED_ID_SLAUGHTER "SLAUGHTER" - -#define MOVESPEED_ID_CYBER_THRUSTER "CYBER_IMPLANT_THRUSTER" -#define MOVESPEED_ID_JETPACK "JETPACK" - -#define MOVESPEED_ID_MKULTRA "MKULTRA" - -#define MOVESPEED_ID_TASED_STATUS "TASED" -#define MOVESPEED_ID_ELECTROSTAFF "ELECTROSTAFF" - -#define MOVESPEED_ID_SHOVE "SHOVE" -#define MOVESPEED_ID_FAT "FAT" -#define MOVESPEED_ID_COLD "COLD" -#define MOVESPEED_ID_HUNGRY "HUNGRY" -#define MOVESPEED_ID_DAMAGE_SLOWDOWN "DAMAGE" -#define MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING "FLYING" - -#define MOVESPEED_ID_CIRRHOSIS "CIRRHOSIS" \ No newline at end of file +#define MOVESPEED_ID_MOB_GRAB_STATE "mob_grab_state" +#define MOVESPEED_ID_MOB_WALK_RUN "mob_walk_run" diff --git a/code/__DEFINES/nanites.dm b/code/__DEFINES/nanites.dm index ed15e972ab..05c3501609 100644 --- a/code/__DEFINES/nanites.dm +++ b/code/__DEFINES/nanites.dm @@ -12,6 +12,10 @@ #define NANITE_CLOUD_DISABLE 2 #define NANITE_CLOUD_ENABLE 3 +///Nanite Protocol types +#define NANITE_PROTOCOL_REPLICATION "nanite_replication" +#define NANITE_PROTOCOL_STORAGE "nanite_storage" + ///Nanite extra settings types: used to help uis know what type an extra setting is #define NESTYPE_TEXT "text" #define NESTYPE_NUMBER "number" diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm index d78de86d25..507126867f 100644 --- a/code/__DEFINES/obj_flags.dm +++ b/code/__DEFINES/obj_flags.dm @@ -38,11 +38,12 @@ #define BLOCK_GAS_SMOKE_EFFECT (1<<2) //blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY! #define ALLOWINTERNALS (1<<3) //mask allows internals #define NOSLIP (1<<4) //prevents from slipping on wet floors, in space etc -#define THICKMATERIAL (1<<5) //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. -#define VOICEBOX_TOGGLABLE (1<<6) //The voicebox in this clothing can be toggled. -#define VOICEBOX_DISABLED (1<<7) //The voicebox is currently turned off. -#define IGNORE_HAT_TOSS (1<<8) //Hats with negative effects when worn (i.e the tinfoil hat). -#define SCAN_REAGENTS (1<<9) // Allows helmets and glasses to scan reagents. +#define NOSLIP_ICE (1<<5) //prevents from slipping on frozen floors +#define THICKMATERIAL (1<<6) //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. +#define VOICEBOX_TOGGLABLE (1<<7) //The voicebox in this clothing can be toggled. +#define VOICEBOX_DISABLED (1<<8) //The voicebox is currently turned off. +#define IGNORE_HAT_TOSS (1<<9) //Hats with negative effects when worn (i.e the tinfoil hat). +#define SCAN_REAGENTS (1<<10) // Allows helmets and glasses to scan reagents. // Flags for the organ_flags var on /obj/item/organ @@ -52,3 +53,4 @@ #define ORGAN_EXTERNAL (1<<3) //Was this organ implanted/inserted/etc, if true will not be removed during species change. #define ORGAN_VITAL (1<<4) //Currently only the brain #define ORGAN_NO_SPOIL (1<<5) //Do not spoil under any circumstances +#define ORGAN_NO_DISMEMBERMENT (1<<6) //Immune to disembowelment. diff --git a/code/__DEFINES/radio.dm b/code/__DEFINES/radio.dm index 928f364a81..a0db416fa6 100644 --- a/code/__DEFINES/radio.dm +++ b/code/__DEFINES/radio.dm @@ -65,6 +65,7 @@ #define FREQ_ENGINEERING 1357 // Engineering comms frequency, orange #define FREQ_SECURITY 1359 // Security comms frequency, red +#define FREQ_HOLOGRID_SOLUTION 1433 #define FREQ_STATUS_DISPLAYS 1435 #define FREQ_ATMOS_ALARMS 1437 // air alarms <-> alert computers #define FREQ_ATMOS_CONTROL 1439 // air alarms <-> vents and scrubbers diff --git a/code/__DEFINES/reagents.dm b/code/__DEFINES/reagents.dm index 97ae7b8e95..f4beef7ee8 100644 --- a/code/__DEFINES/reagents.dm +++ b/code/__DEFINES/reagents.dm @@ -22,11 +22,23 @@ // Is an open container for all intents and purposes. #define OPENCONTAINER (REFILLABLE | DRAINABLE | TRANSPARENT) -//reagents_value defines, for cargo stuff. +//reagents_value defines, basically a multiplier used in reagent containers cargo selling. #define DEFAULT_REAGENTS_VALUE 1 #define NO_REAGENTS_VALUE 0 #define HARVEST_REAGENTS_VALUE 0.3 +/// Standard reagents value defines. +/// Take a grain of salt, only "rare" reagents should have a decent value here, for balance reasons. +/// TL;DR Think of it also like general market request price more than rarity. +#define REAGENT_VALUE_NONE 0 //all the stuff pretty much available in potentially unlimited quantities. +#define REAGENT_VALUE_VERY_COMMON 0.1 //same as above, just not so unlimited. +#define REAGENT_VALUE_COMMON 0.5 +#define REAGENT_VALUE_UNCOMMON 1 +#define REAGENT_VALUE_RARE 2.5 +#define REAGENT_VALUE_VERY_RARE 5 +#define REAGENT_VALUE_EXCEPTIONAL 10 //extremely rare or tedious to craft, possibly unsynthetizable, reagents. +#define REAGENT_VALUE_AMAZING 30 //reserved ONLY for non-mass produceable, unsynthetizable reagents. +#define REAGENT_VALUE_GLORIOUS 300 //reagents that shouldn't be possible to get or farm under normal conditions. e.g. Romerol, fungal TB, adminordrazine... #define TOUCH 1 // splashing #define INGEST 2 // ingestion diff --git a/code/__DEFINES/research.dm b/code/__DEFINES/research.dm index 9feb5f40c5..60effc7265 100644 --- a/code/__DEFINES/research.dm +++ b/code/__DEFINES/research.dm @@ -60,7 +60,8 @@ #define DESIGN_ID_IGNORE "IGNORE_THIS_DESIGN" -#define RESEARCH_MATERIAL_RECLAMATION_ID "__materials" +#define RESEARCH_MATERIAL_RECLAMATION_ID "__materials" +#define RESEARCH_DEEP_SCAN_ID "__deepscan" //When adding new types, update the list below! #define TECHWEB_POINT_TYPE_GENERIC "General Research" diff --git a/code/__DEFINES/research/stock_parts.dm b/code/__DEFINES/research/stock_parts.dm new file mode 100644 index 0000000000..457e3b632e --- /dev/null +++ b/code/__DEFINES/research/stock_parts.dm @@ -0,0 +1,5 @@ +// the clamps are just sanity checks. +/// Efficiency scaling for stock part level to material usage. All code concerning lathing and production from raw material sheet should be using this. +#define STANDARD_PART_LEVEL_LATHE_COEFFICIENT(level) clamp(1 - (level * 0.1), 0, 1) +/// Efficiency scaling for stock part level to ore factor. All code concerning lathing and production from raw ores to raw material sheets should be using this. +#define STANDARD_PART_LEVEL_ORE_COEFFICIENT(level) clamp(1 + (level * 0.125), 1, 10) diff --git a/code/__DEFINES/security_levels.dm b/code/__DEFINES/security_levels.dm new file mode 100644 index 0000000000..19c66d9125 --- /dev/null +++ b/code/__DEFINES/security_levels.dm @@ -0,0 +1,10 @@ +//Security levels +#define SEC_LEVEL_GREEN 1 +#define SEC_LEVEL_BLUE 2 +#define SEC_LEVEL_AMBER 3 +#define SEC_LEVEL_RED 4 +#define SEC_LEVEL_DELTA 5 + +//Macro helpers. +#define SECLEVEL2NUM(text) (GLOB.all_security_levels.Find(text)) +#define NUM2SECLEVEL(num) (ISINRANGE(num, 1, length(GLOB.all_security_levels)) ? GLOB.all_security_levels[num] : null) diff --git a/code/__DEFINES/skills/defines.dm b/code/__DEFINES/skills/defines.dm new file mode 100644 index 0000000000..73be86e128 --- /dev/null +++ b/code/__DEFINES/skills/defines.dm @@ -0,0 +1,77 @@ + +/// true/false +#define SKILL_PROGRESSION_BINARY 1 +/// numerical +#define SKILL_PROGRESSION_NUMERICAL 2 +/// Enum +#define SKILL_PROGRESSION_ENUM 3 +/// Levels +#define SKILL_PROGRESSION_LEVEL 4 + + +/// Max value of skill for numerical skills +#define SKILL_NUMERICAL_MAX 100 +/// Min value of skill for numerical skills +#define SKILL_NUMERICAL_MIN 0 + +// Standard values for job starting skills + +#define STARTING_SKILL_SURGERY_MEDICAL 35 //out of SKILL_NUMERICAL_MAX + +// Standard values for job starting skill affinities + +#define STARTING_SKILL_AFFINITY_SURGERY_MEDICAL 1.2 + +#define STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO 1.2 + +// Standard values for skill gain (this is multiplied by affinity) + +#define DEF_SKILL_GAIN 1 +#define SKILL_GAIN_SURGERY_PER_STEP 0.25 + +#define SKILL_AFFINITY_MOOD_BONUS 1.25 + +///Items skill_flags and other defines +#define SKILL_USE_TOOL (1<<0) +#define SKILL_TRAINING_TOOL (1<<1) +#define SKILL_ATTACK_MOB (1<<2) +#define SKILL_TRAIN_ATTACK_MOB (1<<3) +#define SKILL_ATTACK_OBJ (1<<4) +#define SKILL_TRAIN_ATTACK_OBJ (1<<5) +#define SKILL_STAMINA_COST (1<<6) //Influences the stamina cost from weapon usage. +#define SKILL_THROW_STAM_COST (1<<7) +#define SKILL_COMBAT_MODE (1<<8) //The user must have combat mode on. +#define SKILL_USE_MOOD (1<<9) //Is the skill negatively affected by bad mood. +#define SKILL_TRAIN_MOOD (1<<10) //Is this skill training affected by good mood. + +///competency_threshold index defines +#define THRESHOLD_COMPETENT 1 +#define THRESHOLD_EXPERT 2 +#define THRESHOLD_MASTER 3 + +/// Level/Experience skills defines. +#define STD_XP_LVL_UP 100 +#define STD_XP_LVL_MULTI 2 +#define STD_MAX_LVL 4 + +#define RPG_MAX_LVL 100 + +#define DORF_XP_LVL_UP 400 +#define DORF_XP_LVL_MULTI 100 +#define DORF_MAX_LVL 20 // Dabbling, novice, adequate, [...], legendary +3, legendary +4, legendary +5 + +//level up methods defines +#define STANDARD_LEVEL_UP "standard_level_up" +#define DWARFY_LEVEL_UP "dwarfy_level_up" + +//job skill level defines +#define JOB_SKILL_UNTRAINED 0 +#define JOB_SKILL_BASIC 1 +#define JOB_SKILL_TRAINED 2 +#define JOB_SKILL_EXPERT 3 +#define JOB_SKILL_MASTER 4 + +//other skill level defines, not an exhaustive catalogue, only contains be most relevant ones. +#define DORF_SKILL_COMPETENT 3 +#define DORF_SKILL_EXPERT 8 +#define DORF_SKILL_MASTER 12 diff --git a/code/__DEFINES/skills/helpers.dm b/code/__DEFINES/skills/helpers.dm new file mode 100644 index 0000000000..23669b3739 --- /dev/null +++ b/code/__DEFINES/skills/helpers.dm @@ -0,0 +1,8 @@ + +//How experience levels are calculated. +#define XP_LEVEL(std, multi, lvl) (std*((multi**lvl)/(multi-1))-std/(multi-1)) //don't use 1 as multi, you'll get division by zero errors +#define DORF_XP_LEVEL(std, extra, lvl) (std*lvl+extra*(lvl*(lvl/2+0.5))) + +//More experience value getter macros +#define GET_STANDARD_LVL(lvl) XP_LEVEL(STD_XP_LVL_UP, STD_XP_LVL_MULTI, lvl) +#define GET_DORF_LVL(lvl) DORF_XP_LEVEL(DORF_XP_LVL_UP, DORF_XP_LVL_MULTI, lvl) diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index 9a9133c196..593edf4705 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -34,6 +34,8 @@ #define STATUS_EFFECT_HIPPOCRATIC_OATH /datum/status_effect/hippocraticOath //Gives you an aura of healing as well as regrowing the Rod of Asclepius if lost +#define STATUS_EFFECT_REGENERATIVE_CORE /datum/status_effect/regenerative_core //removes damage slowdown while giving a slow regenerating effect + ///////////// // DEBUFFS // ///////////// @@ -78,7 +80,7 @@ #define STATUS_EFFECT_CRUSHERMARK /datum/status_effect/crusher_mark //if struck with a proto-kinetic crusher, takes a ton of damage -#define STATUS_EFFECT_SAWBLEED /datum/status_effect/saw_bleed //if the bleed builds up enough, takes a ton of damage +#define STATUS_EFFECT_SAWBLEED /datum/status_effect/stacking/saw_bleed //if the bleed builds up enough, takes a ton of damage #define STATUS_EFFECT_NECKSLICE /datum/status_effect/neck_slice //Creates the flavor messages for the neck-slice diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index cadc1113c5..3abef3a61c 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -132,8 +132,15 @@ #define RUNLEVELS_DEFAULT (RUNLEVEL_SETUP | RUNLEVEL_GAME | RUNLEVEL_POSTGAME) - - +// SSair run section +#define SSAIR_PIPENETS 1 +#define SSAIR_ATMOSMACHINERY 2 +#define SSAIR_REACTQUEUE 3 +#define SSAIR_EXCITEDGROUPS 4 +#define SSAIR_HIGHPRESSURE 5 +#define SSAIR_HOTSPOTS 6 +#define SSAIR_SUPERCONDUCTIVITY 7 +#define SSAIR_REBUILD_PIPENETS 8 #define COMPILE_OVERLAYS(A)\ if (TRUE) {\ diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index e70e0ba743..91a4a6f2c3 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -78,6 +78,7 @@ #define TRAIT_MONKEYLIKE "monkeylike" //sets IsAdvancedToolUser to FALSE #define TRAIT_PACIFISM "pacifism" #define TRAIT_IGNORESLOWDOWN "ignoreslow" +#define TRAIT_IGNOREDAMAGESLOWDOWN "ignoredamageslowdown" #define TRAIT_DEATHCOMA "deathcoma" //Causes death-like unconsciousness #define TRAIT_FAKEDEATH "fakedeath" //Makes the owner appear as dead to most forms of medical examination #define TRAIT_DISFIGURED "disfigured" @@ -150,6 +151,44 @@ #define TRAIT_PUGILIST "pugilist" //This guy punches people for a living #define TRAIT_KI_VAMPIRE "ki-vampire" //when someone with this trait rolls maximum damage on a punch and stuns the target, they regain some stamina and do clone damage #define TRAIT_PASSTABLE "passtable" +#define TRAIT_GIANT "giant" +#define TRAIT_DWARF "dwarf" +#define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance" +#define TRAIT_AGEUSIA "ageusia" +#define TRAIT_HEAVY_SLEEPER "heavy_sleeper" +#define TRAIT_NIGHT_VISION "night_vision" +#define TRAIT_LIGHT_STEP "light_step" +#define TRAIT_SILENT_STEP "silent_step" +#define TRAIT_SPEEDY_STEP "speedy_step" +#define TRAIT_SPIRITUAL "spiritual" +#define TRAIT_VORACIOUS "voracious" +#define TRAIT_SELF_AWARE "self_aware" +#define TRAIT_FREERUNNING "freerunning" +#define TRAIT_SKITTISH "skittish" +#define TRAIT_POOR_AIM "poor_aim" +#define TRAIT_PROSOPAGNOSIA "prosopagnosia" +#define TRAIT_DRUNK_HEALING "drunk_healing" +#define TRAIT_TAGGER "tagger" +#define TRAIT_PHOTOGRAPHER "photographer" +#define TRAIT_MUSICIAN "musician" +#define TRAIT_PERMABONER "permanent_arousal" +#define TRAIT_NEVERBONER "never_aroused" +#define TRAIT_MASO "masochism" +#define TRAIT_HIGH_BLOOD "high_blood" +#define TRAIT_PARA "paraplegic" +#define TRAIT_EMPATH "empath" +#define TRAIT_FRIENDLY "friendly" +#define TRAIT_CULT_EYES "cult_eyes" +#define TRAIT_AUTO_CATCH_ITEM "auto_catch_item" +#define TRAIT_CLOWN_MENTALITY "clown_mentality" // The future is now, clownman. +#define TRAIT_FREESPRINT "free_sprinting" +#define TRAIT_XRAY_VISION "xray_vision" +#define TRAIT_THERMAL_VISION "thermal_vision" +#define TRAIT_NO_TELEPORT "no-teleport" //you just can't +#define TRAIT_NO_INTERNALS "no-internals" +#define TRAIT_NO_ALCOHOL "alcohol_intolerance" +#define TRAIT_MUTATION_STASIS "mutation_stasis" //Prevents processed genetics mutations from processing. +#define TRAIT_FAST_PUMP "fast_pump" // mobility flag traits // IN THE FUTURE, IT WOULD BE NICE TO DO SOMETHING SIMILAR TO https://github.com/tgstation/tgstation/pull/48923/files (ofcourse not nearly the same because I have my.. thoughts on it) @@ -183,43 +222,6 @@ // item traits #define TRAIT_NODROP "nodrop" -#define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance" -#define TRAIT_AGEUSIA "ageusia" -#define TRAIT_HEAVY_SLEEPER "heavy_sleeper" -#define TRAIT_NIGHT_VISION "night_vision" -#define TRAIT_LIGHT_STEP "light_step" -#define TRAIT_SILENT_STEP "silent_step" -#define TRAIT_SPEEDY_STEP "speedy_step" -#define TRAIT_SPIRITUAL "spiritual" -#define TRAIT_VORACIOUS "voracious" -#define TRAIT_SELF_AWARE "self_aware" -#define TRAIT_FREERUNNING "freerunning" -#define TRAIT_SKITTISH "skittish" -#define TRAIT_POOR_AIM "poor_aim" -#define TRAIT_PROSOPAGNOSIA "prosopagnosia" -#define TRAIT_DRUNK_HEALING "drunk_healing" -#define TRAIT_TAGGER "tagger" -#define TRAIT_PHOTOGRAPHER "photographer" -#define TRAIT_MUSICIAN "musician" -#define TRAIT_PERMABONER "permanent_arousal" -#define TRAIT_NEVERBONER "never_aroused" -#define TRAIT_NYMPHO "nymphomania" -#define TRAIT_MASO "masochism" -#define TRAIT_HIGH_BLOOD "high_blood" -#define TRAIT_PARA "paraplegic" -#define TRAIT_EMPATH "empath" -#define TRAIT_FRIENDLY "friendly" -#define TRAIT_CULT_EYES "cult_eyes" -#define TRAIT_AUTO_CATCH_ITEM "auto_catch_item" -#define TRAIT_CLOWN_MENTALITY "clown_mentality" // The future is now, clownman. -#define TRAIT_FREESPRINT "free_sprinting" -#define TRAIT_XRAY_VISION "xray_vision" -#define TRAIT_THERMAL_VISION "thermal_vision" -#define TRAIT_NO_TELEPORT "no-teleport" //you just can't -#define TRAIT_NO_INTERNALS "no-internals" -#define TRAIT_NO_ALCOHOL "alcohol_intolerance" -#define TRAIT_MUTATION_STASIS "mutation_stasis" //Prevents processed genetics mutations from processing. - // common trait sources #define TRAIT_GENERIC "generic" #define EYE_DAMAGE "eye_damage" @@ -244,6 +246,7 @@ #define BLOODSUCKER_TRAIT "bloodsucker" #define SHOES_TRAIT "shoes" //inherited from your sweet kicks #define GLOVE_TRAIT "glove" //inherited by your cool gloves +#define BOOK_TRAIT "granter (book)" // knowledge is power // unique trait sources, still defines #define STATUE_MUTE "statue" diff --git a/code/__DEFINES/vv.dm b/code/__DEFINES/vv.dm index de58523831..32bf4b66f9 100644 --- a/code/__DEFINES/vv.dm +++ b/code/__DEFINES/vv.dm @@ -73,6 +73,7 @@ #define VV_HK_EXPOSE "expose" #define VV_HK_CALLPROC "proc_call" #define VV_HK_MARK "mark" +#define VV_HK_ADDCOMPONENT "addcomponent" #define VV_HK_MODIFY_TRAITS "modtraits" // /atom diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index a34b3ce67c..ad977ec493 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -11,6 +11,7 @@ #define LAZYINITLIST(L) if (!L) L = list() #define UNSETEMPTY(L) if (L && !length(L)) L = null +#define LAZYCOPY(L) (L ? L.Copy() : list() ) #define LAZYREMOVE(L, I) if(L) { L -= I; if(!length(L)) { L = null; } } #define LAZYADD(L, I) if(!L) { L = list(); } L += I; #define LAZYOR(L, I) if(!L) { L = list(); } L |= I; @@ -21,34 +22,47 @@ #define LAZYCLEARLIST(L) if(L) L.Cut() #define SANITIZE_LIST(L) ( islist(L) ? L : list() ) #define reverseList(L) reverseRange(L.Copy()) +#define LAZYADDASSOC(L, K, V) if(!L) { L = list(); } L[K] += list(V); +#define LAZYREMOVEASSOC(L, K, V) if(L) { if(L[K]) { L[K] -= V; if(!length(L[K])) L -= K; } if(!length(L)) L = null; } -// binary search sorted insert -// IN: Object to be inserted -// LIST: List to insert object into -// TYPECONT: The typepath of the contents of the list -// COMPARE: The variable on the objects to compare -#define BINARY_INSERT(IN, LIST, TYPECONT, COMPARE) \ - var/__BIN_CTTL = length(LIST);\ - if(!__BIN_CTTL) {\ - LIST += IN;\ - } else {\ - var/__BIN_LEFT = 1;\ - var/__BIN_RIGHT = __BIN_CTTL;\ - var/__BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\ - var/##TYPECONT/__BIN_ITEM;\ - while(__BIN_LEFT < __BIN_RIGHT) {\ - __BIN_ITEM = LIST[__BIN_MID];\ - if(__BIN_ITEM.##COMPARE <= IN.##COMPARE) {\ - __BIN_LEFT = __BIN_MID + 1;\ - } else {\ - __BIN_RIGHT = __BIN_MID;\ +/// Passed into BINARY_INSERT to compare keys +#define COMPARE_KEY __BIN_LIST[__BIN_MID] +/// Passed into BINARY_INSERT to compare values +#define COMPARE_VALUE __BIN_LIST[__BIN_LIST[__BIN_MID]] + +/**** + * Binary search sorted insert + * INPUT: Object to be inserted + * LIST: List to insert object into + * TYPECONT: The typepath of the contents of the list + * COMPARE: The object to compare against, usualy the same as INPUT + * COMPARISON: The variable on the objects to compare + */ +#define BINARY_INSERT(INPUT, LIST, TYPECONT, COMPARE, COMPARISON, COMPTYPE) \ + do {\ + var/list/__BIN_LIST = LIST;\ + var/__BIN_CTTL = length(__BIN_LIST);\ + if(!__BIN_CTTL) {\ + __BIN_LIST += INPUT;\ + } else {\ + var/__BIN_LEFT = 1;\ + var/__BIN_RIGHT = __BIN_CTTL;\ + var/__BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\ + var/##TYPECONT/__BIN_ITEM;\ + while(__BIN_LEFT < __BIN_RIGHT) {\ + __BIN_ITEM = COMPTYPE;\ + if(__BIN_ITEM.##COMPARISON <= COMPARE.##COMPARISON) {\ + __BIN_LEFT = __BIN_MID + 1;\ + } else {\ + __BIN_RIGHT = __BIN_MID;\ + };\ + __BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\ };\ - __BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\ + __BIN_ITEM = COMPTYPE;\ + __BIN_MID = __BIN_ITEM.##COMPARISON > COMPARE.##COMPARISON ? __BIN_MID : __BIN_MID + 1;\ + __BIN_LIST.Insert(__BIN_MID, INPUT);\ };\ - __BIN_ITEM = LIST[__BIN_MID];\ - __BIN_MID = __BIN_ITEM.##COMPARE > IN.##COMPARE ? __BIN_MID : __BIN_MID + 1;\ - LIST.Insert(__BIN_MID, IN);\ - } + } while(FALSE) //Returns a list in plain english as a string /proc/english_list(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" ) @@ -231,40 +245,77 @@ //Picks a random element from a list based on a weighting system: //1. Adds up the total of weights for each element -//2. Gets a number between 1 and that total +//2. Gets the total from 0% to 100% of previous total value. //3. For each element in the list, subtracts its weighting from that number //4. If that makes the number 0 or less, return that element. -/proc/pickweight(list/L) +/proc/pickweight(list/L, base_weight = 1) var/total = 0 var/item for (item in L) if (!L[item]) - L[item] = 1 + L[item] = base_weight total += L[item] - total = rand(1, total) + total = rand() * total for (item in L) - total -=L [item] + total -= L[item] if (total <= 0) return item - return null - -/proc/pickweightAllowZero(list/L) //The original pickweight proc will sometimes pick entries with zero weight. I'm not sure if changing the original will break anything, so I left it be. +//Picks a number of elements from a list based on weight. +//This is highly optimised and good for things like grabbing 200 items from a list of 40,000 +//Much more efficient than many pickweight calls +/proc/pickweight_mult(list/L, quantity, base_weight = 1) + //First we total the list as normal var/total = 0 var/item for (item in L) if (!L[item]) - L[item] = 0 + L[item] = base_weight total += L[item] - total = rand(0, total) - for (item in L) - total -=L [item] - if (total <= 0 && L[item]) - return item + //Next we will make a list of randomly generated numbers, called Requests + //It is critical that this list be sorted in ascending order, so we will build it in that order + //First one is free, so we start counting at 2 + var/list/requests = list(rand(1, total)) + for (var/i in 2 to quantity) + //Each time we generate the next request + var/newreq = rand()* total + //We will loop through all existing requests + for (var/j in 1 to requests.len) + //We keep going through the list until we find an element which is bigger than the one we want to add + if (requests[j] > newreq) + //And then we insert the newqreq at that point, pushing everything else forward + requests.Insert(j, newreq) + break - return null + + + //Now when we get here, we have a list of random numbers sorted in ascending order. + //The length of that list is equal to Quantity passed into this function + //Next we make a list to store results + var/list/results = list() + + //Zero the total, we'll reuse it + total = 0 + + //Now we will iterate forward through the items list, adding each weight to the total + for (item in L) + total += L[item] + + //After each item we do a while loop + while (requests.len && total >= requests[1]) + //If the total is higher than the value of the first request + results += item //We add this item to the results list + requests.Cut(1,2) //And we cut off the top of the requests list + + //This while loop will repeat until the next request is higher than the total. + //The current item might be added to the results list many times, in this process + + //By the time we get here: + //Requests will be empty + //Results will have a length of quality + return results //Pick a random element from the list and remove it from the list. /proc/pick_n_take(list/L) @@ -274,6 +325,13 @@ . = L[picked] L.Cut(picked,picked+1) //Cut is far more efficient that Remove() +//Pick a random element from the list by weight and remove it from the list. +//Result is returned as a list in the format list(key, value) +/proc/pickweight_n_take(list/L, base_weight = 1) + if (L.len) + . = pickweight(L, base_weight) + L.Remove(.) + //Returns the top(last) element from the list and removes it from the list (typical stack function) /proc/pop(list/L) if(L.len) diff --git a/code/__HELPERS/areas.dm b/code/__HELPERS/areas.dm index 715f17af92..8e4c363227 100644 --- a/code/__HELPERS/areas.dm +++ b/code/__HELPERS/areas.dm @@ -58,6 +58,11 @@ GLOBAL_LIST_INIT(typecache_powerfailure_safe_areas, typecacheof(/area/engine/eng else if(isarea(areatype)) var/area/areatemp = areatype areatype = areatemp.type + else if(islist(areatype)) + var/list/turfs = list() + for(var/A in areatype) + turfs += get_area_turfs(A) + return turfs else if(!ispath(areatype)) return null diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 38e25b04c5..bcfaa1bed2 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -88,6 +88,7 @@ init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes) INVOKE_ASYNC(GLOBAL_PROC, /proc/init_ref_coin_values) //so the current procedure doesn't sleep because of UNTIL() + INVOKE_ASYNC(GLOBAL_PROC, /proc/setupGenetics) //creates every subtype of prototype (excluding prototype) and adds it to list L. //if no list/L is provided, one is created. @@ -113,3 +114,25 @@ UNTIL(C.flags_1 & INITIALIZED_1) //we want to make sure the value is calculated and not null. GLOB.coin_values[path] = C.value qdel(C) + +/proc/setupGenetics() + var/list/mutations = subtypesof(/datum/mutation/human) + shuffle_inplace(mutations) + for(var/A in subtypesof(/datum/generecipe)) + var/datum/generecipe/GR = A + GLOB.mutation_recipes[initial(GR.required)] = initial(GR.result) + for(var/i in 1 to LAZYLEN(mutations)) + var/path = mutations[i] //byond gets pissy when we do it in one line + var/datum/mutation/human/B = new path () + B.alias = "Mutation #[i]" + GLOB.all_mutations[B.type] = B + GLOB.full_sequences[B.type] = generate_gene_sequence(B.blocks) + if(B.locked) + continue + if(B.quality == POSITIVE) + GLOB.good_mutations |= B + else if(B.quality == NEGATIVE) + GLOB.bad_mutations |= B + else if(B.quality == MINOR_NEGATIVE) + GLOB.not_good_mutations |= B + CHECK_TICK \ No newline at end of file diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm index 7e52fbe273..801a2cd431 100644 --- a/code/__HELPERS/icon_smoothing.dm +++ b/code/__HELPERS/icon_smoothing.dm @@ -61,7 +61,7 @@ var/adjacencies = 0 var/atom/movable/AM - if(ismovableatom(A)) + if(ismovable(A)) AM = A if(AM.can_be_unanchored && !AM.anchored) return 0 diff --git a/code/__HELPERS/level_traits.dm b/code/__HELPERS/level_traits.dm index 3e6e88c8fa..030a324614 100644 --- a/code/__HELPERS/level_traits.dm +++ b/code/__HELPERS/level_traits.dm @@ -12,3 +12,5 @@ #define is_reserved_level(z) SSmapping.level_trait(z, ZTRAIT_RESERVED) #define is_away_level(z) SSmapping.level_trait(z, ZTRAIT_AWAY) + +#define is_vr_level(z) SSmapping.level_trait(z, ZTRAIT_VR) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 2827e40120..e0714a87b3 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -47,7 +47,7 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear/socks, GLOB.socks_list) return pick(GLOB.socks_list) -/proc/random_features(intendedspecies) +/proc/random_features(intendedspecies, intended_gender) if(!GLOB.tails_list_human.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, GLOB.tails_list_human) if(!GLOB.tails_list_lizard.len) @@ -149,7 +149,13 @@ var/color2 = random_short_color() var/color3 = random_short_color() - //CIT CHANGE - changes this entire return to support cit's snowflake parts + var/body_model = MALE + switch(intended_gender) + if(MALE, FEMALE) + body_model = intended_gender + if(PLURAL) + body_model = pick(MALE,FEMALE) + return(list( "mcolor" = color1, "mcolor2" = color2, @@ -157,9 +163,11 @@ "tail_lizard" = pick(GLOB.tails_list_lizard), "tail_human" = "None", "wings" = "None", + "wings_color" = "FFF", "deco_wings" = "None", "snout" = pick(GLOB.snouts_list), - "horns" = pick(GLOB.horns_list), + "horns" = "None", + "horns_color" = "85615a", "ears" = "None", "frills" = pick(GLOB.frills_list), "spines" = pick(GLOB.spines_list), @@ -168,7 +176,7 @@ "caps" = pick(GLOB.caps_list), "insect_wings" = pick(GLOB.insect_wings_list), "insect_fluff" = "None", - "insect_markings" = pick(GLOB.insect_markings_list), + "insect_markings" = pick(GLOB.insect_markings_list), "taur" = "None", "mam_body_markings" = snowflake_markings_list.len ? pick(snowflake_markings_list) : "None", "mam_ears" = snowflake_ears_list ? pick(snowflake_ears_list) : "None", @@ -209,7 +217,7 @@ "ipc_antenna" = "None", "flavor_text" = "", "meat_type" = "Mammalian", - "body_model" = MALE, + "body_model" = body_model, "body_size" = RESIZE_DEFAULT_SIZE )) @@ -311,7 +319,7 @@ GLOBAL_LIST_EMPTY(species_list) else return "unknown" -/proc/do_mob(mob/user , mob/target, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks = null, ignorehelditem = 0) +/proc/do_mob(mob/user , mob/target, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks = null, ignorehelditem = FALSE, resume_time = 0 SECONDS) if(!user || !target) return 0 var/user_loc = user.loc @@ -330,10 +338,10 @@ GLOBAL_LIST_EMPTY(species_list) var/endtime = world.time+time var/starttime = world.time . = 1 - while (world.time < endtime) + while (world.time + resume_time < endtime) stoplag(1) if (progress) - progbar.update(world.time - starttime) + progbar.update(world.time - starttime + resume_time) if(QDELETED(user) || QDELETED(target)) . = 0 break @@ -365,7 +373,7 @@ GLOBAL_LIST_EMPTY(species_list) checked_health["health"] = health return ..() -/proc/do_after(mob/user, var/delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null, required_mobility_flags = (MOBILITY_USE|MOBILITY_MOVE)) +/proc/do_after(mob/user, var/delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null, required_mobility_flags = (MOBILITY_USE|MOBILITY_MOVE), resume_time = 0 SECONDS) if(!user) return 0 var/atom/Tloc = null @@ -394,10 +402,10 @@ GLOBAL_LIST_EMPTY(species_list) var/starttime = world.time . = 1 var/mob/living/L = isliving(user) && user //evals to last thing eval'd - while (world.time < endtime) + while (world.time + resume_time < endtime) stoplag(1) if (progress) - progbar.update(world.time - starttime) + progbar.update(world.time - starttime + resume_time) if(drifting && !user.inertia_dir) drifting = 0 diff --git a/code/__HELPERS/mouse_control.dm b/code/__HELPERS/mouse_control.dm index a69c139d80..10fe976c26 100644 --- a/code/__HELPERS/mouse_control.dm +++ b/code/__HELPERS/mouse_control.dm @@ -11,7 +11,7 @@ var/screenviewY = screenview[2] * world.icon_size var/ox = round(screenviewX/2) - client.pixel_x //"origin" x var/oy = round(screenviewY/2) - client.pixel_y //"origin" y - var/angle = SIMPLIFY_DEGREES(ATAN2(y - oy, x - ox)) + var/angle = SIMPLIFY_DEGREES(arctan(y - oy, x - ox)) return angle //Wow, specific name! diff --git a/code/__HELPERS/radio.dm b/code/__HELPERS/radio.dm index 5fe87bdf5b..dc52299025 100644 --- a/code/__HELPERS/radio.dm +++ b/code/__HELPERS/radio.dm @@ -2,9 +2,9 @@ /proc/sanitize_frequency(frequency, free = FALSE) frequency = round(frequency) if(free) - . = CLAMP(frequency, MIN_FREE_FREQ, MAX_FREE_FREQ) + . = clamp(frequency, MIN_FREE_FREQ, MAX_FREE_FREQ) else - . = CLAMP(frequency, MIN_FREQ, MAX_FREQ) + . = clamp(frequency, MIN_FREQ, MAX_FREQ) if(!(. % 2)) // Ensure the last digit is an odd number . += 1 diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index 7cbfbd040a..aa388d7413 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -563,7 +563,7 @@ if(objective.completable) var/completion = objective.check_completion() if(completion >= 1) - objective_parts += "Objective #[count]: [objective.explanation_text] Success!" + objective_parts += "Objective #[count]: [objective.explanation_text] Success!" else if(completion <= 0) objective_parts += "Objective #[count]: [objective.explanation_text] Fail." else diff --git a/code/__HELPERS/sanitize_values.dm b/code/__HELPERS/sanitize_values.dm index faa8c22f38..dadd4322fb 100644 --- a/code/__HELPERS/sanitize_values.dm +++ b/code/__HELPERS/sanitize_values.dm @@ -6,6 +6,13 @@ return number return default +/proc/sanitize_num_clamp(number, min=0, max=1, default=0, quantize=0) + if(!isnum(number)) + return default + . = clamp(number, min, max) + if(quantize) + . = round(number, quantize) + /proc/sanitize_text(text, default="") if(istext(text)) return text diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 4db9658263..ac68692ebe 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -434,6 +434,29 @@ Turf and target are separate in case you want to teleport some distance from a t return locate(x,y,A.z) +/** + * Get ranged target turf, but with direct targets as opposed to directions + * + * Starts at atom A and gets the exact angle between A and target + * Moves from A with that angle, Range amount of times, until it stops, bound to map size + * Arguments: + * * A - Initial Firer / Position + * * target - Target to aim towards + * * range - Distance of returned target turf from A + * * offset - Angle offset, 180 input would make the returned target turf be in the opposite direction + */ +/proc/get_ranged_target_turf_direct(atom/A, atom/target, range, offset) + var/angle = arctan(target.x - A.x, target.y - A.y) + if(offset) + angle += offset + var/turf/T = get_turf(A) + for(var/i in 1 to range) + var/turf/check = locate(A.x + cos(angle) * i, A.y + sin(angle) * i, A.z) + if(!check) + break + T = check + + return T // returns turf relative to A offset in dx and dy tiles // bound to map limits @@ -777,8 +800,8 @@ GLOBAL_LIST_INIT(WALLITEMS_INVERSE, typecacheof(list( tX = splittext(tX[1], ":") tX = tX[1] var/list/actual_view = getviewsize(C ? C.view : world.view) - tX = CLAMP(origin.x + text2num(tX) - round(actual_view[1] / 2) - 1, 1, world.maxx) - tY = CLAMP(origin.y + text2num(tY) - round(actual_view[2] / 2) - 1, 1, world.maxy) + tX = clamp(origin.x + text2num(tX) - round(actual_view[1] / 2) - 1, 1, world.maxx) + tY = clamp(origin.y + text2num(tY) - round(actual_view[2] / 2) - 1, 1, world.maxy) return locate(tX, tY, tZ) /proc/screen_loc2turf(text, turf/origin, client/C) @@ -791,8 +814,8 @@ GLOBAL_LIST_INIT(WALLITEMS_INVERSE, typecacheof(list( tX = text2num(tX[2]) tZ = origin.z var/list/actual_view = getviewsize(C ? C.view : world.view) - tX = CLAMP(origin.x + round(actual_view[1] / 2) - tX, 1, world.maxx) - tY = CLAMP(origin.y + round(actual_view[2] / 2) - tY, 1, world.maxy) + tX = clamp(origin.x + round(actual_view[1] / 2) - tX, 1, world.maxx) + tY = clamp(origin.y + round(actual_view[2] / 2) - tY, 1, world.maxy) return locate(tX, tY, tZ) /proc/IsValidSrc(datum/D) @@ -1570,7 +1593,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) /proc/blood_sucking_checks(var/mob/living/carbon/target, check_neck, check_blood) //Bypass this if the target isnt carbon. if(!iscarbon(target)) - return TRUE + return TRUE if(check_neck) if(istype(target.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) return FALSE diff --git a/code/_compile_options.dm b/code/_compile_options.dm index fe4761ddcd..9a36c626ba 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -32,31 +32,12 @@ #endif //Update this whenever you need to take advantage of more recent byond features -#define MIN_COMPILER_VERSION 512 -#if DM_VERSION < MIN_COMPILER_VERSION +#define MIN_COMPILER_VERSION 513 +#define MIN_COMPILER_BUILD 1508 +#if DM_VERSION < MIN_COMPILER_VERSION || DM_BUILD < MIN_COMPILER_BUILD //Don't forget to update this part #error Your version of BYOND is too out-of-date to compile this project. Go to https://secure.byond.com/download and update. -#error You need version 512 or higher -#endif - -//Compatability -- These procs were added in 513.1493, not 513.1490 -//Which really shoulda bumped us up to 514 right then and there but instead Lummox is a dumb dumb -#if DM_BUILD < 1493 -#define length_char(args...) length(args) -#define text2ascii_char(args...) text2ascii(args) -#define copytext_char(args...) copytext(args) -#define splittext_char(args...) splittext(args) -#define spantext_char(args...) spantext(args) -#define nonspantext_char(args...) nonspantext(args) -#define findtext_char(args...) findtext(args) -#define findtextEx_char(args...) findtextEx(args) -#define findlasttext_char(args...) findlasttext(args) -#define findlasttextEx_char(args...) findlasttextEx(args) -#define replacetext_char(args...) replacetext(args) -#define replacetextEx_char(args...) replacetextEx(args) -// /regex procs -#define Find_char(args...) Find(args) -#define Replace_char(args...) Replace(args) +#error You need version 513.1508 or higher #endif //Additional code for the above flags. diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index c1ca671044..52eff15492 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -265,5 +265,25 @@ GLOBAL_LIST_INIT(bitfields, list( "STORAGE_LIMIT_MAX_W_CLASS" = STORAGE_LIMIT_MAX_W_CLASS, "STORAGE_LIMIT_COMBINED_W_CLASS" = STORAGE_LIMIT_COMBINED_W_CLASS, "STORAGE_LIMIT_VOLUME" = STORAGE_LIMIT_VOLUME + ), + "mutantrace_variation" = list( + "STYLE_DIGITIGRADE" = STYLE_DIGITIGRADE, + "STYLE_MUZZLE" = STYLE_MUZZLE, + "STYLE_SNEK_TAURIC" = STYLE_SNEK_TAURIC, + "STYLE_PAW_TAURIC" = STYLE_PAW_TAURIC, + "STYLE_HOOF_TAURIC" = STYLE_HOOF_TAURIC, + "STYLE_NO_ANTHRO_ICON" = STYLE_NO_ANTHRO_ICON, + "USE_SNEK_CLIP_MASK" = USE_SNEK_CLIP_MASK, + "USE_QUADRUPED_CLIP_MASK" = USE_QUADRUPED_CLIP_MASK + ), + "vis_flags" = list( + "VIS_INHERIT_ICON" = VIS_INHERIT_ICON, + "VIS_INHERIT_ICON_STATE" = VIS_INHERIT_ICON_STATE, + "VIS_INHERIT_DIR" = VIS_INHERIT_DIR, + "VIS_INHERIT_LAYER" = VIS_INHERIT_LAYER, + "VIS_INHERIT_PLANE" = VIS_INHERIT_PLANE, + "VIS_INHERIT_ID" = VIS_INHERIT_ID, + "VIS_UNDERLAY" = VIS_UNDERLAY, + "VIS_HIDE" = VIS_HIDE ) )) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 968995e81d..aacb1737a2 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -137,8 +137,8 @@ GLOBAL_LIST_INIT(jumpsuitlist, list(PREF_SUIT, PREF_SKIRT)) #define UPLINK_PEN "Pen" //like a real spy! GLOBAL_LIST_INIT(uplink_spawn_loc_list, list(UPLINK_PDA, UPLINK_RADIO, UPLINK_PEN)) - //Female Uniforms -GLOBAL_LIST_EMPTY(female_clothing_icons) +//List of cached alpha masked icons. +GLOBAL_LIST_EMPTY(alpha_masked_worn_icons) //radical shit GLOBAL_LIST_INIT(hit_appends, list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF")) diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index f85503a678..632904202d 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -115,5 +115,6 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/item/autosurgeon/penis = 1, /obj/item/autosurgeon/testicles = 1, /obj/item/storage/box/marshmallow = 2, + /obj/item/clothing/gloves/tackler/offbrand = 1, "" = 3 )) diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm index 1f4a03d996..94b0338412 100644 --- a/code/_globalvars/lists/mapping.dm +++ b/code/_globalvars/lists/mapping.dm @@ -49,3 +49,8 @@ GLOBAL_LIST_EMPTY_TYPED(areas_by_type, /area) GLOBAL_LIST_EMPTY(all_abstract_markers) GLOBAL_LIST_EMPTY(stationroom_landmarks) //List of all spawns for stationrooms + +///Away missions, VR, random z levels stuff. +GLOBAL_LIST_EMPTY(random_zlevels_generated) +GLOBAL_LIST_INIT(potential_away_levels, generateMapList(filename = "[global.config.directory]/awaymissionconfig.txt")) +GLOBAL_LIST_INIT(potential_vr_levels, generateMapList(filename = "[global.config.directory]/vr_config.txt")) diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm index 04d4c2888a..959a62ebf8 100644 --- a/code/_globalvars/lists/mobs.dm +++ b/code/_globalvars/lists/mobs.dm @@ -43,15 +43,26 @@ GLOBAL_LIST_EMPTY(mob_config_movespeed_type_lookup) GLOBAL_LIST_EMPTY(latejoiners) //CIT CHANGE - All latejoining people, for traitor-target purposes. /proc/update_config_movespeed_type_lookup(update_mobs = TRUE) - var/list/mob_types = list() + // NOTE: This is entirely based on the fact that byond typesof/subtypesof gets longer/deeper paths before shallower ones. + // If that ever breaks this entire proc breaks. + var/list/mob_types = typesof(/mob) var/list/entry_value = CONFIG_GET(keyed_list/multiplicative_movespeed) + var/list/configured_types = list() for(var/path in entry_value) var/value = entry_value[path] - if(!value) + if(isnull(value)) continue + // associative list sets for elements that already exist preserve order + mob_types[path] = value + // now go back up through it to set everything, making absolute sure that base paths are overridden by child paths all the way down the path tree. + for(var/i in length(mob_types) to 1 step -1) + var/path = mob_types[i] + if(isnull(mob_types[path])) + continue + // we're going from bottom to top so it should be safe to do this without further checks.. for(var/subpath in typesof(path)) - mob_types[subpath] = value - GLOB.mob_config_movespeed_type_lookup = mob_types + configured_types[subpath] = mob_types[path] + GLOB.mob_config_movespeed_type_lookup = configured_types if(update_mobs) update_mob_config_movespeeds() diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm index af483bf888..b039e6d114 100644 --- a/code/_globalvars/misc.dm +++ b/code/_globalvars/misc.dm @@ -33,3 +33,5 @@ GLOBAL_VAR(bible_icon_state) GLOBAL_VAR(bible_item_state) GLOBAL_VAR(holy_weapon_type) GLOBAL_VAR(holy_armor_type) + +GLOBAL_VAR_INIT(internal_tick_usage, 0.2 * world.tick_lag) diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm new file mode 100644 index 0000000000..dd8b9f0d94 --- /dev/null +++ b/code/_globalvars/traits.dm @@ -0,0 +1,138 @@ +/* + FUN ZONE OF ADMIN LISTINGS + Try to keep this in sync with __DEFINES/traits.dm + quirks have it's own panel so we don't need them here. +*/ + +GLOBAL_LIST_INIT(traits_by_type, list( + /mob = list( + "TRAIT_BLIND" = TRAIT_BLIND, + "TRAIT_MUTE" = TRAIT_MUTE, + "TRAIT_EMOTEMUTE " = TRAIT_EMOTEMUTE, + "TRAIT_DEAF" = TRAIT_DEAF, + "TRAIT_NEARSIGHT" = TRAIT_NEARSIGHT, + "TRAIT_FAT" = TRAIT_FAT, + "TRAIT_HUSK" = TRAIT_HUSK, + "TRAIT_NOCLONE" = TRAIT_NOCLONE, + "TRAIT_CLUMSY" = TRAIT_CLUMSY, + "TRAIT_CHUNKYFINGERS" = TRAIT_CHUNKYFINGERS, + "TRAIT_DUMB" = TRAIT_DUMB, + "TRAIT_MONKEYLIKE" = TRAIT_MONKEYLIKE, + "TRAIT_PACIFISM" = TRAIT_PACIFISM, + "TRAIT_IGNORESLOWDOWN" = TRAIT_IGNORESLOWDOWN, + "TRAIT_DEATHCOMA" = TRAIT_DEATHCOMA, + "TRAIT_FAKEDEATH" = TRAIT_FAKEDEATH, + "TRAIT_DISFIGURED" = TRAIT_DISFIGURED, + "TRAIT_XENO_HOST" = TRAIT_XENO_HOST, + "TRAIT_STUNIMMUNE" = TRAIT_STUNIMMUNE, + "TRAIT_TASED_RESISTANCE" = TRAIT_TASED_RESISTANCE, + "TRAIT_SLEEPIMMUNE" = TRAIT_SLEEPIMMUNE, + "TRAIT_PUSHIMMUNE" = TRAIT_PUSHIMMUNE, + "TRAIT_SHOCKIMMUNE" = TRAIT_SHOCKIMMUNE, + "TRAIT_STABLEHEART" = TRAIT_STABLEHEART, + "TRAIT_STABLELIVER" = TRAIT_STABLELIVER, + "TRAIT_RESISTHEAT" = TRAIT_RESISTHEAT, + "TRAIT_RESISTHEATHANDS" = TRAIT_RESISTHEATHANDS, + "TRAIT_RESISTCOLD" = TRAIT_RESISTCOLD, + "TRAIT_RESISTHIGHPRESSURE" = TRAIT_RESISTHIGHPRESSURE, + "TRAIT_RESISTLOWPRESSURE" = TRAIT_RESISTLOWPRESSURE, + "TRAIT_RADIMMUNE" = TRAIT_RADIMMUNE, + "TRAIT_VIRUSIMMUNE" = TRAIT_VIRUSIMMUNE, + "TRAIT_PIERCEIMMUNE" = TRAIT_PIERCEIMMUNE, + "TRAIT_NODISMEMBER" = TRAIT_NODISMEMBER, + "TRAIT_NOFIRE" = TRAIT_NOFIRE, + "TRAIT_NOGUNS" = TRAIT_NOGUNS, + "TRAIT_NOHUNGER" = TRAIT_NOHUNGER, + "TRAIT_EASYDISMEMBER" = TRAIT_EASYDISMEMBER, + "TRAIT_LIMBATTACHMENT" = TRAIT_LIMBATTACHMENT, + "TRAIT_NOLIMBDISABLE" = TRAIT_NOLIMBDISABLE, + "TRAIT_EASYLIMBDISABLE" = TRAIT_EASYLIMBDISABLE, + "TRAIT_TOXINLOVER" = TRAIT_TOXINLOVER, + "TRAIT_NOBREATH" = TRAIT_NOBREATH, + "TRAIT_ANTIMAGIC" = TRAIT_ANTIMAGIC, + "TRAIT_HOLY" = TRAIT_HOLY, + "TRAIT_DEPRESSION" = TRAIT_DEPRESSION, + "TRAIT_JOLLY" = TRAIT_JOLLY, + "TRAIT_NOCRITDAMAGE" = TRAIT_NOCRITDAMAGE, + "TRAIT_NOSLIPWATER" = TRAIT_NOSLIPWATER, + "TRAIT_NOSLIPALL" = TRAIT_NOSLIPALL, + "TRAIT_NODEATH" = TRAIT_NODEATH, + "TRAIT_NOHARDCRIT" = TRAIT_NOHARDCRIT, + "TRAIT_NOSOFTCRIT" = TRAIT_NOSOFTCRIT, + "TRAIT_MINDSHIELD" = TRAIT_MINDSHIELD, + "TRAIT_HIJACKER" = TRAIT_HIJACKER, + "TRAIT_DISSECTED" = TRAIT_DISSECTED, + "TRAIT_SIXTHSENSE" = TRAIT_SIXTHSENSE, + "TRAIT_FEARLESS" = TRAIT_FEARLESS, + "TRAIT_PARALYSIS_L_ARM" = TRAIT_PARALYSIS_L_ARM, + "TRAIT_PARALYSIS_R_ARM" = TRAIT_PARALYSIS_R_ARM, + "TRAIT_PARALYSIS_L_LEG" = TRAIT_PARALYSIS_L_LEG, + "TRAIT_PARALYSIS_R_LEG" = TRAIT_PARALYSIS_R_LEG, + "TRAIT_DISK_VERIFIER" = TRAIT_DISK_VERIFIER, + "TRAIT_XRAY_VISION" = TRAIT_XRAY_VISION, + "TRAIT_THERMAL_VISION" = TRAIT_THERMAL_VISION, + "TRAIT_ABDUCTOR_TRAINING" = TRAIT_ABDUCTOR_TRAINING, + "TRAIT_ABDUCTOR_SCIENTIST_TRAINING" = TRAIT_ABDUCTOR_SCIENTIST_TRAINING, + "TRAIT_SURGEON" = TRAIT_SURGEON, + "TRAIT_STRONG_GRABBER" = TRAIT_STRONG_GRABBER, + "TRAIT_MAGIC_CHOKE" = TRAIT_MAGIC_CHOKE, + "TRAIT_SOOTHED_THROAT" = TRAIT_SOOTHED_THROAT, + "TRAIT_LAW_ENFORCEMENT_METABOLISM" = TRAIT_LAW_ENFORCEMENT_METABOLISM, + "TRAIT_UNINTELLIGIBLE_SPEECH" = TRAIT_UNINTELLIGIBLE_SPEECH, + "TRAIT_UNSTABLE" = TRAIT_UNSTABLE, + "TRAIT_COLDBLOODED" = TRAIT_COLDBLOODED, + "TRAIT_NONATURALHEAL" = TRAIT_NONATURALHEAL, + "TRAIT_NORUNNING" = TRAIT_NORUNNING, + "TRAIT_NOMARROW" = TRAIT_NOMARROW, + "TRAIT_NOPULSE" = TRAIT_NOPULSE, + "TRAIT_EXEMPT_HEALTH_EVENTS" = TRAIT_EXEMPT_HEALTH_EVENTS, + "TRAIT_NO_MIDROUND_ANTAG" = TRAIT_NO_MIDROUND_ANTAG, + "TRAIT_PUGILIST" = TRAIT_PUGILIST, + "TRAIT_KI_VAMPIRE" = TRAIT_KI_VAMPIRE, + "TRAIT_PASSTABLE" = TRAIT_PASSTABLE, + "TRAIT_GIANT" = TRAIT_GIANT, + "TRAIT_DWARF" = TRAIT_DWARF, + "TRAIT_COMBAT_MODE_LOCKED" = TRAIT_COMBAT_MODE_LOCKED, + "TRAIT_SPRINT_LOCKED" = TRAIT_SPRINT_LOCKED, + "TRAIT_AUTO_CATCH_ITEM" = TRAIT_AUTO_CATCH_ITEM, + "TRAIT_FREESPRINT" = TRAIT_FREESPRINT, + "TRAIT_NO_INTERNALS" = TRAIT_NO_INTERNALS, + "TRAIT_NO_ALCOHOL" = TRAIT_NO_ALCOHOL, + "TRAIT_MUTATION_STASIS" = TRAIT_MUTATION_STASIS, + "TRAIT_HEAVY_SLEEPER" = TRAIT_HEAVY_SLEEPER, + "TRAIT_LIGHT_STEP" = TRAIT_LIGHT_STEP, + "TRAIT_SILENT_STEP" = TRAIT_SILENT_STEP, + "TRAIT_VORACIOUS" = TRAIT_VORACIOUS, + "TRAIT_SELF_AWARE" = TRAIT_SELF_AWARE, + "TRAIT_FREERUNNING" = TRAIT_FREERUNNING, + "TRAIT_SKITTISH" = TRAIT_SKITTISH, + "TRAIT_POOR_AIM" = TRAIT_POOR_AIM, + "TRAIT_PROSOPAGNOSIA" = TRAIT_PROSOPAGNOSIA, + "TRAIT_DRUNK_HEALING" = TRAIT_DRUNK_HEALING, + "TRAIT_TAGGER" = TRAIT_TAGGER, + "TRAIT_PHOTOGRAPHER" = TRAIT_PHOTOGRAPHER, + "TRAIT_MUSICIAN" = TRAIT_MUSICIAN, + "TRAIT_MASO" = TRAIT_MASO, + "TRAIT_HIGH_BLOOD" = TRAIT_HIGH_BLOOD, + "TRAIT_EMPATH" = TRAIT_EMPATH, + "TRAIT_FRIENDLY" = TRAIT_FRIENDLY + ), + /obj/item/bodypart = list( + "TRAIT_PARALYSIS" = TRAIT_PARALYSIS + ), + /obj/item = list( + "TRAIT_NODROP" = TRAIT_NODROP, + "TRAIT_NO_TELEPORT" = TRAIT_NO_TELEPORT + ) + )) + + +/// value -> trait name, generated on use from trait_by_type global +GLOBAL_LIST(trait_name_map) + +/proc/generate_trait_name_map() + . = list() + for(var/key in GLOB.traits_by_type) + for(var/tname in GLOB.traits_by_type[key]) + var/val = GLOB.traits_by_type[key][tname] + .[val] = tname diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 46c2c919f4..9ce96585d3 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -75,6 +75,9 @@ if(notransform) return + if(SEND_SIGNAL(src, COMSIG_MOB_CLICKON, A, params) & COMSIG_MOB_CANCEL_CLICKON) + return + var/list/modifiers = params2list(params) if(modifiers["shift"] && modifiers["middle"]) ShiftMiddleClickOn(A) diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index 28fd7397b0..4b963c730d 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -162,7 +162,7 @@ #define ui_ghost_orbit "SOUTH:6,CENTER-1:24" #define ui_ghost_reenter_corpse "SOUTH:6,CENTER:24" #define ui_ghost_teleport "SOUTH:6,CENTER+1:24" -#define ui_ghost_pai "SOUTH: 6, CENTER+2:24" +#define ui_ghost_spawners "SOUTH: 6, CENTER+2:24" //UI position overrides for 1:1 screen layout. (default is 7:5) diff --git a/code/_onclick/hud/ghost.dm b/code/_onclick/hud/ghost.dm index 14da637f18..0cdac111b0 100644 --- a/code/_onclick/hud/ghost.dm +++ b/code/_onclick/hud/ghost.dm @@ -36,13 +36,13 @@ var/mob/dead/observer/G = usr G.dead_tele() -/obj/screen/ghost/pai - name = "pAI Candidate" - icon_state = "pai" +/obj/screen/ghost/spawners + name = "Ghost role spawners" + icon_state = "spawners" -/obj/screen/ghost/pai/Click() +/obj/screen/ghost/spawners/Click() var/mob/dead/observer/G = usr - G.register_pai() + G.open_spawners_menu() /datum/hud/ghost/New(mob/owner) ..() @@ -68,8 +68,8 @@ using.hud = src static_inventory += using - using = new /obj/screen/ghost/pai() - using.screen_loc = ui_ghost_pai + using = new /obj/screen/ghost/spawners() + using.screen_loc = ui_ghost_spawners using.hud = src static_inventory += using diff --git a/code/_onclick/hud/picture_in_picture.dm b/code/_onclick/hud/picture_in_picture.dm index e028212e96..5e474331f6 100644 --- a/code/_onclick/hud/picture_in_picture.dm +++ b/code/_onclick/hud/picture_in_picture.dm @@ -102,8 +102,8 @@ add_overlay(standard_background) /obj/screen/movable/pic_in_pic/proc/set_view_size(width, height, do_refresh = TRUE) - width = CLAMP(width, 0, max_dimensions) - height = CLAMP(height, 0, max_dimensions) + width = clamp(width, 0, max_dimensions) + height = clamp(height, 0, max_dimensions) src.width = width src.height = height diff --git a/code/_onclick/hud/plane_master.dm b/code/_onclick/hud/plane_master.dm index 7a8cc20d76..a0dade37bd 100644 --- a/code/_onclick/hud/plane_master.dm +++ b/code/_onclick/hud/plane_master.dm @@ -19,7 +19,7 @@ ///Things rendered on "openspace"; holes in multi-z /obj/screen/plane_master/openspace name = "open space plane master" - plane = FLOOR_OPENSPACE_PLANE + plane = OPENSPACE_BACKDROP_PLANE appearance_flags = PLANE_MASTER blend_mode = BLEND_MULTIPLY alpha = 255 @@ -106,8 +106,8 @@ * * You really shouldn't be directly using this, use atom helpers instead */ -/obj/screen/plane_master/emissive_unblockable - name = "emissive mob plane master" +/obj/screen/plane_master/emissive_blocker + name = "emissive blocker plane master" plane = EMISSIVE_BLOCKER_PLANE mouse_opacity = MOUSE_OPACITY_TRANSPARENT render_target = EMISSIVE_BLOCKER_RENDER_TARGET diff --git a/code/_onclick/hud/radial.dm b/code/_onclick/hud/radial.dm index df91223ed1..1dce4ecc42 100644 --- a/code/_onclick/hud/radial.dm +++ b/code/_onclick/hud/radial.dm @@ -255,6 +255,7 @@ GLOBAL_LIST_EMPTY(radial_menus) current_user = M.client //Blank menu_holder = image(icon='icons/effects/effects.dmi',loc=anchor,icon_state="nothing",layer = ABOVE_HUD_LAYER) + menu_holder.plane = ABOVE_HUD_PLANE menu_holder.appearance_flags |= KEEP_APART menu_holder.vis_contents += elements + close_button current_user.images += menu_holder @@ -285,13 +286,16 @@ GLOBAL_LIST_EMPTY(radial_menus) Choices should be a list where list keys are movables or text used for element names and return value and list values are movables/icons/images used for element icons */ -/proc/show_radial_menu(mob/user, atom/anchor, list/choices, uniqueid, radius, datum/callback/custom_check, require_near = FALSE, tooltips = FALSE) +/proc/show_radial_menu(mob/user, atom/anchor, list/choices, uniqueid, radius, datum/callback/custom_check, require_near = FALSE, tooltips = FALSE, no_repeat_close = FALSE) if(!user || !anchor || !length(choices)) return if(!uniqueid) uniqueid = "defmenu_[REF(user)]_[REF(anchor)]" if(GLOB.radial_menus[uniqueid]) + if(!no_repeat_close) + var/datum/radial_menu/menu = GLOB.radial_menus[uniqueid] + menu.finished = TRUE return var/datum/radial_menu/menu = new @@ -308,4 +312,9 @@ GLOBAL_LIST_EMPTY(radial_menus) var/answer = menu.selected_choice qdel(menu) GLOB.radial_menus -= uniqueid + if(require_near && !in_range(anchor, user)) + return + if(istype(custom_check)) + if(!custom_check.Invoke()) + return return answer \ No newline at end of file diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index b0e1d39d9a..33cfef03c7 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -91,7 +91,7 @@ log_combat(user, M, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])") add_fingerprint(user) - user.adjustStaminaLossBuffered(getweight()*0.8)//CIT CHANGE - makes attacking things cause stamina loss + user.adjustStaminaLossBuffered(getweight(user, STAM_COST_ATTACK_MOB_MULT))//CIT CHANGE - makes attacking things cause stamina loss //the equivalent of the standard version of attack() but for object targets. /obj/item/proc/attack_obj(obj/O, mob/living/user) @@ -102,7 +102,7 @@ if(IS_STAMCRIT(user)) // CIT CHANGE - makes it impossible to attack in stamina softcrit to_chat(user, "You're too exhausted.") // CIT CHANGE - ditto return // CIT CHANGE - ditto - user.adjustStaminaLossBuffered(getweight()*1.2)//CIT CHANGE - makes attacking things cause stamina loss + user.adjustStaminaLossBuffered(getweight(user, STAM_COST_ATTACK_OBJ_MULT))//CIT CHANGE - makes attacking things cause stamina loss user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation(O) O.attacked_by(src, user) @@ -111,26 +111,32 @@ return /obj/attacked_by(obj/item/I, mob/living/user) - if(I.force) + var/totitemdamage = I.force + var/bad_flag = NONE + if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) && iscarbon(user)) + totitemdamage *= 0.5 + bad_flag |= SKILL_COMBAT_MODE //blacklist combat skills. + if(I.used_skills && user.mind) + if(totitemdamage) + totitemdamage = user.mind.skill_holder.item_action_skills_mod(I, totitemdamage, I.skill_difficulty, SKILL_ATTACK_OBJ, bad_flag) + for(var/skill in I.used_skills) + if(!(I.used_skills[skill] & SKILL_TRAIN_ATTACK_OBJ)) + continue + user.mind.skill_holder.auto_gain_experience(skill, I.skill_gain) + if(totitemdamage) visible_message("[user] has hit [src] with [I]!", null, null, COMBAT_MESSAGE_RANGE) //only witnesses close by and the victim see a hit message. log_combat(user, src, "attacked", I) - take_damage(I.force, I.damtype, "melee", 1) + take_damage(totitemdamage, I.damtype, "melee", 1) /mob/living/attacked_by(obj/item/I, mob/living/user) - //CIT CHANGES START HERE - combatmode and resting checks - var/totitemdamage = I.force - if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) - totitemdamage *= 0.5 - if(!CHECK_MOBILITY(user, MOBILITY_STAND)) - totitemdamage *= 0.5 - //CIT CHANGES END HERE - if((user != src) && run_block(I, totitemdamage, "the [I.name]", ATTACK_TYPE_MELEE, I.armour_penetration, user) & BLOCK_SUCCESS) + var/totitemdamage = pre_attacked_by(I, user) + if((user != src) && mob_run_block(I, totitemdamage, "the [I.name]", ATTACK_TYPE_MELEE, I.armour_penetration, user, null, null) & BLOCK_SUCCESS) return FALSE send_item_attack_message(I, user) - I.do_stagger_action(src, user) + I.do_stagger_action(src, user, totitemdamage) if(I.force) - apply_damage(totitemdamage, I.damtype) //CIT CHANGE - replaces I.force with totitemdamage + apply_damage(totitemdamage, I.damtype) if(I.damtype == BRUTE) if(prob(33)) I.add_mob_blood(src) @@ -146,6 +152,28 @@ else return ..() +/mob/living/proc/pre_attacked_by(obj/item/I, mob/living/user) + . = I.force + var/bad_flag = NONE + if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) && iscarbon(user)) + . *= 0.5 + bad_flag |= SKILL_COMBAT_MODE //blacklist combat skills. + if(!CHECK_MOBILITY(user, MOBILITY_STAND)) + . *= 0.5 + if(!user.mind || !I.used_skills) + return + if(.) + . = user.mind.skill_holder.item_action_skills_mod(I, ., I.skill_difficulty, SKILL_ATTACK_MOB, bad_flag) + for(var/skill in I.used_skills) + if(!(I.used_skills[skill] & SKILL_TRAIN_ATTACK_MOB)) + continue + user.mind.skill_holder.auto_gain_experience(skill, I.skill_gain) + +/mob/living/carbon/pre_attacked_by(obj/item/I, mob/living/user) + . = ..() + if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + . *= 1.5 + // Proximity_flag is 1 if this afterattack was called on something adjacent, in your square, or on your person. // Click parameters is the params string from byond Click() code, see that documentation. /obj/item/proc/afterattack(atom/target, mob/user, proximity_flag, click_parameters) @@ -155,9 +183,9 @@ /obj/item/proc/get_clamped_volume() if(w_class) if(force) - return CLAMP((force + w_class) * 4, 30, 100)// Add the item's force to its weight class and multiply by 4, then clamp the value between 30 and 100 + return clamp((force + w_class) * 4, 30, 100)// Add the item's force to its weight class and multiply by 4, then clamp the value between 30 and 100 else - return CLAMP(w_class * 6, 10, 100) // Multiply the item's weight class by 6, then clamp the value between 10 and 100 + return clamp(w_class * 6, 10, 100) // Multiply the item's weight class by 6, then clamp the value between 10 and 100 /mob/living/proc/send_item_attack_message(obj/item/I, mob/living/user, hit_area) var/message_verb = "attacked" @@ -179,22 +207,30 @@ return 1 /// How much stamina this takes to swing this is not for realism purposes hecc off. -/obj/item/proc/getweight() - return total_mass || w_class * 1.25 +/obj/item/proc/getweight(mob/living/user, multiplier = 1, flags = SKILL_STAMINA_COST) + . = (total_mass || w_class * STAM_COST_W_CLASS_MULT) * multiplier + if(!user) + return + var/bad_flag = NONE + if(iscarbon(user) && !(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + . *= STAM_COST_NO_COMBAT_MULT + bad_flag |= SKILL_COMBAT_MODE + if(used_skills && user.mind) + . = user.mind.skill_holder.item_action_skills_mod(src, ., skill_difficulty, flags, bad_flag, FALSE) /// How long this staggers for. 0 and negatives supported. -/obj/item/proc/melee_stagger_duration() +/obj/item/proc/melee_stagger_duration(force_override) if(!isnull(stagger_force)) return stagger_force /// totally not an untested, arbitrary equation. - return clamp((1.5 + (w_class/7.5)) * (force / 2), 0, 10 SECONDS) + return clamp((1.5 + (w_class/7.5)) * ((force_override || force) / 2), 0, 10 SECONDS) -/obj/item/proc/do_stagger_action(mob/living/target, mob/living/user) +/obj/item/proc/do_stagger_action(mob/living/target, mob/living/user, force_override) if(!CHECK_BITFIELD(target.status_flags, CANSTAGGER)) return FALSE if(target.combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) target.do_staggered_animation() - var/duration = melee_stagger_duration() + var/duration = melee_stagger_duration(force_override) if(!duration) //0 return FALSE else if(duration > 0) diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm index b6782f883a..ed7384697c 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -5,7 +5,7 @@ return // seems legit. // Things you might plausibly want to follow - if(ismovableatom(A)) + if(ismovable(A)) ManualFollow(A) // Otherwise jump diff --git a/code/controllers/admin.dm b/code/controllers/admin.dm index 19fef28597..28803f0979 100644 --- a/code/controllers/admin.dm +++ b/code/controllers/admin.dm @@ -3,9 +3,7 @@ name = "Initializing..." var/target -INITIALIZE_IMMEDIATE(/obj/effect/statclick) - -/obj/effect/statclick/Initialize(mapload, text, target) //Don't port this to Initialize it's too critical +/obj/effect/statclick/New(loc, text, target) //Don't port this to Initialize it's too critical . = ..() name = text src.target = target @@ -33,6 +31,14 @@ INITIALIZE_IMMEDIATE(/obj/effect/statclick) usr.client.debug_variables(target) message_admins("Admin [key_name_admin(usr)] is debugging the [target] [class].") +/obj/effect/statclick/misc_subsystems/Click() + if(!usr.client.holder) + return + var/subsystem = input(usr, "Debug which subsystem?", "Debug nonprocessing subsystem") as null|anything in (Master.subsystems - Master.statworthy_subsystems) + if(!subsystem) + return + usr.client.debug_variables(subsystem) + message_admins("Admin [key_name_admin(usr)] is debugging the [subsystem] subsystem.") // Debug verbs. /client/proc/restart_controller(controller in list("Master", "Failsafe")) diff --git a/code/controllers/configuration/config_entry.dm b/code/controllers/configuration/config_entry.dm index d7323700e4..4647b83cd7 100644 --- a/code/controllers/configuration/config_entry.dm +++ b/code/controllers/configuration/config_entry.dm @@ -103,7 +103,7 @@ return FALSE var/temp = text2num(trim(str_val)) if(!isnull(temp)) - config_entry_value = CLAMP(integer ? round(temp) : temp, min_val, max_val) + config_entry_value = clamp(integer ? round(temp) : temp, min_val, max_val) if(config_entry_value != temp && !(datum_flags & DF_VAR_EDITED)) log_config("Changing [name] from [temp] to [config_entry_value]!") return TRUE diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index cb18d37f21..2eefb82f97 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -35,6 +35,13 @@ /datum/config_entry/keyed_list/midround_antag/ValidateListEntry(key_name, key_value) return key_name in config.modes +/datum/config_entry/keyed_list/force_antag_count + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_FLAG + +/datum/config_entry/keyed_list/force_antag_count/ValidateListEntry(key_name, key_value) + return key_name in config.modes + /datum/config_entry/keyed_list/policy key_mode = KEY_MODE_TEXT value_mode = VALUE_MODE_TEXT @@ -217,7 +224,8 @@ config_entry_value = list( //DEFAULTS /mob/living/simple_animal = 1, /mob/living/silicon/pai = 1, - /mob/living/carbon/alien/humanoid/hunter = -1, + /mob/living/carbon/alien/humanoid/sentinel = 0.25, + /mob/living/carbon/alien/humanoid/drone = 0.5, /mob/living/carbon/alien/humanoid/royal/praetorian = 1, /mob/living/carbon/alien/humanoid/royal/queen = 3 ) @@ -248,8 +256,18 @@ /datum/config_entry/number/movedelay/run_delay +/datum/config_entry/number/movedelay/run_delay/ValidateAndSet() + . = ..() + var/datum/movespeed_modifier/config_walk_run/M = get_cached_movespeed_modifier(/datum/movespeed_modifier/config_walk_run/run) + M.sync() + /datum/config_entry/number/movedelay/walk_delay +/datum/config_entry/number/movedelay/walk_delay/ValidateAndSet() + . = ..() + var/datum/movespeed_modifier/config_walk_run/M = get_cached_movespeed_modifier(/datum/movespeed_modifier/config_walk_run/walk) + M.sync() + /datum/config_entry/number/movedelay/sprint_speed_increase config_entry_value = 1 @@ -288,6 +306,8 @@ /datum/config_entry/flag/roundstart_away //Will random away mission be loaded. +/datum/config_entry/flag/roundstart_vr //Will virtual reality missions be loaded? + /datum/config_entry/number/gateway_delay //How long the gateway takes before it activates. Default is half an hour. Only matters if roundstart_away is enabled. config_entry_value = 18000 min_val = 0 @@ -335,6 +355,11 @@ config_entry_value = 16 min_val = 0 +/datum/config_entry/number/icemoon_budget + config_entry_value = 90 + integer = FALSE + min_val = 0 + /datum/config_entry/number/station_space_budget config_entry_value = 10 min_val = 0 @@ -455,10 +480,12 @@ config_entry_value = RESIZE_DEFAULT_SIZE min_val = 0.1 //to avoid issues with zeros and negative values. max_val = RESIZE_DEFAULT_SIZE + integer = FALSE /datum/config_entry/number/body_size_max config_entry_value = RESIZE_DEFAULT_SIZE min_val = RESIZE_DEFAULT_SIZE + integer = FALSE //Pun-Pun movement slowdown given to characters with a body size smaller than this value, //to compensate for their smaller hitbox. @@ -467,13 +494,14 @@ config_entry_value = RESIZE_DEFAULT_SIZE * 0.85 min_val = 0 max_val = RESIZE_DEFAULT_SIZE + integer = FALSE //multiplicative slowdown multiplier. See 'dna.update_body_size' for the operation. //doesn't apply to floating or crawling mobs /datum/config_entry/number/body_size_slowdown_multiplier config_entry_value = 0.25 min_val = 0.1 //To encourage folks to disable the slowdown through the above config instead. + integer = FALSE //Allows players to set a hexadecimal color of their choice as skin tone, on top of the standard ones. -/datum/config_entry/number/allow_custom_skintones - config_entry_value = 1 +/datum/config_entry/flag/allow_custom_skintones diff --git a/code/controllers/master.dm b/code/controllers/master.dm index 8772fac5af..cdbea1de85 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -28,6 +28,8 @@ GLOBAL_REAL(Master, /datum/controller/master) = new // List of subsystems to process(). var/list/subsystems + /// List of subsystems to include in the MC stat panel. + var/list/statworthy_subsystems // Vars for keeping track of tick drift. var/init_timeofday @@ -36,6 +38,9 @@ GLOBAL_REAL(Master, /datum/controller/master) = new var/sleep_delta = 1 + ///Only run ticker subsystems for the next n ticks. + var/skip_ticks = 0 + var/make_runtime = 0 var/initializations_finished_with_no_players_logged_in //I wonder what this could be? @@ -62,6 +67,9 @@ GLOBAL_REAL(Master, /datum/controller/master) = new //used by CHECK_TICK as well so that the procs subsystems call can obey that SS's tick limits var/static/current_ticklimit = TICK_LIMIT_RUNNING + /// Statclick for misc subsystems + var/obj/effect/statclick/misc_subsystems/misc_statclick + /datum/controller/master/New() if(!config) config = new @@ -84,6 +92,11 @@ GLOBAL_REAL(Master, /datum/controller/master) = new _subsystems += new I Master = src + // We want to see all subsystems during init. + statworthy_subsystems = subsystems.Copy() + + misc_statclick = new(null, "Debug") + if(!GLOB) new /datum/controller/global_vars @@ -254,10 +267,14 @@ GLOBAL_REAL(Master, /datum/controller/master) = new var/list/tickersubsystems = list() var/list/runlevel_sorted_subsystems = list(list()) //ensure we always have at least one runlevel var/timer = world.time + statworthy_subsystems = list() for (var/thing in subsystems) var/datum/controller/subsystem/SS = thing if (SS.flags & SS_NO_FIRE) + if(SS.flags & SS_ALWAYS_SHOW_STAT) + statworthy_subsystems += SS continue + statworthy_subsystems += SS SS.queued_time = 0 SS.queue_next = null SS.queue_prev = null @@ -335,7 +352,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new new/datum/controller/failsafe() // (re)Start the failsafe. //now do the actual stuff - if (!queue_head || !(iteration % 3)) + if (!skip_ticks) var/checking_runlevel = current_runlevel if(cached_runlevel != checking_runlevel) //resechedule subsystems @@ -381,6 +398,8 @@ GLOBAL_REAL(Master, /datum/controller/master) = new iteration++ last_run = world.time + if (skip_ticks) + skip_ticks-- src.sleep_delta = MC_AVERAGE_FAST(src.sleep_delta, sleep_delta) current_ticklimit = TICK_LIMIT_RUNNING if (processing * sleep_delta <= world.tick_lag) @@ -444,10 +463,12 @@ GLOBAL_REAL(Master, /datum/controller/master) = new while (queue_node) if (ran && TICK_USAGE > TICK_LIMIT_RUNNING) break - queue_node_flags = queue_node.flags queue_node_priority = queue_node.queued_priority + if (!(queue_node_flags & SS_TICKER) && skip_ticks) + queue_node = queue_node.queue_next + continue //super special case, subsystems where we can't make them pause mid way through //if we can't run them this tick (without going over a tick) //we bump up their priority and attempt to run them next tick @@ -455,14 +476,15 @@ GLOBAL_REAL(Master, /datum/controller/master) = new // in those cases, so we just let them run) if (queue_node_flags & SS_NO_TICK_CHECK) if (queue_node.tick_usage > TICK_LIMIT_RUNNING - TICK_USAGE && ran_non_ticker) - queue_node.queued_priority += queue_priority_count * 0.1 - queue_priority_count -= queue_node_priority - queue_priority_count += queue_node.queued_priority - current_tick_budget -= queue_node_priority - queue_node = queue_node.queue_next + if (!(queue_node_flags & SS_BACKGROUND)) + queue_node.queued_priority += queue_priority_count * 0.1 + queue_priority_count -= queue_node_priority + queue_priority_count += queue_node.queued_priority + current_tick_budget -= queue_node_priority + queue_node = queue_node.queue_next continue - if ((queue_node_flags & SS_BACKGROUND) && !bg_calc) + if (!bg_calc && (queue_node_flags & SS_BACKGROUND)) current_tick_budget = queue_priority_count_bg bg_calc = TRUE @@ -515,7 +537,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new queue_node.paused_ticks = 0 queue_node.paused_tick_usage = 0 - if (queue_node_flags & SS_BACKGROUND) //update our running total + if (bg_calc) //update our running total queue_priority_count_bg -= queue_node_priority else queue_priority_count -= queue_node_priority @@ -583,14 +605,19 @@ GLOBAL_REAL(Master, /datum/controller/master) = new log_world("MC: SoftReset: Finished.") . = 1 +/// Warns us that the end of tick byond map_update will be laggier then normal, so that we can just skip running subsystems this tick. +/datum/controller/master/proc/laggy_byond_map_update_incoming() + if (!skip_ticks) + skip_ticks = 1 /datum/controller/master/stat_entry() if(!statclick) statclick = new/obj/effect/statclick/debug(null, "Initializing...", src) - stat("Byond:", "(FPS:[world.fps]) (TickCount:[world.time/world.tick_lag]) (TickDrift:[round(Master.tickdrift,1)]([round((Master.tickdrift/(world.time/world.tick_lag))*100,0.1)]%))") - stat("Master Controller:", statclick.update("(TickRate:[Master.processing]) (Iteration:[Master.iteration])")) + stat("Byond:", "(FPS:[world.fps]) (TickCount:[world.time/world.tick_lag]) (TickDrift:[round(Master.tickdrift,1)]([round((Master.tickdrift/(world.time/world.tick_lag))*100,0.1)]%)) (Internal Tick Usage: [round(MAPTICK_LAST_INTERNAL_TICK_USAGE,0.1)]%)") + stat("Master Controller:", statclick.update("(TickRate:[Master.processing]) (Iteration:[Master.iteration]) (TickLimit: [round(Master.current_ticklimit, 0.1)])")) + stat("Misc Subsystems", misc_statclick) /datum/controller/master/StartLoadingMap() //disallow more than one map to load at once, multithreading it will just cause race conditions diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index 13facc7666..d8c7724333 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -1,11 +1,3 @@ -#define SSAIR_PIPENETS 1 -#define SSAIR_ATMOSMACHINERY 2 -#define SSAIR_REACTQUEUE 3 -#define SSAIR_EXCITEDGROUPS 4 -#define SSAIR_HIGHPRESSURE 5 -#define SSAIR_HOTSPOTS 6 -#define SSAIR_SUPERCONDUCTIVITY 7 - SUBSYSTEM_DEF(air) name = "Atmospherics" init_order = INIT_ORDER_AIR @@ -20,6 +12,7 @@ SUBSYSTEM_DEF(air) var/cost_hotspots = 0 var/cost_superconductivity = 0 var/cost_pipenets = 0 + var/cost_rebuilds = 0 var/cost_atmos_machinery = 0 var/list/excited_groups = list() @@ -27,6 +20,7 @@ SUBSYSTEM_DEF(air) var/list/turf_react_queue = list() var/list/hotspots = list() var/list/networks = list() + var/list/pipenets_needing_rebuilt = list() var/list/obj/machinery/atmos_machinery = list() var/list/pipe_init_dirs_cache = list() @@ -39,7 +33,7 @@ SUBSYSTEM_DEF(air) var/list/currentrun = list() - var/currentpart = SSAIR_PIPENETS + var/currentpart = SSAIR_REBUILD_PIPENETS var/map_loading = TRUE var/list/queued_for_activation @@ -52,6 +46,7 @@ SUBSYSTEM_DEF(air) msg += "HS:[round(cost_hotspots,1)]|" msg += "SC:[round(cost_superconductivity,1)]|" msg += "PN:[round(cost_pipenets,1)]|" + msg += "RB:[round(cost_rebuilds,1)]|" msg += "AM:[round(cost_atmos_machinery,1)]" msg += "} " msg += "AT:[active_turfs.len]|" @@ -77,6 +72,18 @@ SUBSYSTEM_DEF(air) /datum/controller/subsystem/air/fire(resumed = 0) var/timer = TICK_USAGE_REAL + if(currentpart == SSAIR_REBUILD_PIPENETS) + var/list/pipenet_rebuilds = pipenets_needing_rebuilt + for(var/thing in pipenet_rebuilds) + var/obj/machinery/atmospherics/AT = thing + AT.build_network() + cost_rebuilds = MC_AVERAGE(cost_rebuilds, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer)) + pipenets_needing_rebuilt.Cut() + if(state != SS_RUNNING) + return + resumed = FALSE + currentpart = SSAIR_PIPENETS + if(currentpart == SSAIR_PIPENETS || !resumed) process_pipenets(resumed) cost_pipenets = MC_AVERAGE(cost_pipenets, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer)) @@ -137,9 +144,7 @@ SUBSYSTEM_DEF(air) if(state != SS_RUNNING) return resumed = 0 - currentpart = SSAIR_PIPENETS - - + currentpart = SSAIR_REBUILD_PIPENETS /datum/controller/subsystem/air/proc/process_pipenets(resumed = 0) if (!resumed) @@ -156,6 +161,9 @@ SUBSYSTEM_DEF(air) if(MC_TICK_CHECK) return +/datum/controller/subsystem/air/proc/add_to_rebuild_queue(atmos_machine) + if(istype(atmos_machine, /obj/machinery/atmospherics)) + pipenets_needing_rebuilt += atmos_machine /datum/controller/subsystem/air/proc/process_atmos_machinery(resumed = 0) var/seconds = wait * 0.1 diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm index 5332a9a8b8..5dde6c6985 100644 --- a/code/controllers/subsystem/atoms.dm +++ b/code/controllers/subsystem/atoms.dm @@ -16,7 +16,6 @@ SUBSYSTEM_DEF(atoms) /datum/controller/subsystem/atoms/Initialize(timeofday) GLOB.fire_overlay.appearance_flags = RESET_COLOR - setupGenetics() //to set the mutations' sequence. initialized = INITIALIZATION_INNEW_MAPLOAD InitializeAtoms() return ..() diff --git a/code/controllers/subsystem/lighting.dm b/code/controllers/subsystem/lighting.dm index 12b467b624..c6e6a84bcf 100644 --- a/code/controllers/subsystem/lighting.dm +++ b/code/controllers/subsystem/lighting.dm @@ -6,7 +6,6 @@ SUBSYSTEM_DEF(lighting) name = "Lighting" wait = 2 init_order = INIT_ORDER_LIGHTING - flags = SS_TICKER /datum/controller/subsystem/lighting/stat_entry() ..("L:[GLOB.lighting_update_lights.len]|C:[GLOB.lighting_update_corners.len]|O:[GLOB.lighting_update_objects.len]") @@ -85,4 +84,4 @@ SUBSYSTEM_DEF(lighting) /datum/controller/subsystem/lighting/Recover() initialized = SSlighting.initialized - ..() \ No newline at end of file + ..() diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 1b0c185ba5..b234c4c4f2 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -1,3 +1,5 @@ +#define INIT_ANNOUNCE(X) to_chat(world, "[X]"); log_world(X) + SUBSYSTEM_DEF(mapping) name = "Mapping" init_order = INIT_ORDER_MAPPING @@ -14,6 +16,8 @@ SUBSYSTEM_DEF(mapping) var/list/ruins_templates = list() var/list/space_ruins_templates = list() var/list/lava_ruins_templates = list() + var/list/ice_ruins_templates = list() + var/list/ice_ruins_underground_templates = list() var/list/station_ruins_templates = list() var/datum/space_level/isolated_ruins_z //Created on demand during ruin loading. @@ -40,6 +44,13 @@ SUBSYSTEM_DEF(mapping) var/stat_map_name = "Loading..." + /// Lookup list for random generated IDs. + var/list/random_generated_ids_by_original = list() + /// next id for separating obfuscated ids. + var/obfuscation_next_id = 1 + /// "secret" key + var/obfuscation_secret + //dlete dis once #39770 is resolved /datum/controller/subsystem/mapping/proc/HACK_LoadMapConfig() if(!config) @@ -50,6 +61,10 @@ SUBSYSTEM_DEF(mapping) #endif stat_map_name = config.map_name +/datum/controller/subsystem/mapping/PreInit() + if(!obfuscation_secret) + obfuscation_secret = md5(GUID()) //HAH! Guess this! + /datum/controller/subsystem/mapping/Initialize(timeofday) HACK_LoadMapConfig() if(initialized) @@ -81,25 +96,40 @@ SUBSYSTEM_DEF(mapping) // Pick a random away mission. if(CONFIG_GET(flag/roundstart_away)) createRandomZlevel() - + // Pick a random VR level. + if(CONFIG_GET(flag/roundstart_vr)) + createRandomZlevel(VIRT_REALITY_NAME, list(ZTRAIT_AWAY = TRUE, ZTRAIT_VR = TRUE), GLOB.potential_vr_levels) // Generate mining ruins loading_ruins = TRUE var/list/lava_ruins = levels_by_trait(ZTRAIT_LAVA_RUINS) if (lava_ruins.len) - seedRuins(lava_ruins, CONFIG_GET(number/lavaland_budget), /area/lavaland/surface/outdoors/unexplored, lava_ruins_templates) + seedRuins(lava_ruins, CONFIG_GET(number/lavaland_budget), list(/area/lavaland/surface/outdoors/unexplored), lava_ruins_templates) for (var/lava_z in lava_ruins) spawn_rivers(lava_z) + var/list/ice_ruins = levels_by_trait(ZTRAIT_ICE_RUINS) + if (ice_ruins.len) + // needs to be whitelisted for underground too so place_below ruins work + seedRuins(ice_ruins, CONFIG_GET(number/icemoon_budget), list(/area/icemoon/surface/outdoors/unexplored, /area/icemoon/underground/unexplored), ice_ruins_templates) + for (var/ice_z in ice_ruins) + spawn_rivers(ice_z, 4, /turf/open/openspace/icemoon, /area/icemoon/surface/outdoors/unexplored/rivers) + + var/list/ice_ruins_underground = levels_by_trait(ZTRAIT_ICE_RUINS_UNDERGROUND) + if (ice_ruins_underground.len) + seedRuins(ice_ruins_underground, CONFIG_GET(number/icemoon_budget), list(/area/icemoon/underground/unexplored), ice_ruins_underground_templates) + for (var/ice_z in ice_ruins_underground) + spawn_rivers(ice_z, 4, level_trait(ice_z, ZTRAIT_BASETURF), /area/icemoon/underground/unexplored/rivers) + // Generate deep space ruins var/list/space_ruins = levels_by_trait(ZTRAIT_SPACE_RUINS) if (space_ruins.len) - seedRuins(space_ruins, CONFIG_GET(number/space_budget), /area/space, space_ruins_templates) + seedRuins(space_ruins, CONFIG_GET(number/space_budget), list(/area/space), space_ruins_templates) // Generate station space ruins var/list/station_ruins = levels_by_trait(ZTRAIT_STATION) if (station_ruins.len) - seedRuins(station_ruins, CONFIG_GET(number/station_space_budget), /area/space/station_ruins, station_ruins_templates) + seedRuins(station_ruins, (SSmapping.config.station_ruin_budget < 0) ? CONFIG_GET(number/station_space_budget) : SSmapping.config.station_ruin_budget, list(/area/space/station_ruins), station_ruins_templates) SSmapping.seedStation() loading_ruins = FALSE #endif @@ -167,6 +197,8 @@ SUBSYSTEM_DEF(mapping) ruins_templates = SSmapping.ruins_templates space_ruins_templates = SSmapping.space_ruins_templates lava_ruins_templates = SSmapping.lava_ruins_templates + ice_ruins_templates = SSmapping.ice_ruins_templates + ice_ruins_underground_templates = SSmapping.ice_ruins_underground_templates station_ruins_templates = SSmapping.station_ruins_templates shuttle_templates = SSmapping.shuttle_templates shelter_templates = SSmapping.shelter_templates @@ -181,8 +213,7 @@ SUBSYSTEM_DEF(mapping) z_list = SSmapping.z_list -#define INIT_ANNOUNCE(X) to_chat(world, "[X]"); log_world(X) -/datum/controller/subsystem/mapping/proc/LoadGroup(list/errorList, name, path, files, list/traits, list/default_traits, silent = FALSE) +/datum/controller/subsystem/mapping/proc/LoadGroup(list/errorList, name, path, files, list/traits, list/default_traits, silent = FALSE, orientation = SOUTH) . = list() var/start_time = REALTIMEOFDAY @@ -222,7 +253,7 @@ SUBSYSTEM_DEF(mapping) // load the maps for (var/P in parsed_maps) var/datum/parsed_map/pm = P - if (!pm.load(1, 1, start_z + parsed_maps[P], no_changeturf = TRUE)) + if (!pm.load(1, 1, start_z + parsed_maps[P], no_changeturf = TRUE, orientation = orientation)) errorList |= pm.original_path if(!silent) INIT_ANNOUNCE("Loaded [name] in [(REALTIMEOFDAY - start_time)/10]s!") @@ -238,7 +269,7 @@ SUBSYSTEM_DEF(mapping) // load the station station_start = world.maxz + 1 INIT_ANNOUNCE("Loading [config.map_name]...") - LoadGroup(FailedZs, "Station", config.map_path, config.map_file, config.traits, ZTRAITS_STATION) + LoadGroup(FailedZs, "Station", config.map_path, config.map_file, config.traits, ZTRAITS_STATION, FALSE, config.orientation) if(SSdbcore.Connect()) var/datum/DBQuery/query_round_map_name = SSdbcore.NewQuery("UPDATE [format_table_name("round")] SET map_name = '[config.map_name]' WHERE id = [GLOB.round_id]") @@ -254,7 +285,7 @@ SUBSYSTEM_DEF(mapping) // load mining if(config.minetype == "lavaland") LoadGroup(FailedZs, "Lavaland", "map_files/Mining", "Lavaland.dmm", default_traits = ZTRAITS_LAVALAND) - else if (!isnull(config.minetype)) + else if (!isnull(config.minetype) && config.minetype != "none") INIT_ANNOUNCE("WARNING: An unknown minetype '[config.minetype]' was set! This is being ignored! Update the maploader code!") #endif @@ -265,7 +296,6 @@ SUBSYSTEM_DEF(mapping) msg += ", [FailedZs[I]]" msg += ". Yell at your server host!" INIT_ANNOUNCE(msg) -#undef INIT_ANNOUNCE GLOBAL_LIST_EMPTY(the_station_areas) @@ -359,6 +389,7 @@ GLOBAL_LIST_EMPTY(the_station_areas) // Still supporting bans by filename var/list/banned = generateMapList("[global.config.directory]/lavaruinblacklist.txt") banned += generateMapList("[global.config.directory]/spaceruinblacklist.txt") + banned += generateMapList("[global.config.directory]/iceruinblacklist.txt") banned += generateMapList("[global.config.directory]/stationruinblacklist.txt") for(var/item in sortList(subtypesof(/datum/map_template/ruin), /proc/cmp_ruincost_priority)) @@ -376,6 +407,10 @@ GLOBAL_LIST_EMPTY(the_station_areas) if(istype(R, /datum/map_template/ruin/lavaland)) lava_ruins_templates[R.name] = R + else if(istype(R, /datum/map_template/ruin/icemoon/underground)) + ice_ruins_underground_templates[R.name] = R + else if(istype(R, /datum/map_template/ruin/icemoon)) + ice_ruins_templates[R.name] = R else if(istype(R, /datum/map_template/ruin/space)) space_ruins_templates[R.name] = R else if(istype(R, /datum/map_template/ruin/station)) @@ -410,46 +445,69 @@ GLOBAL_LIST_EMPTY(the_station_areas) //Manual loading of away missions. /client/proc/admin_away() - set name = "Load Away Mission" + set name = "Load Away Mission / Virtual Reality" set category = "Fun" if(!holder ||!check_rights(R_FUN)) return + var/choice = alert(src, "What kind of level would you like to load?", "Load Away/VR", AWAY_MISSION_NAME, VIRT_REALITY_NAME, "Cancel") - if(!GLOB.the_gateway) - if(alert("There's no home gateway on the station. You sure you want to continue ?", "Uh oh", "Yes", "No") != "Yes") + var/list/possible_options + var/list/ztraits + switch(choice) + if(VIRT_REALITY_NAME) + possible_options = GLOB.potential_vr_levels + ztraits = list(ZTRAIT_AWAY = TRUE, ZTRAIT_VR = TRUE) + if(AWAY_MISSION_NAME) + if(!GLOB.the_gateway) + if(alert("There's no home gateway on the station. You sure you want to continue ?", "Uh oh", "Yes", "No") != "Yes") + return + possible_options = GLOB.potential_away_levels + ztraits = list(ZTRAIT_AWAY = TRUE) + else return - var/list/possible_options = GLOB.potentialRandomZlevels + "Custom" - var/away_name - var/datum/space_level/away_level + possible_options += "Custom" + var/lvl_name + var/datum/space_level/level - var/answer = input("What kind ? ","Away") as null|anything in possible_options + var/answer = input("What kind ? ","Away/VR") as null|anything in possible_options switch(answer) + if(null) + return if("Custom") var/mapfile = input("Pick file:", "File") as null|file if(!mapfile) return - away_name = "[mapfile] custom" - to_chat(usr,"Loading [away_name]...") - var/datum/map_template/template = new(mapfile, "Away Mission") - away_level = template.load_new_z() + lvl_name = "[mapfile] custom" + to_chat(usr,"Loading [lvl_name]...") + var/datum/map_template/template = new(mapfile, choice, ztraits) + level = template.load_new_z(ztraits) else - if(answer in GLOB.potentialRandomZlevels) - away_name = answer - to_chat(usr,"Loading [away_name]...") - var/datum/map_template/template = new(away_name, "Away Mission") - away_level = template.load_new_z() - else - return + lvl_name = answer + to_chat(usr,"Loading [lvl_name]...") + var/datum/map_template/template = new(lvl_name, choice) + level = template.load_new_z(ztraits) - message_admins("Admin [key_name_admin(usr)] has loaded [away_name] away mission.") - log_admin("Admin [key_name(usr)] has loaded [away_name] away mission.") - if(!away_level) - message_admins("Loading [away_name] failed!") + message_admins("Admin [key_name_admin(usr)] has loaded [lvl_name] [choice].") + log_admin("Admin [key_name(usr)] has loaded [lvl_name] [choice].") + if(!level) + message_admins("Loading [lvl_name] failed!") return + + if(choice == AWAY_MISSION_NAME && GLOB.the_gateway) + //Link any found away gate with station gate + var/obj/machinery/gateway/centeraway/new_gate + for(var/obj/machinery/gateway/centeraway/G in GLOB.machines) + if(G.z == level.z_value) //I'll have to refactor gateway shitcode before multi-away support. + new_gate = G + break + //Link station gate with away gate and remove wait time. + GLOB.the_gateway.awaygate = new_gate + GLOB.the_gateway.wait = world.time + /datum/controller/subsystem/mapping/proc/RequestBlockReservation(width, height, z, type = /datum/turf_reservation, turf_type_override, border_type_override) UNTIL((!z || reservation_ready["[z]"]) && !clearing_reserved_turfs) var/datum/turf_reservation/reserve = new type @@ -543,3 +601,15 @@ GLOBAL_LIST_EMPTY(the_station_areas) LM.load() if(GLOB.stationroom_landmarks.len) seedStation() //I'm sure we can trust everyone not to insert a 1x1 rooms which loads a landmark which loads a landmark which loads a la... + +/** + * Generates an obfuscated but constant id for an original id for cases where you don't want players codediving for an id. + * WARNING: MAKE SURE PLAYERS ARE NOT ABLE TO ACCESS THIS. To save performance, it's just secret + an incrementing number. Very guessable if you know what the secret is. + */ +/datum/controller/subsystem/mapping/proc/get_obfuscated_id(original, id_type = "GENERAL") + if(!original) + return //no. + var/key = "[original]%[id_type]" + if(random_generated_ids_by_original[key]) + return random_generated_ids_by_original[key] + . = random_generated_ids_by_original[key] = "[obfuscation_secret]%[obfuscation_next_id++]" diff --git a/code/controllers/subsystem/processing/flightpacks.dm b/code/controllers/subsystem/processing/flightpacks.dm deleted file mode 100644 index a462e2b645..0000000000 --- a/code/controllers/subsystem/processing/flightpacks.dm +++ /dev/null @@ -1,25 +0,0 @@ -PROCESSING_SUBSYSTEM_DEF(flightpacks) - name = "Flightpack Movement" - priority = FIRE_PRIORITY_FLIGHTPACKS - wait = 2 - stat_tag = "FM" - flags = SS_NO_INIT|SS_TICKER|SS_KEEP_TIMING - - var/flightsuit_processing = FLIGHTSUIT_PROCESSING_FULL - -/datum/controller/subsystem/processing/flightpacks/Initialize() - sync_flightsuit_processing() - -/datum/controller/subsystem/processing/flightpacks/vv_edit_var(var_name, var_value) - ..() - switch(var_name) - if("flightsuit_processing") - sync_flightsuit_processing() - -/datum/controller/subsystem/processing/flightpacks/proc/sync_flightsuit_processing() - for(var/obj/item/flightpack/FP in processing) - FP.sync_processing(src) - if(flightsuit_processing == FLIGHTSUIT_PROCESSING_NONE) //Don't even bother firing. - can_fire = FALSE - else - can_fire = TRUE diff --git a/code/controllers/subsystem/processing/projectiles.dm b/code/controllers/subsystem/processing/projectiles.dm index 4171b5f8c1..8cd63c6949 100644 --- a/code/controllers/subsystem/processing/projectiles.dm +++ b/code/controllers/subsystem/processing/projectiles.dm @@ -3,7 +3,6 @@ PROCESSING_SUBSYSTEM_DEF(projectiles) wait = 1 stat_tag = "PP" flags = SS_NO_INIT|SS_TICKER - var/global_max_tick_moves = 10 var/global_pixel_speed = 2 var/global_iterations_per_move = 16 diff --git a/code/controllers/subsystem/profiler.dm b/code/controllers/subsystem/profiler.dm index ec8b243073..ef10e0626c 100644 --- a/code/controllers/subsystem/profiler.dm +++ b/code/controllers/subsystem/profiler.dm @@ -5,7 +5,7 @@ SUBSYSTEM_DEF(profiler) init_order = INIT_ORDER_PROFILER runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY wait = 3000 - flags = SS_NO_TICK_CHECK + flags = SS_NO_TICK_CHECK var/fetch_cost = 0 var/write_cost = 0 @@ -31,23 +31,12 @@ SUBSYSTEM_DEF(profiler) return ..() /datum/controller/subsystem/profiler/proc/StartProfiling() -#if DM_BUILD < 1506 || DM_VERSION < 513 - stack_trace("Auto profiling unsupported on this byond version") - CONFIG_SET(flag/auto_profile, FALSE) -#else world.Profile(PROFILE_START) -#endif /datum/controller/subsystem/profiler/proc/StopProfiling() -#if DM_BUILD >= 1506 && DM_VERSION >= 513 world.Profile(PROFILE_STOP) -#endif /datum/controller/subsystem/profiler/proc/DumpFile() -#if DM_BUILD < 1506 || DM_VERSION < 513 - stack_trace("Auto profiling unsupported on this byond version") - CONFIG_SET(flag/auto_profile, FALSE) -#else var/timer = TICK_USAGE_REAL var/current_profile_data = world.Profile(PROFILE_REFRESH,format="json") fetch_cost = MC_AVERAGE(fetch_cost, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer)) @@ -60,4 +49,3 @@ SUBSYSTEM_DEF(profiler) timer = TICK_USAGE_REAL WRITE_FILE(json_file, current_profile_data) write_cost = MC_AVERAGE(write_cost, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer)) -#endif diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index 985551558d..02a74bccc3 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -231,13 +231,13 @@ SUBSYSTEM_DEF(shuttle) call_reason = trim(html_encode(call_reason)) - if(length(call_reason) < CALL_SHUTTLE_REASON_LENGTH && seclevel2num(get_security_level()) > SEC_LEVEL_GREEN) + if(length(call_reason) < CALL_SHUTTLE_REASON_LENGTH && GLOB.security_level > SEC_LEVEL_GREEN) to_chat(user, "You must provide a reason.") return var/area/signal_origin = get_area(user) var/emergency_reason = "\nNature of emergency:\n\n[call_reason]" - var/security_num = seclevel2num(get_security_level()) + var/security_num = GLOB.security_level switch(security_num) if(SEC_LEVEL_RED,SEC_LEVEL_DELTA) emergency.request(null, signal_origin, html_decode(emergency_reason), 1) //There is a serious threat we gotta move no time to give them five minutes. @@ -299,7 +299,7 @@ SUBSYSTEM_DEF(shuttle) /datum/controller/subsystem/shuttle/proc/canRecall() if(!emergency || emergency.mode != SHUTTLE_CALL || emergencyNoRecall || SSticker.mode.name == "meteor") return - var/security_num = seclevel2num(get_security_level()) + var/security_num = GLOB.security_level switch(security_num) if(SEC_LEVEL_GREEN) if(emergency.timeLeft(1) < emergencyCallTime) @@ -664,7 +664,7 @@ SUBSYSTEM_DEF(shuttle) /datum/controller/subsystem/shuttle/proc/autoEnd() //CIT CHANGE - allows shift to end without being a proper shuttle call? if(EMERGENCY_IDLE_OR_RECALLED) SSshuttle.emergency.request(silent = TRUE) - priority_announce("The shift has come to an end and the shuttle called. [seclevel2num(get_security_level()) == SEC_LEVEL_RED ? "Red Alert state confirmed: Dispatching priority shuttle. " : "" ]It will arrive in [emergency.timeLeft(600)] minutes.", null, "shuttlecalled", "Priority") + priority_announce("The shift has come to an end and the shuttle called. [GLOB.security_level == SEC_LEVEL_RED ? "Red Alert state confirmed: Dispatching priority shuttle. " : "" ]It will arrive in [emergency.timeLeft(600)] minutes.", null, "shuttlecalled", "Priority") log_game("Round end vote passed. Shuttle has been auto-called.") message_admins("Round end vote passed. Shuttle has been auto-called.") emergencyNoRecall = TRUE diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index a7be36abc2..8042631b7b 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -387,6 +387,9 @@ SUBSYSTEM_DEF(ticker) for(var/mob/dead/new_player/N in GLOB.player_list) var/mob/living/carbon/human/player = N.new_character if(istype(player) && player.mind && player.mind.assigned_role) + var/datum/job/J = SSjob.GetJob(player.mind.assigned_role) + if(J) + J.standard_assign_skills(player.mind) if(player.mind.assigned_role == "Captain") captainless=0 if(player.mind.assigned_role != player.mind.special_role) diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm index bd2fb854af..36bf992cfb 100644 --- a/code/controllers/subsystem/timer.dm +++ b/code/controllers/subsystem/timer.dm @@ -94,7 +94,7 @@ SUBSYSTEM_DEF(timer) if(ctime_timer.flags & TIMER_LOOP) ctime_timer.spent = 0 ctime_timer.timeToRun = REALTIMEOFDAY + ctime_timer.wait - BINARY_INSERT(ctime_timer, clienttime_timers, datum/timedevent, timeToRun) + BINARY_INSERT(ctime_timer, clienttime_timers, datum/timedevent, ctime_timer, timeToRun, COMPARE_KEY) else qdel(ctime_timer) @@ -423,7 +423,7 @@ SUBSYSTEM_DEF(timer) L = SStimer.second_queue if(L) - BINARY_INSERT(src, L, datum/timedevent, timeToRun) + BINARY_INSERT(src, L, datum/timedevent, src, timeToRun, COMPARE_KEY) return //get the list of buckets diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index a202afd905..97a5ec2c2b 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -352,7 +352,6 @@ SUBSYSTEM_DEF(vote) if("dynamic") if(SSticker.current_state > GAME_STATE_PREGAME)//Don't change the mode if the round already started. return message_admins("A vote has tried to change the gamemode, but the game has already started. Aborting.") - GLOB.master_mode = "dynamic" var/list/runnable_storytellers = config.get_runnable_storytellers() var/datum/dynamic_storyteller/picked for(var/T in runnable_storytellers) @@ -361,7 +360,7 @@ SUBSYSTEM_DEF(vote) picked = S runnable_storytellers[S] *= round(stored_gamemode_votes[initial(S.name)]*100000,1) if(!picked) - picked = pickweightAllowZero(runnable_storytellers) + picked = pickweight(runnable_storytellers, 0) GLOB.dynamic_storyteller_type = picked if("map") var/datum/map_config/VM = config.maplist[.] @@ -489,6 +488,7 @@ SUBSYSTEM_DEF(vote) modes_to_add -= "traitor" // makes it so that traitor is always available choices.Add(modes_to_add) if("dynamic") + GLOB.master_mode = "dynamic" var/list/probabilities = CONFIG_GET(keyed_list/storyteller_weight) for(var/T in config.storyteller_cache) var/datum/dynamic_storyteller/S = T diff --git a/code/datums/action.dm b/code/datums/action.dm index f2f93ac40d..8862482dc2 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -171,7 +171,7 @@ if(!..()) return 0 var/mob/M = target - M.ghostize(1) + M.ghostize(can_reenter_corpse = TRUE, voluntary = TRUE) /datum/action/proc/OnUpdatedIcon() UpdateButtonIcon() diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index ebddc187ae..9c6bb2ebfd 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -253,7 +253,7 @@ var/datum/ai_laws/lawtype var/list/law_weights = CONFIG_GET(keyed_list/law_weight) while(!lawtype && law_weights.len) - var/possible_id = pickweightAllowZero(law_weights) + var/possible_id = pickweight(law_weights, 0) lawtype = lawid_to_type(possible_id) if(!lawtype) law_weights -= possible_id diff --git a/code/datums/brain_damage/imaginary_friend.dm b/code/datums/brain_damage/imaginary_friend.dm index 428f355c31..e5e1434ab8 100644 --- a/code/datums/brain_damage/imaginary_friend.dm +++ b/code/datums/brain_damage/imaginary_friend.dm @@ -91,7 +91,6 @@ trauma = _trauma owner = trauma.owner - copy_known_languages_from(owner, TRUE) setup_friend() @@ -150,6 +149,8 @@ friend_talk(message) /mob/camera/imaginary_friend/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode, atom/movable/source) + if (client?.prefs.chat_on_map && (client.prefs.see_chat_non_mob || ismob(speaker))) + create_chat_message(speaker, message_language, raw_message, spans, message_mode) to_chat(src, compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode, FALSE, source)) /mob/camera/imaginary_friend/proc/friend_talk(message) diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm index 0e08c4cd15..e076c30ae1 100644 --- a/code/datums/brain_damage/severe.dm +++ b/code/datums/brain_damage/severe.dm @@ -26,21 +26,15 @@ scan_desc = "extensive damage to the brain's language center" gain_text = "You have trouble forming words in your head..." lose_text = "You suddenly remember how languages work." - var/datum/language_holder/prev_language - var/datum/language_holder/mob_language /datum/brain_trauma/severe/aphasia/on_gain() - mob_language = owner.get_language_holder() - prev_language = mob_language.copy() - mob_language.remove_all_languages() - mob_language.grant_language(/datum/language/aphasia) + owner.add_blocked_language(subtypesof(/datum/language/) - /datum/language/aphasia, LANGUAGE_APHASIA) + owner.grant_language(/datum/language/aphasia, TRUE, TRUE, LANGUAGE_APHASIA) ..() /datum/brain_trauma/severe/aphasia/on_lose() - mob_language.remove_language(/datum/language/aphasia) - mob_language.copy_known_languages_from(prev_language) //this will also preserve languages learned during the trauma - QDEL_NULL(prev_language) - mob_language = null + owner.remove_blocked_language(subtypesof(/datum/language/), LANGUAGE_APHASIA) + owner.remove_language(/datum/language/aphasia, TRUE, TRUE, LANGUAGE_APHASIA) ..() /datum/brain_trauma/severe/blindness diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm new file mode 100644 index 0000000000..cbcb34ac5e --- /dev/null +++ b/code/datums/chatmessage.dm @@ -0,0 +1,236 @@ +#define CHAT_MESSAGE_SPAWN_TIME 0.2 SECONDS +#define CHAT_MESSAGE_LIFESPAN 5 SECONDS +#define CHAT_MESSAGE_EOL_FADE 0.7 SECONDS +#define CHAT_MESSAGE_EXP_DECAY 0.7 // Messages decay at pow(factor, idx in stack) +#define CHAT_MESSAGE_HEIGHT_DECAY 0.9 // Increase message decay based on the height of the message +#define CHAT_MESSAGE_APPROX_LHEIGHT 11 // Approximate height in pixels of an 'average' line, used for height decay +#define CHAT_MESSAGE_WIDTH 96 // pixels +#define CHAT_MESSAGE_MAX_LENGTH 110 // characters +#define WXH_TO_HEIGHT(x) text2num(copytext((x), findtextEx((x), "x") + 1)) // thanks lummox + +/** + * # Chat Message Overlay + * + * Datum for generating a message overlay on the map + */ +/datum/chatmessage + /// The visual element of the chat messsage + var/image/message + /// The location in which the message is appearing + var/atom/message_loc + /// The client who heard this message + var/client/owned_by + /// Contains the scheduled destruction time + var/scheduled_destruction + /// Contains the approximate amount of lines for height decay + var/approx_lines + +/** + * Constructs a chat message overlay + * + * Arguments: + * * text - The text content of the overlay + * * target - The target atom to display the overlay at + * * owner - The mob that owns this overlay, only this mob will be able to view it + * * extra_classes - Extra classes to apply to the span that holds the text + * * lifespan - The lifespan of the message in deciseconds + */ +/datum/chatmessage/New(text, atom/target, mob/owner, list/extra_classes = null, lifespan = CHAT_MESSAGE_LIFESPAN) + . = ..() + if (!istype(target)) + CRASH("Invalid target given for chatmessage") + if(QDELETED(owner) || !istype(owner) || !owner.client) + stack_trace("/datum/chatmessage created with [isnull(owner) ? "null" : "invalid"] mob owner") + qdel(src) + return + INVOKE_ASYNC(src, .proc/generate_image, text, target, owner, extra_classes, lifespan) + +/datum/chatmessage/Destroy() + if (owned_by) + if (owned_by.seen_messages) + LAZYREMOVEASSOC(owned_by.seen_messages, message_loc, src) + owned_by.images.Remove(message) + owned_by = null + message_loc = null + message = null + return ..() + +/** + * Generates a chat message image representation + * + * Arguments: + * * text - The text content of the overlay + * * target - The target atom to display the overlay at + * * owner - The mob that owns this overlay, only this mob will be able to view it + * * extra_classes - Extra classes to apply to the span that holds the text + * * lifespan - The lifespan of the message in deciseconds + */ +/datum/chatmessage/proc/generate_image(text, atom/target, mob/owner, list/extra_classes, lifespan) + // Register client who owns this message + owned_by = owner.client + RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, .proc/qdel, src) + + // Clip message + var/maxlen = owned_by.prefs.max_chat_length + if (length_char(text) > maxlen) + text = copytext_char(text, 1, maxlen + 1) + "..." // BYOND index moment + + // Calculate target color if not already present + if (!target.chat_color || target.chat_color_name != target.name) + target.chat_color = colorize_string(target.name) + target.chat_color_darkened = colorize_string(target.name, 0.85, 0.85) + target.chat_color_name = target.name + + // Get rid of any URL schemes that might cause BYOND to automatically wrap something in an anchor tag + var/static/regex/url_scheme = new(@"[A-Za-z][A-Za-z0-9+-\.]*:\/\/", "g") + text = replacetext(text, url_scheme, "") + + // Reject whitespace + var/static/regex/whitespace = new(@"^\s*$") + if (whitespace.Find(text)) + qdel(src) + return + + // Non mobs speakers can be small + if (!ismob(target)) + extra_classes |= "small" + + // Append radio icon if from a virtual speaker + if (extra_classes.Find("virtual-speaker")) + var/image/r_icon = image('icons/UI_Icons/chat/chat_icons.dmi', icon_state = "radio") + text = "\icon[r_icon] " + text + + // We dim italicized text to make it more distinguishable from regular text + var/tgt_color = extra_classes.Find("italics") ? target.chat_color_darkened : target.chat_color + + // Approximate text height + // Note we have to replace HTML encoded metacharacters otherwise MeasureText will return a zero height + // BYOND Bug #2563917 + // Construct text + var/static/regex/html_metachars = new(@"&[A-Za-z]{1,7};", "g") + var/complete_text = "[text]" + var/mheight = WXH_TO_HEIGHT(owned_by.MeasureText(replacetext(complete_text, html_metachars, "m"), null, CHAT_MESSAGE_WIDTH)) + approx_lines = max(1, mheight / CHAT_MESSAGE_APPROX_LHEIGHT) + + // Translate any existing messages upwards, apply exponential decay factors to timers + message_loc = target + if (owned_by.seen_messages) + var/idx = 1 + var/combined_height = approx_lines + for(var/msg in owned_by.seen_messages[message_loc]) + var/datum/chatmessage/m = msg + animate(m.message, pixel_y = m.message.pixel_y + mheight, time = CHAT_MESSAGE_SPAWN_TIME) + combined_height += m.approx_lines + var/sched_remaining = m.scheduled_destruction - world.time + if (sched_remaining > CHAT_MESSAGE_SPAWN_TIME) + var/remaining_time = (sched_remaining) * (CHAT_MESSAGE_EXP_DECAY ** idx++) * (CHAT_MESSAGE_HEIGHT_DECAY ** combined_height) + m.scheduled_destruction = world.time + remaining_time + addtimer(CALLBACK(m, .proc/end_of_life), remaining_time, TIMER_UNIQUE|TIMER_OVERRIDE) + + // Build message image + message = image(loc = message_loc, layer = CHAT_LAYER) + message.plane = GAME_PLANE + message.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA | KEEP_APART + message.alpha = 0 + message.pixel_y = owner.bound_height * 0.95 + message.maptext_width = CHAT_MESSAGE_WIDTH + message.maptext_height = mheight + message.maptext_x = (CHAT_MESSAGE_WIDTH - owner.bound_width) * -0.5 + message.maptext = complete_text + + // View the message + LAZYADDASSOC(owned_by.seen_messages, message_loc, src) + owned_by.images |= message + animate(message, alpha = 255, time = CHAT_MESSAGE_SPAWN_TIME) + + // Prepare for destruction + scheduled_destruction = world.time + (lifespan - CHAT_MESSAGE_EOL_FADE) + addtimer(CALLBACK(src, .proc/end_of_life), lifespan - CHAT_MESSAGE_EOL_FADE, TIMER_UNIQUE|TIMER_OVERRIDE) + +/** + * Applies final animations to overlay CHAT_MESSAGE_EOL_FADE deciseconds prior to message deletion + */ +/datum/chatmessage/proc/end_of_life(fadetime = CHAT_MESSAGE_EOL_FADE) + animate(message, alpha = 0, time = fadetime, flags = ANIMATION_PARALLEL) + QDEL_IN(src, fadetime) + +/** + * Creates a message overlay at a defined location for a given speaker + * + * Arguments: + * * speaker - The atom who is saying this message + * * message_language - The language that the message is said in + * * raw_message - The text content of the message + * * spans - Additional classes to be added to the message + * * message_mode - Bitflags relating to the mode of the message + */ +/mob/proc/create_chat_message(atom/movable/speaker, datum/language/message_language, raw_message, list/spans, message_mode) + // Ensure the list we are using, if present, is a copy so we don't modify the list provided to us + spans = spans?.Copy() + + // Check for virtual speakers (aka hearing a message through a radio) + var/atom/movable/originalSpeaker = speaker + if (istype(speaker, /atom/movable/virtualspeaker)) + var/atom/movable/virtualspeaker/v = speaker + speaker = v.source + spans |= "virtual-speaker" + + // Ignore virtual speaker (most often radio messages) from ourself + if (originalSpeaker != src && speaker == src) + return + + // Display visual above source + new /datum/chatmessage(lang_treat(speaker, message_language, raw_message, spans, null, TRUE), speaker, src, spans) + + +// Tweak these defines to change the available color ranges +#define CM_COLOR_SAT_MIN 0.6 +#define CM_COLOR_SAT_MAX 0.7 +#define CM_COLOR_LUM_MIN 0.65 +#define CM_COLOR_LUM_MAX 0.75 + +/** + * Gets a color for a name, will return the same color for a given string consistently within a round.atom + * + * Note that this proc aims to produce pastel-ish colors using the HSL colorspace. These seem to be favorable for displaying on the map. + * + * Arguments: + * * name - The name to generate a color for + * * 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 + */ +/datum/chatmessage/proc/colorize_string(name, sat_shift = 1, lum_shift = 1) + // seed to help randomness + var/static/rseed = rand(1,26) + + // get hsl using the selected 6 characters of the md5 hash + var/hash = copytext(md5(name + GLOB.round_id), rseed, rseed + 6) + var/h = hex2num(copytext(hash, 1, 3)) * (360 / 255) + var/s = (hex2num(copytext(hash, 3, 5)) >> 2) * ((CM_COLOR_SAT_MAX - CM_COLOR_SAT_MIN) / 63) + CM_COLOR_SAT_MIN + var/l = (hex2num(copytext(hash, 5, 7)) >> 2) * ((CM_COLOR_LUM_MAX - CM_COLOR_LUM_MIN) / 63) + CM_COLOR_LUM_MIN + + // adjust for shifts + s *= clamp(sat_shift, 0, 1) + l *= clamp(lum_shift, 0, 1) + + // convert to rgb + var/h_int = round(h/60) // mapping each section of H to 60 degree sections + var/c = (1 - abs(2 * l - 1)) * s + var/x = c * (1 - abs((h / 60) % 2 - 1)) + var/m = l - c * 0.5 + x = (x + m) * 255 + c = (c + m) * 255 + m *= 255 + switch(h_int) + if(0) + return "#[num2hex(c, 2)][num2hex(x, 2)][num2hex(m, 2)]" + if(1) + return "#[num2hex(x, 2)][num2hex(c, 2)][num2hex(m, 2)]" + if(2) + return "#[num2hex(m, 2)][num2hex(c, 2)][num2hex(x, 2)]" + if(3) + return "#[num2hex(m, 2)][num2hex(x, 2)][num2hex(c, 2)]" + if(4) + return "#[num2hex(x, 2)][num2hex(m, 2)][num2hex(c, 2)]" + if(5) + return "#[num2hex(c, 2)][num2hex(m, 2)][num2hex(x, 2)]" diff --git a/code/datums/components/archaeology.dm b/code/datums/components/archaeology.dm deleted file mode 100644 index b5740650e9..0000000000 --- a/code/datums/components/archaeology.dm +++ /dev/null @@ -1,95 +0,0 @@ -/datum/component/archaeology - dupe_mode = COMPONENT_DUPE_UNIQUE - var/list/archdrops = list(/obj/item/bikehorn = list(ARCH_PROB = 100, ARCH_MAXDROP = 1)) // honk~ - var/prob2drop - var/dug - var/datum/callback/callback - -/datum/component/archaeology/Initialize(list/_archdrops = list(), datum/callback/_callback) - archdrops = _archdrops - for(var/i in archdrops) - if(isnull(archdrops[i][ARCH_MAXDROP])) - archdrops[i][ARCH_MAXDROP] = 1 - stack_trace("ARCHAEOLOGY WARNING: [parent] contained a null max_drop value in [i].") - if(isnull(archdrops[i][ARCH_PROB])) - archdrops[i][ARCH_PROB] = 100 - stack_trace("ARCHAEOLOGY WARNING: [parent] contained a null probability value in [i].") - callback = _callback - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY,.proc/Dig) - RegisterSignal(parent, COMSIG_ATOM_EX_ACT, .proc/BombDig) - RegisterSignal(parent, COMSIG_ATOM_SING_PULL, .proc/SingDig) - -/datum/component/archaeology/InheritComponent(datum/component/archaeology/A, i_am_original) - var/list/other_archdrops = A.archdrops - var/list/_archdrops = archdrops - for(var/I in other_archdrops) - _archdrops[I] += other_archdrops[I] - -/datum/component/archaeology/proc/Dig(datum/source, obj/item/I, mob/living/user) - if(dug) - to_chat(user, "Looks like someone has dug here already.") - return - - if(!isturf(user.loc)) - return - - if(I.tool_behaviour == TOOL_SHOVEL || I.tool_behaviour == TOOL_MINING) - to_chat(user, "You start digging...") - - if(I.use_tool(parent, user, 40, volume=50)) - to_chat(user, "You dig a hole.") - gets_dug() - dug = TRUE - SSblackbox.record_feedback("tally", "pick_used_mining", 1, I.type) - return COMPONENT_NO_AFTERATTACK - -/datum/component/archaeology/proc/gets_dug() - if(dug) - return - else - var/turf/open/OT = get_turf(parent) - for(var/thing in archdrops) - var/maxtodrop = archdrops[thing][ARCH_MAXDROP] - for(var/i in 1 to maxtodrop) - if(prob(archdrops[thing][ARCH_PROB])) // can't win them all! - new thing(OT) - - if(isopenturf(OT)) - if(OT.postdig_icon_change) - if(istype(OT, /turf/open/floor/plating/asteroid/) && !OT.postdig_icon) - var/turf/open/floor/plating/asteroid/AOT = parent - AOT.icon_plating = "[AOT.environment_type]_dug" - AOT.icon_state = "[AOT.environment_type]_dug" - else - if(isplatingturf(OT)) - var/turf/open/floor/plating/POT = parent - POT.icon_plating = "[POT.postdig_icon]" - POT.icon_state = "[OT.postdig_icon]" - - if(OT.slowdown) //Things like snow slow you down until you dig them. - OT.slowdown = 0 - dug = TRUE - if(callback) - callback.Invoke() - -/datum/component/archaeology/proc/SingDig(datum/source, S, current_size) - switch(current_size) - if(STAGE_THREE) - if(prob(30)) - gets_dug() - if(STAGE_FOUR) - if(prob(50)) - gets_dug() - else - if(current_size >= STAGE_FIVE && prob(70)) - gets_dug() - -/datum/component/archaeology/proc/BombDig(datum/source, severity, target) - switch(severity) - if(3) - return - if(2) - if(prob(20)) - gets_dug() - if(1) - gets_dug() diff --git a/code/datums/components/bouncy.dm b/code/datums/components/bouncy.dm index c7ca85455b..fed603410e 100644 --- a/code/datums/components/bouncy.dm +++ b/code/datums/components/bouncy.dm @@ -4,7 +4,7 @@ var/list/bounce_signals = list(COMSIG_MOVABLE_IMPACT, COMSIG_ITEM_HIT_REACT, COMSIG_ITEM_ATTACK) /datum/component/bouncy/Initialize(_bouncy_mod, list/_bounce_signals) - if(!ismovableatom(parent)) + if(!ismovable(parent)) return COMPONENT_INCOMPATIBLE if(_bouncy_mod) bouncy_mod = _bouncy_mod diff --git a/code/datums/components/butchering.dm b/code/datums/components/butchering.dm index e5625dee6a..441a161428 100644 --- a/code/datums/components/butchering.dm +++ b/code/datums/components/butchering.dm @@ -55,7 +55,7 @@ log_combat(user, H, "starts slicing the throat of") playsound(H.loc, butcher_sound, 50, TRUE, -1) - if(do_mob(user, H, CLAMP(500 / source.force, 30, 100)) && H.Adjacent(source)) + if(do_mob(user, H, clamp(500 / source.force, 30, 100)) && H.Adjacent(source)) if(H.has_status_effect(/datum/status_effect/neck_slice)) user.show_message("[H]'s neck has already been already cut, you can't make the bleeding any worse!", 1, \ "Their neck has already been already cut, you can't make the bleeding any worse!") @@ -65,7 +65,7 @@ "[user] slits your throat...") log_combat(user, H, "finishes slicing the throat of") H.apply_damage(source.force, BRUTE, BODY_ZONE_HEAD) - H.bleed_rate = CLAMP(H.bleed_rate + 20, 0, 30) + H.bleed_rate = clamp(H.bleed_rate + 20, 0, 30) H.apply_status_effect(/datum/status_effect/neck_slice) /datum/component/butchering/proc/Butcher(mob/living/butcher, mob/living/meat) diff --git a/code/datums/components/crafting/recipes.dm b/code/datums/components/crafting/recipes.dm index 2b6f1a5b81..bc76082f0a 100644 --- a/code/datums/components/crafting/recipes.dm +++ b/code/datums/components/crafting/recipes.dm @@ -23,3 +23,4 @@ */ /datum/crafting_recipe/proc/check_requirements(mob/user, list/collected_requirements) return TRUE + diff --git a/code/datums/components/crafting/recipes/recipes_clothing.dm b/code/datums/components/crafting/recipes/recipes_clothing.dm index 8f52e06f30..02dd3f2c05 100644 --- a/code/datums/components/crafting/recipes/recipes_clothing.dm +++ b/code/datums/components/crafting/recipes/recipes_clothing.dm @@ -327,3 +327,16 @@ /obj/item/stack/cable_coil = 10) time = 100 //Takes awhile to put all the garlics on the coil and knot it. category = CAT_CLOTHING + +/datum/crafting_recipe/gripperoffbrand + name = "Improvised Gripper Gloves" + reqs = list( + /obj/item/clothing/gloves/fingerless = 1, + // /obj/item/stack/sticky_tape = 1 + /obj/item/stack/cable_coil = 5, + /obj/item/stack/sheet/cloth = 2, + ) + result = /obj/item/clothing/gloves/tackler/offbrand + category = CAT_CLOTHING + tools = list(TOOL_WIRECUTTER) + time = 20 diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm index cf0e1bdec9..8ee893b2e5 100644 --- a/code/datums/components/crafting/recipes/recipes_misc.dm +++ b/code/datums/components/crafting/recipes/recipes_misc.dm @@ -115,6 +115,33 @@ //Tools & Storage// /////////////////// +/datum/crafting_recipe/upgraded_gauze + name = "Improved Gauze" + result = /obj/item/stack/medical/gauze/adv/one + time = 1 + reqs = list(/obj/item/stack/medical/gauze = 1, + /datum/reagent/space_cleaner/sterilizine = 10) + category = CAT_MISC + subcategory = CAT_TOOL + +/datum/crafting_recipe/bruise_pack + name = "Bruise Pack" + result = /obj/item/stack/medical/bruise_pack/one + time = 1 + reqs = list(/obj/item/stack/medical/gauze = 1, + /datum/reagent/medicine/styptic_powder = 10) + category = CAT_MISC + subcategory = CAT_TOOL + +/datum/crafting_recipe/burn_pack + name = "Burn Ointment" + result = /obj/item/stack/medical/ointment/one + time = 1 + reqs = list(/obj/item/stack/medical/gauze = 1, + /datum/reagent/medicine/silver_sulfadiazine = 10) + category = CAT_MISC + subcategory = CAT_TOOL + /datum/crafting_recipe/ghettojetpack name = "Improvised Jetpack" result = /obj/item/tank/jetpack/improvised @@ -233,6 +260,15 @@ subcategory = CAT_TOOL category = CAT_MISC +/datum/crafting_recipe/electrochromatic_kit + name = "Electrochromatic Kit" + result = /obj/item/electronics/electrochromatic_kit + reqs = list(/obj/item/stack/sheet/metal = 1, + /obj/item/stack/cable_coil = 1) + time = 5 + subcategory = CAT_TOOL + category = CAT_MISC + //////////// //Vehicles// //////////// @@ -377,15 +413,6 @@ subcategory = CAT_MISCELLANEOUS category = CAT_MISC -/datum/crafting_recipe/paperwork - name = "Filed Paper Work" - result = /obj/item/folder/paperwork_correct - time = 10 //Takes time for people to file and complete paper work! - tools = list(/obj/item/pen) - reqs = list(/obj/item/folder/paperwork = 1) - subcategory = CAT_MISCELLANEOUS - category = CAT_MISC - /datum/crafting_recipe/coconut_bong name = "Coconut Bong" result = /obj/item/bong/coconut diff --git a/code/datums/components/edit_complainer.dm b/code/datums/components/edit_complainer.dm index bf52296e2c..e2cca2eb50 100644 --- a/code/datums/components/edit_complainer.dm +++ b/code/datums/components/edit_complainer.dm @@ -3,7 +3,7 @@ var/list/say_lines /datum/component/edit_complainer/Initialize(list/text) - if(!ismovableatom(parent)) + if(!ismovable(parent)) return COMPONENT_INCOMPATIBLE var/static/list/default_lines = list( diff --git a/code/datums/components/explodable.dm b/code/datums/components/explodable.dm index 820208a319..2e5834c025 100644 --- a/code/datums/components/explodable.dm +++ b/code/datums/components/explodable.dm @@ -13,7 +13,7 @@ RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/explodable_attack) RegisterSignal(parent, COMSIG_TRY_STORAGE_INSERT, .proc/explodable_insert_item) RegisterSignal(parent, COMSIG_ATOM_EX_ACT, .proc/detonate) - if(ismovableatom(parent)) + if(ismovable(parent)) RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, .proc/explodable_impact) RegisterSignal(parent, COMSIG_MOVABLE_BUMP, .proc/explodable_bump) if(isitem(parent)) diff --git a/code/datums/components/fantasy/prefixes.dm b/code/datums/components/fantasy/prefixes.dm index 702ec9329a..5ef2ac2baf 100644 --- a/code/datums/components/fantasy/prefixes.dm +++ b/code/datums/components/fantasy/prefixes.dm @@ -54,7 +54,7 @@ /datum/fantasy_affix/pyromantic/apply(datum/component/fantasy/comp, newName) var/obj/item/master = comp.parent - comp.appliedComponents += master.AddComponent(/datum/component/igniter, CLAMP(comp.quality, 1, 10)) + comp.appliedComponents += master.AddComponent(/datum/component/igniter, clamp(comp.quality, 1, 10)) return "pyromantic [newName]" /datum/fantasy_affix/vampiric diff --git a/code/datums/components/identification.dm b/code/datums/components/identification.dm new file mode 100644 index 0000000000..f7dc211504 --- /dev/null +++ b/code/datums/components/identification.dm @@ -0,0 +1,88 @@ +/** + * Identification components + */ +/datum/component/identification + /// General flags for how we should work. + var/identification_flags = NONE + /// General flags for what we should do. + var/identification_effect_flags = NONE + /// General flags for how we can be identified. + var/identification_method_flags = NONE + /// If this is set, show this on examine to the examiner if they know how to use it. + var/additional_examine_text = "You seem to know more about this item than others.." + /// Added to deconstructive analyzer say on success if set + var/deconstructor_reveal_text = "item operation instructions" + +/datum/component/identification/Initialize(id_flags, id_effect_flags, id_method_flags) + if(!isobj(parent)) + return COMPONENT_INCOMPATIBLE + . = ..() + if(. & COMPONENT_INCOMPATIBLE) + return + identification_flags = id_flags + identification_effect_flags = id_effect_flags + identification_method_flags = id_method_flags + +/datum/component/identification/RegisterWithParent() + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_examine) + if(identification_effect_flags & ID_COMPONENT_EFFECT_NO_ACTIONS) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) + if(identification_method_flags & ID_COMPONENT_IDENTIFY_WITH_DECONSTRUCTOR) + RegisterSignal(parent, COMSIG_ITEM_DECONSTRUCTOR_DEEPSCAN, .proc/on_deconstructor_deepscan) + +/datum/component/identification/UnregisterFromParent() + var/list/unregister = list(COMSIG_PARENT_EXAMINE) + if(identification_effect_flags & ID_COMPONENT_EFFECT_NO_ACTIONS) + unregister += COMSIG_ITEM_EQUIPPED + if(identification_method_flags & ID_COMPONENT_IDENTIFY_WITH_DECONSTRUCTOR) + unregister += COMSIG_ITEM_DECONSTRUCTOR_DEEPSCAN + UnregisterSignal(parent, unregister) + +/datum/component/identification/proc/on_examine(datum/source, mob/user, list/returnlist) + if(check_knowledge(user) != ID_COMPONENT_KNOWLEDGE_FULL) + return + if(!additional_examine_text) + return + returnlist += additional_examine_text + +/datum/component/identification/vv_edit_var(var_name, var_value) + // since i care SOOO much about memory optimization, we only register signals we need to + // so when someone vv's us, we should probably make sure we have the ones we need to with an update. + if((var_value == NAMEOF(src, identification_flags)) || (var_value == NAMEOF(src, identification_effect_flags)) || (var_value == NAMEOF(src, identification_method_flags))) + UnregisterFromParent() + . = ..() + if((var_value == NAMEOF(src, identification_flags)) || (var_value == NAMEOF(src, identification_effect_flags)) || (var_value == NAMEOF(src, identification_method_flags))) + RegisterWithParent() + +/datum/component/identification/proc/on_equip(datum/source, mob/user) + if(check_knowledge(user) == ID_COMPONENT_KNOWLEDGE_FULL) + return + if(identification_method_flags & ID_COMPONENT_EFFECT_NO_ACTIONS) + return COMPONENT_NO_GRANT_ACTIONS + +/datum/component/identification/proc/check_knowledge(mob/user) + return ID_COMPONENT_KNOWLEDGE_NONE + +/datum/component/identification/proc/on_identify(mob/user) + if(identification_flags & ID_COMPONENT_DEL_ON_IDENTIFY) + qdel(src) + +/datum/component/identification/proc/on_deconstructor_deepscan(datum/source, obj/machinery/rnd/destructive_analyzer/analyzer, mob/user, list/information = list()) + if((identification_method_flags & ID_COMPONENT_IDENTIFY_WITH_DECONSTRUCTOR) && !(identification_flags & ID_COMPONENT_DECONSTRUCTOR_DEEPSCANNED)) + identification_flags |= ID_COMPONENT_DECONSTRUCTOR_DEEPSCANNED + on_identify(user) + if(deconstructor_reveal_text) + information += deconstructor_reveal_text + return COMPONENT_DEEPSCAN_UNCOVERED_INFORMATION + +/** + * Identification component subtype - Syndicate + * + * Checks if the user is a traitor. + */ +/datum/component/identification/syndicate + +/datum/component/identification/syndicate/check_knowledge(mob/user) + . = ..() + if(user?.mind?.has_antag_datum(/datum/antagonist/traitor)) + . = max(., ID_COMPONENT_KNOWLEDGE_FULL) diff --git a/code/datums/components/infective.dm b/code/datums/components/infective.dm index ad2b7ded14..8d3c6ab81f 100644 --- a/code/datums/components/infective.dm +++ b/code/datums/components/infective.dm @@ -13,7 +13,7 @@ expire_time = world.time + expire_in QDEL_IN(src, expire_in) - if(!ismovableatom(parent)) + if(!ismovable(parent)) return COMPONENT_INCOMPATIBLE RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean) RegisterSignal(parent, COMSIG_MOVABLE_BUCKLE, .proc/try_infect_buckle) diff --git a/code/datums/components/knockback.dm b/code/datums/components/knockback.dm index 988a0e575e..bd0d5ae352 100644 --- a/code/datums/components/knockback.dm +++ b/code/datums/components/knockback.dm @@ -1,13 +1,18 @@ /datum/component/knockback + /// distance the atom will be thrown var/throw_distance + /// whether this can throw anchored targets (tables, etc) var/throw_anchored + /// whether this is a gentle throw (default false means people thrown into walls are stunned / take damage) + var/throw_gentle -/datum/component/knockback/Initialize(throw_distance=1) +/datum/component/knockback/Initialize(throw_distance=1, throw_gentle=FALSE) if(!isitem(parent) && !ishostile(parent) && !isgun(parent) && !ismachinery(parent) && !isstructure(parent)) return COMPONENT_INCOMPATIBLE src.throw_distance = throw_distance src.throw_anchored = throw_anchored + src.throw_gentle = throw_gentle /datum/component/knockback/RegisterWithParent() . = ..() @@ -22,19 +27,31 @@ . = ..() UnregisterSignal(parent, list(COMSIG_ITEM_AFTERATTACK, COMSIG_HOSTILE_ATTACKINGTARGET, COMSIG_PROJECTILE_ON_HIT)) +/// triggered after an item attacks something /datum/component/knockback/proc/item_afterattack(obj/item/source, atom/target, mob/user, proximity_flag, click_parameters) if(!proximity_flag) return do_knockback(target, user, get_dir(source, target)) +/// triggered after a hostile simplemob attacks something /datum/component/knockback/proc/hostile_attackingtarget(mob/living/simple_animal/hostile/attacker, atom/target) do_knockback(target, attacker, get_dir(attacker, target)) +/// triggered after a projectile hits something /datum/component/knockback/proc/projectile_hit(atom/fired_from, atom/movable/firer, atom/target, Angle) do_knockback(target, null, angle2dir(Angle)) + +/** + * Throw a target in a direction + * + * Arguments: + * * target - Target atom to throw + * * thrower - Thing that caused this atom to be thrown + * * throw_dir - Direction to throw the atom + */ /datum/component/knockback/proc/do_knockback(atom/target, mob/thrower, throw_dir) - if(!ismovableatom(target) || throw_dir == null) + if(!ismovable(target) || throw_dir == null) return var/atom/movable/throwee = target if(throwee.anchored && !throw_anchored) @@ -43,4 +60,4 @@ throw_dir = turn(throw_dir, 180) throw_distance *= -1 var/atom/throw_target = get_edge_target_turf(throwee, throw_dir) - throwee.safe_throw_at(throw_target, throw_distance, 1, thrower) + throwee.safe_throw_at(throw_target, throw_distance, 1, thrower) //, gentle = throw_gentle) diff --git a/code/datums/components/magnetic_catch.dm b/code/datums/components/magnetic_catch.dm index c7e59e0ead..181b24260b 100644 --- a/code/datums/components/magnetic_catch.dm +++ b/code/datums/components/magnetic_catch.dm @@ -2,7 +2,7 @@ if(!isatom(parent)) return COMPONENT_INCOMPATIBLE RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) - if(ismovableatom(parent)) + if(ismovable(parent)) RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, .proc/crossed_react) RegisterSignal(parent, COMSIG_MOVABLE_UNCROSSED, .proc/uncrossed_react) for(var/i in get_turf(parent)) diff --git a/code/datums/components/mirage_border.dm b/code/datums/components/mirage_border.dm index 20e3b317ec..56b41533f5 100644 --- a/code/datums/components/mirage_border.dm +++ b/code/datums/components/mirage_border.dm @@ -14,8 +14,8 @@ var/x = target.x var/y = target.y var/z = target.z - var/turf/southwest = locate(CLAMP(x - (direction & WEST ? range : 0), 1, world.maxx), CLAMP(y - (direction & SOUTH ? range : 0), 1, world.maxy), CLAMP(z, 1, world.maxz)) - var/turf/northeast = locate(CLAMP(x + (direction & EAST ? range : 0), 1, world.maxx), CLAMP(y + (direction & NORTH ? range : 0), 1, world.maxy), CLAMP(z, 1, world.maxz)) + var/turf/southwest = locate(clamp(x - (direction & WEST ? range : 0), 1, world.maxx), clamp(y - (direction & SOUTH ? range : 0), 1, world.maxy), clamp(z, 1, world.maxz)) + var/turf/northeast = locate(clamp(x + (direction & EAST ? range : 0), 1, world.maxx), clamp(y + (direction & NORTH ? range : 0), 1, world.maxy), clamp(z, 1, world.maxz)) //holder.vis_contents += block(southwest, northeast) // This doesnt work because of beta bug memes for(var/i in block(southwest, northeast)) holder.vis_contents += i @@ -39,4 +39,5 @@ /obj/effect/abstract/mirage_holder name = "Mirage holder" anchored = TRUE + plane = PLANE_SPACE mouse_opacity = MOUSE_OPACITY_TRANSPARENT diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 5e9382f88e..23a81716b8 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -1,5 +1,7 @@ +#define SLIGHT_INSANITY_PEN 1 #define MINOR_INSANITY_PEN 5 #define MAJOR_INSANITY_PEN 10 +#define MOOD_INSANITY_MALUS 0.0054 // per point of sanity below SANITY_DISTURBED, a 40% debuff to skills at rock bottom depression. /datum/component/mood var/mood //Real happiness @@ -22,7 +24,6 @@ RegisterSignal(parent, COMSIG_CLEAR_MOOD_EVENT, .proc/clear_event) RegisterSignal(parent, COMSIG_MODIFY_SANITY, .proc/modify_sanity) RegisterSignal(parent, COMSIG_LIVING_REVIVE, .proc/on_revive) - RegisterSignal(parent, COMSIG_MOB_HUD_CREATED, .proc/modify_hud) var/mob/living/owner = parent if(owner.hud_used) @@ -150,7 +151,7 @@ if(8) setSanity(sanity+0.25, maximum=SANITY_GREAT) if(9) - setSanity(sanity+0.4, maximum=SANITY_GREAT) + setSanity(sanity+0.4, maximum=SANITY_AMAZING) HandleNutrition(owner) @@ -166,6 +167,7 @@ else if(sanity > maximum && amount > sanity - 0.5) amount = sanity - 0.5 + var/old_sanity = sanity // Disturbed stops you from getting any more sane if(HAS_TRAIT(master, TRAIT_UNSTABLE)) sanity = min(amount,sanity) @@ -175,28 +177,34 @@ switch(sanity) if(-INFINITY to SANITY_CRAZY) setInsanityEffect(MAJOR_INSANITY_PEN) - master.add_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE, 100, override=TRUE, multiplicative_slowdown=1.5) //Did we change something ? movetypes is runtiming, movetypes=(~FLYING)) + master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/insane) sanity_level = 6 if(SANITY_CRAZY to SANITY_UNSTABLE) setInsanityEffect(MINOR_INSANITY_PEN) - master.add_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE, 100, override=TRUE, multiplicative_slowdown=1)//, movetypes=(~FLYING)) + master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/crazy) sanity_level = 5 if(SANITY_UNSTABLE to SANITY_DISTURBED) - setInsanityEffect(0) - master.add_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE, 100, override=TRUE, multiplicative_slowdown=0.5)//, movetypes=(~FLYING)) + setInsanityEffect(SLIGHT_INSANITY_PEN) + master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/disturbed) sanity_level = 4 if(SANITY_DISTURBED to SANITY_NEUTRAL) setInsanityEffect(0) - master.remove_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE) + master.remove_movespeed_modifier(MOVESPEED_ID_SANITY) sanity_level = 3 if(SANITY_NEUTRAL+1 to SANITY_GREAT+1) //shitty hack but +1 to prevent it from responding to super small differences setInsanityEffect(0) - master.remove_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE) + master.remove_movespeed_modifier(MOVESPEED_ID_SANITY) sanity_level = 2 if(SANITY_GREAT+1 to INFINITY) setInsanityEffect(0) - master.remove_movespeed_modifier(MOVESPEED_ID_SANITY, TRUE) + master.remove_movespeed_modifier(MOVESPEED_ID_SANITY) sanity_level = 1 + + if(old_sanity > 1 && sanity == 1) + RegisterSignal(master, COMSIG_MOB_SKILL_GET_AFFINITY, .proc/on_get_skill_affinity) + else if(old_sanity == 1 && sanity > 1) + UnregisterSignal(master, COMSIG_MOB_SKILL_GET_AFFINITY) + //update_mood_icon() /datum/component/mood/proc/setInsanityEffect(newval)//More code so that the previous proc works @@ -204,9 +212,14 @@ return //var/mob/living/master = parent //master.crit_threshold = (master.crit_threshold - insanity_effect) + newval + if(!insanity_effect && newval) + RegisterSignal(parent, COMSIG_MOB_ACTION_SKILL_MOD, .proc/on_mob_action_skill_mod) + RegisterSignal(parent, COMSIG_MOB_ITEM_ACTION_SKILLS_MOD, .proc/on_item_action_skills_mod) + else if(insanity_effect && !newval) + UnregisterSignal(parent, list(COMSIG_MOB_ACTION_SKILL_MOD, COMSIG_MOB_ITEM_ACTION_SKILLS_MOD)) insanity_effect = newval -/datum/component/mood/proc/modify_sanity(datum/source, amount, minimum = -INFINITY, maximum = INFINITY) +/datum/component/mood/proc/modify_sanity(datum/source, amount, minimum = SANITY_INSANE, maximum = SANITY_AMAZING) setSanity(sanity + amount, minimum, maximum) /datum/component/mood/proc/add_event(datum/source, category, type, param) //Category will override any events in the same category, should be unique unless the event is based on the same thing like hunger. @@ -288,5 +301,40 @@ remove_temp_moods() setSanity(initial(sanity)) +/datum/component/mood/proc/on_mob_action_skill_mod(mob/source, list/skill_args, list/mod_values) + var/datum/skill/S = GLOB.skill_datums[skill_args[ACTION_SKILL_MOD_SKILL]] + if(!(S.skill_flags & SKILL_USE_MOOD)) + return + var/debuff = 1 - (SANITY_DISTURBED - sanity) * MOOD_INSANITY_MALUS + mod_values[MOD_VALUES_SKILL_MOD] *= skill_args[ACTION_SKILL_MOD_IS_MULTI] ? debuff : 1/debuff + +/datum/component/mood/proc/on_item_action_skills_mod(mob/source, list/skill_args, list/mod_values) + if(skill_args[ITEM_SKILLS_MOD_BAD_FLAGS] & SKILL_USE_MOOD) + return + var/divisor = mod_values[MOD_VALUES_ITEM_SKILLS_DIV] + if(!divisor) + return + var/obj/item/I = skill_args[ITEM_SKILLS_MOD_ITEM] + var/list/L = mod_values[MOD_VALUES_ITEM_SKILLS_CHECKED] + var/skills_len = length(L) + var/affected_skills = skills_len + for(var/k in L) + var/datum/skill/S = k + var/our_flags = I.used_skills[S.type]|S.skill_flags + if(!(our_flags & SKILL_USE_MOOD)) + affected_skills-- + if(!affected_skills) + return + var/debuff = 1 - (SANITY_DISTURBED - sanity) * MOOD_INSANITY_MALUS * (affected_skills/skills_len) + mod_values[MOD_VALUES_ITEM_SKILLS_SUM] *= skill_args[ITEM_SKILLS_MOD_IS_MULTI] ? debuff : 1/debuff + +/datum/component/mood/proc/on_get_skill_affinity(mob/source, skill_path, list/return_value) + var/datum/skill/S = GLOB.skill_datums[skill_path] + if(!S || !(S.skill_flags & SKILL_TRAIN_MOOD)) + return + return_value[1] *= SKILL_AFFINITY_MOOD_BONUS + +#undef SLIGHT_INSANITY_PEN #undef MINOR_INSANITY_PEN #undef MAJOR_INSANITY_PEN +#undef MOOD_INSANITY_MALUS diff --git a/code/datums/components/nanites.dm b/code/datums/components/nanites.dm index 7aacb745b6..29add286be 100644 --- a/code/datums/components/nanites.dm +++ b/code/datums/components/nanites.dm @@ -12,7 +12,7 @@ var/list/datum/nanite_program/programs = list() var/max_programs = NANITE_PROGRAM_LIMIT - var/list/datum/nanite_program/protocol/protocols = list() ///Separate list of protocol programs, to avoid looping through the whole programs list when cheking for conflicts + var/list/datum/nanite_program/protocol/protocols = list() ///Separate list of protocol programs, to avoid looping through the whole programs list when checking for conflicts var/start_time = 0 ///Timestamp to when the nanites were first inserted in the host var/stealth = FALSE //if TRUE, does not appear on HUDs and health scans var/diagnostics = TRUE //if TRUE, displays program list when scanned by nanite scanners @@ -175,7 +175,7 @@ return (nanite_volume > 0) /datum/component/nanites/proc/adjust_nanites(datum/source, amount) - nanite_volume = CLAMP(nanite_volume + amount, 0, max_nanites) + nanite_volume = clamp(nanite_volume + amount, 0, max_nanites) if(nanite_volume <= 0) //oops we ran out qdel(src) @@ -187,7 +187,7 @@ if(remove || stealth) return //bye icon var/nanite_percent = (nanite_volume / max_nanites) * 100 - nanite_percent = CLAMP(CEILING(nanite_percent, 10), 10, 100) + nanite_percent = clamp(CEILING(nanite_percent, 10), 10, 100) holder.icon_state = "nanites[nanite_percent]" /datum/component/nanites/proc/on_emp(datum/source, severity) @@ -249,13 +249,13 @@ return FALSE /datum/component/nanites/proc/set_volume(datum/source, amount) - nanite_volume = CLAMP(amount, 0, max_nanites) + nanite_volume = clamp(amount, 0, max_nanites) /datum/component/nanites/proc/set_max_volume(datum/source, amount) max_nanites = max(1, max_nanites) /datum/component/nanites/proc/set_cloud(datum/source, amount) - cloud_id = CLAMP(amount, 0, 100) + cloud_id = clamp(amount, 0, 100) /datum/component/nanites/proc/set_cloud_sync(datum/source, method) switch(method) @@ -267,7 +267,7 @@ cloud_active = TRUE /datum/component/nanites/proc/set_safety(datum/source, amount) - safety_threshold = CLAMP(amount, 0, max_nanites) + safety_threshold = clamp(amount, 0, max_nanites) /datum/component/nanites/proc/set_regen(datum/source, amount) regen_rate = amount diff --git a/code/datums/components/orbiter.dm b/code/datums/components/orbiter.dm index 2be22d01e5..49e6b91c6d 100644 --- a/code/datums/components/orbiter.dm +++ b/code/datums/components/orbiter.dm @@ -22,14 +22,14 @@ /datum/component/orbiter/RegisterWithParent() . = ..() var/atom/target = parent - while(ismovableatom(target)) + while(ismovable(target)) RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/move_react) target = target.loc /datum/component/orbiter/UnregisterFromParent() . = ..() var/atom/target = parent - while(ismovableatom(target)) + while(ismovable(target)) UnregisterSignal(target, COMSIG_MOVABLE_MOVED) target = target.loc @@ -111,12 +111,12 @@ // These are prety rarely activated, how often are you following something in a bag? if(oldloc && !isturf(oldloc)) // We used to be registered to it, probably var/atom/target = oldloc - while(ismovableatom(target)) + while(ismovable(target)) UnregisterSignal(target, COMSIG_MOVABLE_MOVED) target = target.loc if(orbited?.loc && orbited.loc != newturf) // We want to know when anything holding us moves too var/atom/target = orbited.loc - while(ismovableatom(target)) + while(ismovable(target)) RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/move_react, TRUE) target = target.loc diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm index 4d8cfc4412..747dd8ca61 100644 --- a/code/datums/components/riding.dm +++ b/code/datums/components/riding.dm @@ -20,16 +20,21 @@ var/ride_check_ridden_incapacitated = FALSE var/list/offhands = list() // keyed list containing all the current riding offsets associated by mob + var/del_on_unbuckle_all = FALSE + /datum/component/riding/Initialize() - if(!ismovableatom(parent)) + if(!ismovable(parent)) return COMPONENT_INCOMPATIBLE RegisterSignal(parent, COMSIG_MOVABLE_BUCKLE, .proc/vehicle_mob_buckle) RegisterSignal(parent, COMSIG_MOVABLE_UNBUCKLE, .proc/vehicle_mob_unbuckle) RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/vehicle_moved) /datum/component/riding/proc/vehicle_mob_unbuckle(datum/source, mob/living/M, force = FALSE) + var/atom/movable/AM = parent restore_position(M) unequip_buckle_inhands(M) + if(del_on_unbuckle_all && !AM.has_buckled_mobs()) + qdel(src) /datum/component/riding/proc/vehicle_mob_buckle(datum/source, mob/living/M, force = FALSE) handle_vehicle_offsets() @@ -194,26 +199,28 @@ ///////Yes, I said humans. No, this won't end well...////////// /datum/component/riding/human + del_on_unbuckle_all = TRUE var/fireman_carrying = FALSE /datum/component/riding/human/Initialize() . = ..() + directional_vehicle_layers = list(TEXT_NORTH = MOB_LOWER_LAYER, TEXT_SOUTH = MOB_UPPER_LAYER, TEXT_EAST = MOB_UPPER_LAYER, TEXT_WEST = MOB_UPPER_LAYER) RegisterSignal(parent, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, .proc/on_host_unarmed_melee) /datum/component/riding/human/vehicle_mob_unbuckle(datum/source, mob/living/M, force = FALSE) - . = ..() var/mob/living/carbon/human/H = parent if(!length(H.buckled_mobs)) - H.remove_movespeed_modifier(MOVESPEED_ID_HUMAN_CARRYING) + H.remove_movespeed_modifier(/datum/movespeed_modifier/human_carry) if(!fireman_carrying) M.Daze(25) REMOVE_TRAIT(M, TRAIT_MOBILITY_NOUSE, src) + return ..() /datum/component/riding/human/vehicle_mob_buckle(datum/source, mob/living/M, force = FALSE) . = ..() var/mob/living/carbon/human/H = parent if(length(H.buckled_mobs)) - H.add_movespeed_modifier(MOVESPEED_ID_HUMAN_CARRYING, multiplicative_slowdown = fireman_carrying? FIREMAN_CARRY_SLOWDOWN : PIGGYBACK_CARRY_SLOWDOWN) + H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/human_carry, TRUE, fireman_carrying? FIREMAN_CARRY_SLOWDOWN : PIGGYBACK_CARRY_SLOWDOWN) if(fireman_carrying) ADD_TRAIT(M, TRAIT_MOBILITY_NOUSE, src) @@ -260,6 +267,11 @@ user.visible_message("[AM] pushes [user] off of [AM.p_them()]!") /datum/component/riding/cyborg + del_on_unbuckle_all = TRUE + +/datum/component/riding/cyborg/Initialize() + . = ..() + directional_vehicle_layers = list(TEXT_NORTH = MOB_LOWER_LAYER, TEXT_SOUTH = MOB_UPPER_LAYER, TEXT_EAST = MOB_UPPER_LAYER, TEXT_WEST = MOB_UPPER_LAYER) /datum/component/riding/cyborg/ride_check(mob/user) var/atom/movable/AM = parent diff --git a/code/datums/components/rotation.dm b/code/datums/components/rotation.dm index 422d73520e..6a32a46aef 100644 --- a/code/datums/components/rotation.dm +++ b/code/datums/components/rotation.dm @@ -14,7 +14,7 @@ var/default_rotation_direction = ROTATION_CLOCKWISE /datum/component/simple_rotation/Initialize(rotation_flags = NONE ,can_user_rotate,can_be_rotated,after_rotation) - if(!ismovableatom(parent)) + if(!ismovable(parent)) return COMPONENT_INCOMPATIBLE //throw if no rotation direction is specificed ? diff --git a/code/datums/components/shielded.dm b/code/datums/components/shielded.dm new file mode 100644 index 0000000000..2052e57f49 --- /dev/null +++ b/code/datums/components/shielded.dm @@ -0,0 +1,191 @@ +/datum/component/shielded + dupe_mode = COMPONENT_DUPE_ALLOWED + can_transfer = TRUE + var/charges = 3 + var/max_charges = 3 + var/recharge_delay = 20 SECONDS //How long after we've been attacked before we can start recharging. + var/recharge_rate = 1 //How quickly the shield recharges once it starts charging. Can be a decimal. set to zero to disable. + var/last_time_used //Last time the shield attempted to stop an attack. + var/accepted_slots + var/shield_state = "shield-old" //the state of the shield overlay. + var/broken_state //null by default. + var/recharge_sound = 'sound/magic/charge.ogg' + var/recharge_end_sound = 'sound/machines/ding.ogg' + var/mob/living/holder //who is currently benefiting from the shield. + var/dissipating = FALSE //Is this shield meant to dissipate over time instead of recharging. + var/del_on_overload = FALSE //will delete itself once it has no charges left. + +/datum/component/shielded/Initialize(current, max = 3, delay = 20 SECONDS, rate = 1, slots, state = "shield-old", broken, \ + sound = 'sound/magic/charge.ogg', end_sound = 'sound/machines/ding.ogg', diss = FALSE, del_overload = FALSE) + var/isitem = isitem(parent) + if(!isitem && !isliving(parent)) + return COMPONENT_INCOMPATIBLE + max_charges = max + charges = !isnull(current) ? current : max_charges + recharge_delay = delay + recharge_rate = rate + accepted_slots = slots + shield_state = state + broken_state = broken + recharge_sound = sound + recharge_end_sound = end_sound + dissipating = diss + del_on_overload = del_overload + if(dissipating && recharge_rate > 0) + recharge_rate = -recharge_rate + if(recharge_delay && recharge_rate && (charges < max_charges || dissipating)) + START_PROCESSING(SSdcs, src) + +/datum/component/shielded/RegisterWithParent() + . = ..() + if(isitem(parent)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) + else //it's a mob + var/mob/living/L = parent + RegisterSignal(L, COMSIG_LIVING_RUN_BLOCK, .proc/living_block) + holder = L + var/to_add = charges >= 1 ? shield_state : broken_state + if(to_add) + var/mutable_appearance/M = mutable_appearance('icons/effects/effects.dmi', to_add) + M.layer = (L.layer > MOB_LAYER ? L.layer : MOB_LAYER) + 0.01 + holder.add_overlay(M, TRUE) + +/datum/component/shielded/UnregisterFromParent() + . = ..() + if(parent != holder) //not a mob, thus an item. + UnregisterSignal(parent, list(COMSIG_ITEM_RUN_BLOCK,COMSIG_ITEM_CHECK_BLOCK,COMSIG_ITEM_EQUIPPED,COMSIG_ITEM_DROPPED)) + if(holder) + UnregisterSignal(holder, list(COMSIG_LIVING_RUN_BLOCK, COMSIG_LIVING_GET_BLOCKING_ITEMS)) + var/to_remove = charges >= 1 ? shield_state : broken_state + if(to_remove) + holder.cut_overlay(mutable_appearance('icons/effects/effects.dmi', to_remove), TRUE) + holder = null + +/datum/component/shielded/process() + if(world.time < last_time_used && !dissipating) + return + var/old_charges = charges + charges = clamp(charges + recharge_rate, 0, max_charges) + if(round(old_charges) >= round(charges)) //only send outputs if it effectively gained at least one charge + return + var/sound = recharge_sound + if(dissipating ? !charges : charges == max_charges ) + STOP_PROCESSING(SSdcs, src) + sound = recharge_end_sound + if(parent && sound) + playsound(parent, sound, 50, 1) + if(charges < 1 && del_on_overload) + if(holder) + holder.visible_message("[holder]'s shield overloads!") + qdel(src) + return + if(holder && (old_charges < 1 && charges >= 1) || (!del_on_overload && old_charges >= 1 && charges < 1)) + update_shield_overlay(charges < 1) + +/datum/component/shielded/proc/adjust_charges(amount) + var/old_charges = charges + charges = clamp(charges + amount, 0, max_charges) + if(recharge_delay && recharge_rate && (dissipating ? !charges : charges == max_charges)) + STOP_PROCESSING(SSdcs, src) + if(charges < 1 && del_on_overload) + if(holder) + holder.visible_message("[holder]'s shield overloads!") + qdel(src) + return + if(holder && (old_charges < 1 && charges >= 1) || (!del_on_overload && old_charges >= 1 && charges < 1)) + update_shield_overlay(charges < 1) + +/datum/component/shielded/proc/update_shield_overlay(broken) + if(!holder) + return + var/to_remove = broken ? shield_state : broken_state + var/to_add = broken ? broken_state : shield_state + if(to_remove) + holder.cut_overlay(mutable_appearance('icons/effects/effects.dmi', to_remove), TRUE) + if(to_add) + var/mutable_appearance/M = mutable_appearance('icons/effects/effects.dmi', to_add) + M.layer = (holder.layer > MOB_LAYER ? holder.layer : MOB_LAYER) + 0.01 + holder.add_overlay(M, TRUE) + +/datum/component/shielded/proc/on_equip(obj/item/source, mob/living/equipper, slot) + if(!(accepted_slots & slotdefine2slotbit(slot))) + return + holder = equipper + RegisterSignal(parent, COMSIG_ITEM_RUN_BLOCK, .proc/on_run_block) + RegisterSignal(parent, COMSIG_ITEM_CHECK_BLOCK, .proc/on_check_block) + RegisterSignal(equipper, COMSIG_LIVING_GET_BLOCKING_ITEMS, .proc/include_shield) + var/to_add = charges >= 1 ? shield_state : broken_state + if(to_add) + var/mutable_appearance/M = mutable_appearance('icons/effects/effects.dmi', to_add) + M.layer = (holder.layer > MOB_LAYER ? holder.layer : MOB_LAYER) + 0.01 + equipper.add_overlay(M, TRUE) + +/datum/component/shielded/proc/on_drop(obj/item/source, mob/dropper) + if(holder == dropper) + UnregisterSignal(holder, COMSIG_LIVING_GET_BLOCKING_ITEMS) + UnregisterSignal(parent, list(COMSIG_ITEM_RUN_BLOCK, COMSIG_ITEM_CHECK_BLOCK)) + var/to_remove = charges >= 1 ? shield_state : broken_state + if(to_remove) + holder.cut_overlay(mutable_appearance('icons/effects/effects.dmi', to_remove), TRUE) + holder = null + +/datum/component/shielded/proc/include_shield(mob/source, list/items) + items += parent + +/datum/component/shielded/proc/on_run_block(obj/item/source, mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(block_return[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] >= 100) //already blocked by another shielded item, don't do anything. + block_return[BLOCK_RETURN_BLOCK_CAPACITY] += round(charges) + return BLOCK_NONE + last_time_used = world.time + recharge_delay + if(charges < 1) + return BLOCK_NONE + var/datum/effect_system/spark_spread/s = new + s.set_up(2, 1, source) + s.start() + owner.visible_message("[holder]'s shields deflect [attack_text] in a shower of sparks!") + charges-- + var/rounded_charges = round(charges) + if(recharge_delay && recharge_rate && !dissipating) + START_PROCESSING(SSdcs, src) + if(charges < 1) + owner.visible_message("[holder]'s shield overloads!") + if(del_on_overload) + qdel(src) + else + update_shield_overlay(TRUE) + block_return[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] = 100 + block_return[BLOCK_RETURN_BLOCK_CAPACITY] += rounded_charges + return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL + +/datum/component/shielded/proc/on_check_block(obj/item/source, mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(charges >= 1) + block_return[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] = 100 + block_return[BLOCK_RETURN_BLOCK_CAPACITY] += round(charges) + +/datum/component/shielded/proc/living_block(mob/living/source, real_attack, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list) + if(!real_attack) + if(charges >= 1) + return_list[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] = 100 + return_list[BLOCK_RETURN_BLOCK_CAPACITY] = round(charges) + return + last_time_used = world.time + recharge_delay + if(charges < 1) + return BLOCK_NONE + var/datum/effect_system/spark_spread/s = new + s.set_up(2, 1, source) + s.start() + source.visible_message("[source]'s shields deflect [attack_text] in a shower of sparks!") + charges-- + var/rounded_charges = round(charges) + if(recharge_delay && recharge_rate && !dissipating) + START_PROCESSING(SSdcs, src) + if(charges < 1) + source.visible_message("[source]'s shield overloads!") + if(del_on_overload) + qdel(src) + else + update_shield_overlay(TRUE) + return_list[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] = 100 + return_list[BLOCK_RETURN_BLOCK_CAPACITY] += rounded_charges + return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL diff --git a/code/datums/components/shrink.dm b/code/datums/components/shrink.dm index f070d9b22f..96807fe313 100644 --- a/code/datums/components/shrink.dm +++ b/code/datums/components/shrink.dm @@ -14,7 +14,7 @@ parent_atom.opacity = 0 if(isliving(parent_atom)) var/mob/living/L = parent_atom - L.add_movespeed_modifier(MOVESPEED_ID_SHRINK_RAY, update=TRUE, priority=100, multiplicative_slowdown=4) + L.add_movespeed_modifier(/datum/movespeed_modifier/shrink_ray) if(iscarbon(L)) var/mob/living/carbon/C = L C.unequip_everything() @@ -35,7 +35,7 @@ parent_atom.opacity = oldopac if(isliving(parent_atom)) var/mob/living/L = parent_atom - L.remove_movespeed_modifier(MOVESPEED_ID_SHRINK_RAY) + L.remove_movespeed_modifier(/datum/movespeed_modifier/shrink_ray) if(ishuman(L)) var/mob/living/carbon/human/H = L H.physiology.damage_resistance += 100 diff --git a/code/datums/components/squeak.dm b/code/datums/components/squeak.dm index ad538760db..792222b27b 100644 --- a/code/datums/components/squeak.dm +++ b/code/datums/components/squeak.dm @@ -16,7 +16,7 @@ if(!isatom(parent)) return COMPONENT_INCOMPATIBLE RegisterSignal(parent, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_BLOB_ACT, COMSIG_ATOM_HULK_ATTACK, COMSIG_PARENT_ATTACKBY), .proc/play_squeak) - if(ismovableatom(parent)) + if(ismovable(parent)) RegisterSignal(parent, list(COMSIG_MOVABLE_BUMP, COMSIG_MOVABLE_IMPACT), .proc/play_squeak) RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED, COMSIG_ITEM_WEARERCROSSED), .proc/play_squeak_crossed) RegisterSignal(parent, COMSIG_MOVABLE_DISPOSING, .proc/disposing_react) diff --git a/code/datums/components/stationloving.dm b/code/datums/components/stationloving.dm index 13267e74c3..b651133274 100644 --- a/code/datums/components/stationloving.dm +++ b/code/datums/components/stationloving.dm @@ -5,7 +5,7 @@ var/allow_death = FALSE /datum/component/stationloving/Initialize(inform_admins = FALSE, allow_death = FALSE) - if(!ismovableatom(parent)) + if(!ismovable(parent)) return COMPONENT_INCOMPATIBLE RegisterSignal(parent, list(COMSIG_MOVABLE_Z_CHANGED), .proc/check_in_bounds) RegisterSignal(parent, list(COMSIG_MOVABLE_SECLUDED_LOCATION), .proc/relocate) diff --git a/code/datums/components/storage/concrete/pockets.dm b/code/datums/components/storage/concrete/pockets.dm index 4d3ecc8d17..851885b2ed 100644 --- a/code/datums/components/storage/concrete/pockets.dm +++ b/code/datums/components/storage/concrete/pockets.dm @@ -56,7 +56,8 @@ /obj/item/scalpel, /obj/item/reagent_containers/syringe, /obj/item/dnainjector, /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/dropper, /obj/item/implanter, /obj/item/screwdriver, /obj/item/weldingtool/mini, - /obj/item/firing_pin, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/automatic/magrifle/pistol + /obj/item/firing_pin, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/automatic/magrifle/pistol, + /obj/item/toy/plush/snakeplushie )) /datum/component/storage/concrete/pockets/shoes/clown/Initialize() diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 4100942fec..aad6e8289f 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -15,6 +15,7 @@ var/datum/component/storage/concrete/master //If not null, all actions act on master and this is just an access point. var/list/can_hold //if this is set, only things in this typecache will fit. + var/list/can_hold_extra //if this is set, it will also be able to hold these. var/list/cant_hold //if this is set, anything in this typecache will not be able to fit. var/list/mob/is_using //lazy list of mobs looking at the contents of this storage. @@ -493,26 +494,25 @@ if(M && !stop_messages) host.add_fingerprint(M) return FALSE - if(length(can_hold)) - if(!is_type_in_typecache(I, can_hold)) + if(!length(can_hold_extra) || !is_type_in_typecache(I, can_hold_extra)) + if(length(can_hold) && !is_type_in_typecache(I, can_hold)) if(!stop_messages) to_chat(M, "[host] cannot hold [I]!") return FALSE - if(is_type_in_typecache(I, cant_hold)) //Check for specific items which this container can't hold. - if(!stop_messages) - to_chat(M, "[host] cannot hold [I]!") - return FALSE - // STORAGE LIMITS + if(is_type_in_typecache(I, cant_hold)) //Check for specific items which this container can't hold. + if(!stop_messages) + to_chat(M, "[host] cannot hold [I]!") + return FALSE + if(storage_flags & STORAGE_LIMIT_MAX_W_CLASS && I.w_class > max_w_class) + if(!stop_messages) + to_chat(M, "[I] is too long for [host]!") + return FALSE + // STORAGE LIMITS if(storage_flags & STORAGE_LIMIT_MAX_ITEMS) if(real_location.contents.len >= max_items) if(!stop_messages) to_chat(M, "[host] has too many things in it, make some space!") return FALSE //Storage item is full - if(storage_flags & STORAGE_LIMIT_MAX_W_CLASS) - if(I.w_class > max_w_class) - if(!stop_messages) - to_chat(M, "[I] is too long for [host]!") - return FALSE if(storage_flags & STORAGE_LIMIT_COMBINED_W_CLASS) var/sum_w_class = I.w_class for(var/obj/item/_I in real_location) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index dd8607a51c..f37f574002 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -27,8 +27,8 @@ numbered_contents = _process_numerical_display() adjusted_contents = numbered_contents.len - var/columns = CLAMP(max_items, 1, maxcolumns ? maxcolumns : screen_max_columns) - var/rows = CLAMP(CEILING(adjusted_contents / columns, 1), 1, screen_max_rows) + var/columns = clamp(max_items, 1, maxcolumns ? maxcolumns : screen_max_columns) + var/rows = clamp(CEILING(adjusted_contents / columns, 1), 1, screen_max_rows) // First, boxes. ui_boxes = get_ui_boxes() @@ -105,7 +105,7 @@ // after this point we are sure we can somehow fit all items into our max number of rows. // determine rows - var/rows = CLAMP(CEILING(min_pixels / horizontal_pixels, 1), 1, screen_max_rows) + var/rows = clamp(CEILING(min_pixels / horizontal_pixels, 1), 1, screen_max_rows) var/overrun = FALSE if(used > our_volume) @@ -198,7 +198,7 @@ M.active_storage.ui_hide(M) M.active_storage = src LAZYOR(is_using, M) - if(volumetric_ui()) + if(!M.client?.prefs?.no_tetris_storage && volumetric_ui()) //new volumetric ui bay-style M.client.screen |= orient2hud_volumetric(M, maxallowedscreensize) else diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm new file mode 100644 index 0000000000..ddc47d59a1 --- /dev/null +++ b/code/datums/components/tackle.dm @@ -0,0 +1,491 @@ +#define MAX_TABLE_MESSES 8 // how many things can we knock off a table at once? + +/** + *#tackle.dm + * + * For when you want to throw a person at something and have fun stuff happen + * + * This component is made for carbon mobs (really, humans), and allows its parent to throw themselves and perform tackles. This is done by enabling throw mode, then clicking on your + * intended target with an empty hand. You will then launch toward your target. If you hit a carbon, you'll roll to see how hard you hit them. If you hit a solid non-mob, you'll + * roll to see how badly you just messed yourself up. If, along your journey, you hit a table, you'll slam onto it and send up to MAX_TABLE_MESSES (8) /obj/items on the table flying, + * and take a bit of extra damage and stun for each thing launched. + * + * There are 2 """skill rolls""" involved here, which are handled and explained in sack() and rollTackle() (for roll 1, carbons), and splat() (for roll 2, walls and solid objects) +*/ +/datum/component/tackler + dupe_mode = COMPONENT_DUPE_UNIQUE + ///How much stamina it takes to launch a tackle + var/stamina_cost + ///Launching a tackle calls Knockdown on you for this long, so this is your cooldown. Once you stand back up, you can tackle again. + var/base_knockdown + ///Your max range for how far you can tackle. + var/range + ///How fast you sail through the air. Standard tackles are 1 speed, but gloves that throw you faster come at a cost: higher speeds make it more likely you'll be badly injured if you fly into a non-mob obstacle. + var/speed + ///A flat modifier to your roll against your target, as described in [rollTackle()][/datum/component/tackler/proc/rollTackle]. Slightly misleading, skills aren't relevant here, this is a matter of what type of gloves (or whatever) is granting you the ability to tackle. + var/skill_mod + ///Some gloves, generally ones that increase mobility, may have a minimum distance to fly. Rocket gloves are especially dangerous with this, be sure you'll hit your target or have a clear background if you miss, or else! + var/min_distance + ///The throwdatum we're currently dealing with, if we need it + var/datum/thrownthing/tackle + +/datum/component/tackler/Initialize(stamina_cost = 25, base_knockdown = 1 SECONDS, range = 4, speed = 1, skill_mod = 0, min_distance = min_distance) + if(!iscarbon(parent)) + return COMPONENT_INCOMPATIBLE + + src.stamina_cost = stamina_cost + src.base_knockdown = base_knockdown + src.range = range + src.speed = speed + src.skill_mod = skill_mod + src.min_distance = min_distance + + var/mob/living/carbon/P = parent + to_chat(P, "You are now able to launch tackles! You can do so by activating throw intent, and clicking on your target with an empty hand.") + P.tackling = TRUE + addtimer(CALLBACK(src, .proc/resetTackle), base_knockdown, TIMER_STOPPABLE) + +/datum/component/tackler/Destroy() + var/mob/living/carbon/P = parent + to_chat(P, "You can no longer tackle.") + P.tackling = FALSE + ..() + +/datum/component/tackler/RegisterWithParent() + RegisterSignal(parent, COMSIG_MOB_CLICKON, .proc/checkTackle) + RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, .proc/sack) + RegisterSignal(parent, COMSIG_MOVABLE_POST_THROW, .proc/registerTackle) + +/datum/component/tackler/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_MOB_CLICKON, COMSIG_MOVABLE_IMPACT, COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_POST_THROW)) + +///Store the thrownthing datum for later use +/datum/component/tackler/proc/registerTackle(mob/living/carbon/user, datum/thrownthing/TT) + tackle = TT + +///See if we can tackle or not. If we can, leap! +/datum/component/tackler/proc/checkTackle(mob/living/carbon/user, atom/A, params) + if(!user.in_throw_mode || user.get_active_held_item() || user.pulling || user.buckling) + return + + if(HAS_TRAIT(user, TRAIT_HULK)) + to_chat(user, "You're too angry to remember how to tackle!") + return + + if(user.restrained()) + to_chat(user, "You need free use of your hands to tackle!") + return + + if(!(user.mobility_flags & MOBILITY_STAND)) + to_chat(user, "You must be standing to tackle!") + return + + if(user.tackling) + to_chat(user, "You're not ready to tackle!") + return + + if(user.has_status_effect(STATUS_EFFECT_TASED)) // can't tackle if you just got tased + to_chat(user, "You can't tackle while tased!") + return + + user.face_atom(A) + + var/list/modifiers = params2list(params) + if(modifiers["alt"] || modifiers["shift"] || modifiers["ctrl"] || modifiers["middle"]) + return + + user.tackling = TRUE + RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/checkObstacle) + playsound(user, 'sound/weapons/thudswoosh.ogg', 40, TRUE, -1) + + var/leap_word = iscatperson(user) ? "pounce" : "leap" ///If cat, "pounce" instead of "leap". + if(can_see(user, A, 7)) + user.visible_message("[user] [leap_word]s at [A]!", "You [leap_word] at [A]!") + else + user.visible_message("[user] [leap_word]s!", "You [leap_word]!") + + if(get_dist(user, A) < min_distance) + A = get_ranged_target_turf(user, get_dir(user, A), min_distance) //TODO: this only works in cardinals/diagonals, make it work with in-betweens too! + + user.Knockdown(base_knockdown, TRUE, TRUE) + user.adjustStaminaLoss(stamina_cost) + user.throw_at(A, range, speed, user, FALSE) + user.toggle_throw_mode() + addtimer(CALLBACK(src, .proc/resetTackle), base_knockdown, TIMER_STOPPABLE) + return(COMSIG_MOB_CANCEL_CLICKON) + +/** + * sack() + * + * sack() is called when you actually smack into something, assuming we're mid-tackle. First it deals with smacking into non-carbons, in two cases: + * * If it's a non-carbon mob, we don't care, get out of here and do normal thrown-into-mob stuff + * * Else, if it's something dense (walls, machinery, structures, most things other than the floor), go to splat() and get ready for some high grade shit + * + * If it's a carbon we hit, we'll call rollTackle() which rolls a die and calculates modifiers for both the tackler and target, then gives us a number. Negatives favor the target, while positives favor the tackler. + * Check [rollTackle()][/datum/component/tackler/proc/rollTackle] for a more thorough explanation on the modifiers at play. + * + * Then, we figure out what effect we want, and we get to work! Note that with standard gripper gloves and no modifiers, the range of rolls is (-3, 3). The results are as follows, based on what we rolled: + * * -inf to -5: Seriously botched tackle, tackler suffers a concussion, brute damage, and a 3 second paralyze, target suffers nothing + * * -4 to -2: weak tackle, tackler gets 3 second knockdown, target gets shove slowdown but is otherwise fine + * * -1 to 0: decent tackle, tackler gets up a bit quicker than the target + * * 1: solid tackle, tackler has more of an advantage getting up quicker + * * 2 to 4: expert tackle, tackler has sizeable advantage and lands on their feet with a free passive grab + * * 5 to inf: MONSTER tackle, tackler gets up immediately and gets a free aggressive grab, target takes sizeable stamina damage from the hit and is paralyzed for one and a half seconds and knocked down for three seconds + * + * Finally, we return a bitflag to [COMSIG_MOVABLE_IMPACT] that forces the hitpush to false so that we don't knock them away. +*/ +/datum/component/tackler/proc/sack(mob/living/carbon/user, atom/hit) + if(!user.tackling || !tackle) + return + + if(!iscarbon(hit)) + if(hit.density) + return splat(user, hit) + return + + var/mob/living/carbon/target = hit + var/tackle_word = iscatperson(user) ? "pounce" : "tackle" ///If cat, "pounce" instead of "tackle". + + var/roll = rollTackle(target) + user.tackling = FALSE + + switch(roll) + if(-INFINITY to -5) + user.visible_message("[user] botches [user.p_their()] [tackle_word] and slams [user.p_their()] head into [target], knocking [user.p_them()]self silly!", "You botch your [tackle_word] and slam your head into [target], knocking yourself silly!", target) + to_chat(target, "[user] botches [user.p_their()] [tackle_word] and slams [user.p_their()] head into you, knocking [user.p_them()]self silly!") + + user.Paralyze(30) + var/obj/item/bodypart/head/hed = user.get_bodypart(BODY_ZONE_HEAD) + if(hed) + hed.receive_damage(brute=20, updating_health=TRUE) + user.gain_trauma(/datum/brain_trauma/mild/concussion) + + if(-4 to -2) // glancing blow at best + user.visible_message("[user] lands a weak [tackle_word] on [target], briefly knocking [target.p_them()] off-balance!", "You land a weak [tackle_word] on [target], briefly knocking [target.p_them()] off-balance!", target) + to_chat(target, "[user] lands a weak [tackle_word] on you, briefly knocking you off-balance!") + + user.Knockdown(30) + target.apply_status_effect(STATUS_EFFECT_TASED_WEAK, 6 SECONDS) + + if(-1 to 0) // decent hit, both parties are about equally inconvenienced + user.visible_message("[user] lands a passable [tackle_word] on [target], sending them both tumbling!", "You land a passable [tackle_word] on [target], sending you both tumbling!", target) + to_chat(target, "[user] lands a passable [tackle_word] on you, sending you both tumbling!") + + target.adjustStaminaLoss(stamina_cost) + target.Paralyze(5) + user.Knockdown(20) + target.Knockdown(25) + + if(1 to 2) // solid hit, tackler has a slight advantage + user.visible_message("[user] lands a solid [tackle_word] on [target], knocking them both down hard!", "You land a solid [tackle_word] on [target], knocking you both down hard!", target) + to_chat(target, "[user] lands a solid [tackle_word] on you, knocking you both down hard!") + + target.adjustStaminaLoss(30) + target.Paralyze(5) + user.Knockdown(10) + target.Knockdown(20) + + if(3 to 4) // really good hit, the target is definitely worse off here. Without positive modifiers, this is as good a tackle as you can land + user.visible_message("[user] lands an expert [tackle_word] on [target], knocking [target.p_them()] down hard while landing on [user.p_their()] feet with a passive grip!", "You land an expert [tackle_word] on [target], knocking [target.p_them()] down hard while landing on your feet with a passive grip!", target) + to_chat(target, "[user] lands an expert [tackle_word] on you, knocking you down hard and maintaining a passive grab!") + + user.SetKnockdown(0) + user.set_resting(FALSE, TRUE, FALSE) + user.forceMove(get_turf(target)) + target.adjustStaminaLoss(40) + target.Paralyze(5) + target.Knockdown(30) + if(ishuman(target) && iscarbon(user)) + target.grabbedby(user) + + if(5 to INFINITY) // absolutely BODIED + user.visible_message("[user] lands a monster [tackle_word] on [target], knocking [target.p_them()] senseless and applying an aggressive pin!", "You land a monster [tackle_word] on [target], knocking [target.p_them()] senseless and applying an aggressive pin!", target) + to_chat(target, "[user] lands a monster [tackle_word] on you, knocking you senseless and aggressively pinning you!") + + user.SetKnockdown(0) + user.set_resting(FALSE, TRUE, FALSE) + user.forceMove(get_turf(target)) + target.adjustStaminaLoss(40) + target.Paralyze(5) + target.Knockdown(30) + if(ishuman(target) && iscarbon(user)) + target.grabbedby(user) + target.grippedby(user, instant = TRUE) + + SEND_SIGNAL(user, COMSIG_CARBON_TACKLED, roll) + return COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH + +/** + * rollTackle() + * + * This handles all of the modifiers for the actual carbon-on-carbon tackling, and gets its own proc because of how many there are (with plenty more in mind!) + * + * The base roll is between (-3, 3), with negative numbers favoring the target, and positive numbers favoring the tackler. The target and the tackler are both assessed for + * how easy they are to knock over, with clumsiness and dwarfiness being strong maluses for each, and gigantism giving a bonus for each. These numbers and ideas + * are absolutely subject to change. + + * In addition, after subtracting the defender's mod and adding the attacker's mod to the roll, the component's base (skill) mod is added as well. Some sources of tackles + * are better at taking people down, like the bruiser and rocket gloves, while the dolphin gloves have a malus in exchange for better mobility. +*/ +/datum/component/tackler/proc/rollTackle(mob/living/carbon/target) + var/defense_mod = 0 + var/attack_mod = 0 + + // DE-FENSE + if(target.drunkenness > 60) // drunks are easier to knock off balance + defense_mod -= 3 + else if(target.drunkenness > 30) + defense_mod -= 1 + if(HAS_TRAIT(target, TRAIT_CLUMSY)) + defense_mod -= 2 + if(HAS_TRAIT(target, TRAIT_FAT)) // chonkers are harder to knock over + defense_mod += 1 + //if(HAS_TRAIT(target, TRAIT_GRABWEAKNESS)) Todo, port the pushover trait + //defense_mod -= 2 + if(HAS_TRAIT(target, TRAIT_DWARF)) + defense_mod -= 2 + if(HAS_TRAIT(target, TRAIT_GIANT)) + defense_mod += 2 + + if(ishuman(target)) + var/mob/living/carbon/human/T = target + var/suit_slot = T.get_item_by_slot(ITEM_SLOT_OCLOTHING) + + if(isnull(T.wear_suit) && isnull(T.w_uniform)) // who honestly puts all of their effort into tackling a naked guy? + defense_mod += 2 + if(suit_slot && (istype(suit_slot,/obj/item/clothing/suit/space/hardsuit))) + defense_mod += 1 + if(T.is_shove_knockdown_blocked()) // riot armor and such + defense_mod += 5 + if(T.is_holding_item_of_type(/obj/item/shield)) + defense_mod += 2 + + if(islizard(T)) + if(!T.getorganslot(ORGAN_SLOT_TAIL)) // lizards without tails are off-balance + defense_mod -= 1 + else if(T.dna.species.is_wagging_tail()) // lizard tail wagging is robust and can swat away assailants! + defense_mod += 1 + + // OF-FENSE + var/mob/living/carbon/sacker = parent + + if(sacker.drunkenness > 60) // you're far too drunk to hold back! + attack_mod += 1 + else if(sacker.drunkenness > 30) // if you're only a bit drunk though, you're just sloppy + attack_mod -= 1 + if(HAS_TRAIT(sacker, TRAIT_CLUMSY)) + attack_mod -= 2 + if(HAS_TRAIT(sacker, TRAIT_DWARF)) + attack_mod -= 2 + if(HAS_TRAIT(sacker, TRAIT_GIANT)) + attack_mod += 2 + + if(ishuman(target)) + var/mob/living/carbon/human/S = sacker + + var/suit_slot = S.get_item_by_slot(ITEM_SLOT_OCLOTHING) + if(suit_slot && (istype(suit_slot,/obj/item/clothing/suit/armor/riot))) // tackling in riot armor is more effective, but tiring + attack_mod += 2 + sacker.adjustStaminaLoss(20) + + var/r = rand(-3, 3) - defense_mod + attack_mod + skill_mod + return r + + +/** + * splat() + * + * This is where we handle diving into dense atoms, generally with effects ranging from bad to REALLY bad. This works as a percentile roll that is modified in two steps as detailed below. The higher + * the roll, the more severe the result. + * + * Mod 1: Speed + * * Base tackle speed is 1, which is what normal gripper gloves use. For other sources with higher speed tackles, like dolphin and ESPECIALLY rocket gloves, we obey Newton's laws and hit things harder. + * * For every unit of speed above 1, move the lower bound of the roll up by 15. Unlike Mod 2, this only serves to raise the lower bound, so it can't be directly counteracted by anything you can control. + * + * Mod 2: Misc + * -Flat modifiers, these take whatever you rolled and add/subtract to it, with the end result capped between the minimum from Mod 1 and 100. Note that since we can't roll higher than 100 to start with, + * wearing a helmet should be enough to remove any chance of permanently paralyzing yourself and dramatically lessen knocking yourself unconscious, even with rocket gloves. Will expand on maybe + * * Wearing a helmet: -6 + * * Wearing armor: -6 + * * Clumsy: +6 + * + * Effects: Below are the outcomes based off your roll, in order of increasing severity + * * 1-63: Knocked down for a few seconds and a bit of brute and stamina damage + * * 64-83: Knocked silly, gain some confusion as well as the above + * * 84-93: Cranial trauma, get a concussion and more confusion, plus more damage + * * 94-98: Knocked unconscious, significant chance to get a random mild brain trauma, as well as a fair amount of damage + * * 99-100: Break your spinal cord, get paralyzed, take a bunch of damage too. Very unlucky! +*/ +/datum/component/tackler/proc/splat(mob/living/carbon/user, atom/hit) + if(istype(hit, /obj/structure/window)) + var/obj/structure/window/W = hit + splatWindow(user, W) + if(QDELETED(W)) + return COMPONENT_MOVABLE_IMPACT_NEVERMIND + return + + var/oopsie_mod = 0 + var/danger_zone = (speed - 1) * 15 // for every extra speed we have over 1, take away 15 of the safest chance + danger_zone = max(min(danger_zone, 100), 1) + + if(ishuman(user)) + var/mob/living/carbon/human/S = user + var/head_slot = S.get_item_by_slot(ITEM_SLOT_HEAD) + var/suit_slot = S.get_item_by_slot(ITEM_SLOT_OCLOTHING) + if(head_slot && (istype(head_slot,/obj/item/clothing/head/helmet) || istype(head_slot,/obj/item/clothing/head/hardhat))) + oopsie_mod -= 6 + if(suit_slot && (istype(suit_slot,/obj/item/clothing/suit/armor/))) + oopsie_mod -= 6 + + if(HAS_TRAIT(user, TRAIT_CLUMSY)) + oopsie_mod += 6 //honk! + + var/oopsie = rand(danger_zone, 100) + if(oopsie >= 94 && oopsie_mod < 0) // good job avoiding getting paralyzed! gold star! + to_chat(user, "You're really glad you're wearing protection!") + oopsie += oopsie_mod + + switch(oopsie) + if(99 to INFINITY) + // can you imagine standing around minding your own business when all of the sudden some guy fucking launches himself into a wall at full speed and irreparably paralyzes himself? + user.visible_message("[user] slams face-first into [hit] at an awkward angle, severing [user.p_their()] spinal column with a sickening crack! Holy shit!", "You slam face-first into [hit] at an awkward angle, severing your spinal column with a sickening crack! Holy shit!") + user.adjustStaminaLoss(30) + user.adjustBruteLoss(30) + playsound(user, 'sound/effects/blobattack.ogg', 60, TRUE) + playsound(user, 'sound/effects/splat.ogg', 70, TRUE) + user.emote("scream") + user.gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic) // oopsie indeed! + shake_camera(user, 7, 7) + user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash) + user.clear_fullscreen("flash", 4.5) + + if(94 to 98) + user.visible_message("[user] slams face-first into [hit] with a concerning squish, immediately going limp!", "You slam face-first into [hit], and immediately lose consciousness!") + user.adjustStaminaLoss(100) + user.adjustBruteLoss(30) + user.Unconscious(100) + user.gain_trauma_type(BRAIN_TRAUMA_MILD) + user.playsound_local(get_turf(user), 'sound/weapons/flashbang.ogg', 100, TRUE, 8, 0.9) + shake_camera(user, 6, 6) + user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash) + user.clear_fullscreen("flash", 3.5) + + if(84 to 93) + user.visible_message("[user] slams head-first into [hit], suffering major cranial trauma!", "You slam head-first into [hit], and the world explodes around you!") + user.adjustStaminaLoss(30) + user.adjustBruteLoss(30) + user.confused += 15 + if(prob(80)) + user.gain_trauma(/datum/brain_trauma/mild/concussion) + user.playsound_local(get_turf(user), 'sound/weapons/flashbang.ogg', 100, TRUE, 8, 0.9) + user.DefaultCombatKnockdown(40) + shake_camera(user, 5, 5) + user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash) + user.clear_fullscreen("flash", 2.5) + + if(64 to 83) + user.visible_message("[user] slams hard into [hit], knocking [user.p_them()] senseless!", "You slam hard into [hit], knocking yourself senseless!") + user.adjustStaminaLoss(30) + user.adjustBruteLoss(10) + user.confused += 10 + user.DefaultCombatKnockdown(30) + shake_camera(user, 3, 4) + + if(1 to 63) + user.visible_message("[user] slams into [hit]!", "You slam into [hit]!") + user.adjustStaminaLoss(20) + user.adjustBruteLoss(10) + user.DefaultCombatKnockdown(30) + shake_camera(user, 2, 2) + + playsound(user, 'sound/weapons/smash.ogg', 70, TRUE) + + +/datum/component/tackler/proc/resetTackle() + var/mob/living/carbon/P = parent + P.tackling = FALSE + QDEL_NULL(tackle) + UnregisterSignal(parent, COMSIG_MOVABLE_MOVED) + +///A special case for splatting for handling windows +/datum/component/tackler/proc/splatWindow(mob/living/carbon/user, obj/structure/window/W) + playsound(user, "sound/effects/Glasshit.ogg", 140, TRUE) + + if(W.type in list(/obj/structure/window, /obj/structure/window/fulltile, /obj/structure/window/unanchored, /obj/structure/window/fulltile/unanchored)) // boring unreinforced windows + for(var/i = 0, i < speed, i++) + var/obj/item/shard/shard = new /obj/item/shard(get_turf(user)) + //shard.embedding = list(embed_chance = 100, ignore_throwspeed_threshold = TRUE, impact_pain_mult=3, pain_chance=5) + //shard.AddElement(/datum/element/embed, shard.embedding) + user.hitby(shard, skipcatch = TRUE, hitpush = FALSE) + //shard.embedding = list() + //shard.AddElement(/datum/element/embed, shard.embedding) + W.obj_destruction() + user.adjustStaminaLoss(10 * speed) + user.DefaultCombatKnockdown(40) + user.Paralyze(5) + user.visible_message("[user] slams into [W] and shatters it, shredding [user.p_them()]self with glass!", "You slam into [W] and shatter it, shredding yourself with glass!") + + else + user.visible_message("[user] slams into [W] like a bug, then slowly slides off it!", "You slam into [W] like a bug, then slowly slide off it!") + user.Paralyze(2) + user.DefaultCombatKnockdown(20) + W.take_damage(20 * speed) + user.adjustStaminaLoss(10 * speed) + user.adjustBruteLoss(5 * speed) + +/datum/component/tackler/proc/delayedSmash(obj/structure/window/W) + if(W) + W.obj_destruction() + playsound(W, "shatter", 70, TRUE) + +///Check to see if we hit a table, and if so, make a big mess! +/datum/component/tackler/proc/checkObstacle(mob/living/carbon/owner) + if(!owner.tackling) + return + + var/turf/T = get_turf(owner) + var/obj/structure/table/kevved = locate(/obj/structure/table) in T.contents + if(!kevved) + return + + var/list/messes = list() + + // we split the mess-making into two parts (check what we're gonna send flying, intermission for dealing with the tackler, then actually send stuff flying) for the benefit of making sure the face-slam text + // comes before the list of stuff that goes flying, but can still adjust text + damage to how much of a mess it made + for(var/obj/item/I in T.contents) + if(!I.anchored) + messes += I + if(messes.len >= MAX_TABLE_MESSES) + break + + /// for telling HOW big of a mess we just made + var/HOW_big_of_a_miss_did_we_just_make = "" + if(messes.len) + if(messes.len < MAX_TABLE_MESSES / 4) + HOW_big_of_a_miss_did_we_just_make = ", making a mess" + else if(messes.len < MAX_TABLE_MESSES / 2) + HOW_big_of_a_miss_did_we_just_make = ", making a big mess" + else if(messes.len < MAX_TABLE_MESSES) + HOW_big_of_a_miss_did_we_just_make = ", making a giant mess" + else + HOW_big_of_a_miss_did_we_just_make = ", making a ginormous mess!" // an extra exclamation point!! for emphasis!!! + + owner.visible_message("[owner] trips over [kevved] and slams into it face-first[HOW_big_of_a_miss_did_we_just_make]!", "You trip over [kevved] and slam into it face-first[HOW_big_of_a_miss_did_we_just_make]!") + owner.adjustStaminaLoss(20 + messes.len * 2) + owner.adjustBruteLoss(10 + messes.len) + owner.Paralyze(2 * messes.len) + owner.DefaultCombatKnockdown(20 + 5 * messes.len) // 2 seconds of knockdown after the paralyze + + for(var/obj/item/I in messes) + var/dist = rand(1, 3) + var/sp = 2 + if(prob(25 * (src.speed - 1))) // if our tackle speed is higher than 1, with chance (speed - 1 * 25%), throw the thing at our tackle speed + 1 + sp = speed + 1 + I.throw_at(get_ranged_target_turf(I, pick(GLOB.alldirs), range = dist), range = dist, speed = sp) + I.visible_message("[I] goes flying[sp > 3 ? " dangerously fast" : ""]!") // standard embed speed + + playsound(owner, 'sound/weapons/smash.ogg', 70, TRUE) + tackle.finalize(hit=TRUE) + resetTackle() + +#undef MAX_TABLE_MESSES diff --git a/code/datums/components/wet_floor.dm b/code/datums/components/wet_floor.dm index 30c6625049..0fbbcd59b0 100644 --- a/code/datums/components/wet_floor.dm +++ b/code/datums/components/wet_floor.dm @@ -181,7 +181,7 @@ /datum/component/wet_floor/proc/_do_add_wet(type, duration_minimum, duration_add, duration_maximum) var/time = 0 if(LAZYACCESS(time_left_list, "[type]")) - time = CLAMP(LAZYACCESS(time_left_list, "[type]") + duration_add, duration_minimum, duration_maximum) + time = clamp(LAZYACCESS(time_left_list, "[type]") + duration_add, duration_minimum, duration_maximum) else time = min(duration_minimum, duration_maximum) LAZYSET(time_left_list, "[type]", time) diff --git a/code/datums/dash_weapon.dm b/code/datums/dash_weapon.dm index c31139dcd7..80570d0c3b 100644 --- a/code/datums/dash_weapon.dm +++ b/code/datums/dash_weapon.dm @@ -42,7 +42,7 @@ addtimer(CALLBACK(src, .proc/charge), charge_rate) /datum/action/innate/dash/proc/charge() - current_charges = CLAMP(current_charges + 1, 0, max_charges) + current_charges = clamp(current_charges + 1, 0, max_charges) holder.update_action_buttons_icon() if(recharge_sound) playsound(dashing_item, recharge_sound, 50, 1) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index f97fde6f7e..348f9e6778 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -29,7 +29,8 @@ VV_DROPDOWN_OPTION(VV_HK_MARK, "Mark Object") VV_DROPDOWN_OPTION(VV_HK_DELETE, "Delete") VV_DROPDOWN_OPTION(VV_HK_EXPOSE, "Show VV To Player") -// VV_DROPDOWN_OPTION(VV_HK_MODIFY_TRAITS, "Modify Traits") + VV_DROPDOWN_OPTION(VV_HK_ADDCOMPONENT, "Add Component/Element") + VV_DROPDOWN_OPTION(VV_HK_MODIFY_TRAITS, "Modify Traits") //This proc is only called if everything topic-wise is verified. The only verifications that should happen here is things like permission checks! //href_list is a reference, modifying it in these procs WILL change the rest of the proc in topic.dm of admin/view_variables! @@ -37,8 +38,8 @@ /datum/proc/vv_do_topic(list/href_list) if(!usr || !usr.client || !usr.client.holder || !check_rights(NONE)) return FALSE //This is VV, not to be called by anything else. -// if(href_list[VV_HK_MODIFY_TRAITS]) -// usr.client.holder.modify_traits(src) + if(href_list[VV_HK_MODIFY_TRAITS]) + usr.client.holder.modify_traits(src) return TRUE /datum/proc/vv_get_header() diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 330a3494d9..7e3ac29b2d 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -246,10 +246,10 @@ else visibility_flags &= ~HIDDEN_SCANNER - SetSpread(CLAMP(2 ** (properties["transmittable"] - symptoms.len), DISEASE_SPREAD_BLOOD, DISEASE_SPREAD_AIRBORNE)) + SetSpread(clamp(2 ** (properties["transmittable"] - symptoms.len), DISEASE_SPREAD_BLOOD, DISEASE_SPREAD_AIRBORNE)) permeability_mod = max(CEILING(0.4 * properties["transmittable"], 1), 1) - cure_chance = 15 - CLAMP(properties["resistance"], -5, 5) // can be between 10 and 20 + cure_chance = 15 - clamp(properties["resistance"], -5, 5) // can be between 10 and 20 stage_prob = max(properties["stage_rate"], 2) SetSeverity(properties["severity"]) GenerateCure(properties) @@ -304,7 +304,7 @@ // Will generate a random cure, the less resistance the symptoms have, the harder the cure. /datum/disease/advance/proc/GenerateCure() if(properties && properties.len) - var/res = CLAMP(properties["resistance"] - (symptoms.len / 2), 1, advance_cures.len) + var/res = clamp(properties["resistance"] - (symptoms.len / 2), 1, advance_cures.len) if(res == oldres) return cures = list(pick(advance_cures[res])) diff --git a/code/datums/diseases/advance/symptoms/sensory.dm b/code/datums/diseases/advance/symptoms/sensory.dm index bbacdd885d..79966b8f54 100644 --- a/code/datums/diseases/advance/symptoms/sensory.dm +++ b/code/datums/diseases/advance/symptoms/sensory.dm @@ -58,7 +58,7 @@ var/mob/living/carbon/C = M if(prob(10)) if(trauma_heal_severe) - C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_LOBOTOMY) + C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_SURGERY) else C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_BASIC) diff --git a/code/datums/diseases/advance/symptoms/voice_change.dm b/code/datums/diseases/advance/symptoms/voice_change.dm index 9be484d99a..9fa6ed5cc8 100644 --- a/code/datums/diseases/advance/symptoms/voice_change.dm +++ b/code/datums/diseases/advance/symptoms/voice_change.dm @@ -30,7 +30,6 @@ Bonus symptom_delay_max = 120 var/scramble_language = FALSE var/datum/language/current_language - var/datum/language_holder/original_language threshold_desc = list( "Transmission 14" = "The host's language center of the brain is damaged, leading to complete inability to speak or understand any language.", "Stage Speed 7" = "Changes voice more often.", @@ -48,9 +47,6 @@ Bonus symptom_delay_max = 85 if(A.properties["transmittable"] >= 14) //random language scramble_language = TRUE - var/mob/living/M = A.affected_mob - var/datum/language_holder/mob_language = M.get_language_holder() - original_language = mob_language.copy() /datum/symptom/voice_change/Activate(datum/disease/advance/A) if(!..()) @@ -64,12 +60,10 @@ Bonus if(ishuman(M)) var/mob/living/carbon/human/H = M H.SetSpecialVoice(H.dna.species.random_name(H.gender)) - if(scramble_language) - H.remove_language(current_language) + if(scramble_language && !current_language) // Last part prevents rerolling language with small amounts of cure. current_language = pick(subtypesof(/datum/language) - /datum/language/common) - H.grant_language(current_language) - var/datum/language_holder/mob_language = H.get_language_holder() - mob_language.only_speaks_language = current_language + H.add_blocked_language(subtypesof(/datum/language) - current_language, LANGUAGE_VOICECHANGE) + H.grant_language(current_language, TRUE, TRUE, LANGUAGE_VOICECHANGE) /datum/symptom/voice_change/End(datum/disease/advance/A) ..() @@ -77,7 +71,5 @@ Bonus var/mob/living/carbon/human/H = A.affected_mob H.UnsetSpecialVoice() if(scramble_language) - var/mob/living/M = A.affected_mob - M.copy_known_languages_from(original_language, TRUE) - current_language = null - QDEL_NULL(original_language) + A.affected_mob.remove_blocked_language(subtypesof(/datum/language), LANGUAGE_VOICECHANGE) + A.affected_mob.remove_all_languages(LANGUAGE_VOICECHANGE) // In case someone managed to get more than one anyway. diff --git a/code/datums/dna.dm b/code/datums/dna.dm index a1cb1b3eeb..85880bd43d 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -315,7 +315,7 @@ unique_enzymes = generate_unique_enzymes() uni_identity = generate_uni_identity() generate_dna_blocks() - features = random_features(species?.id) + features = random_features(species?.id, holder?.gender) /datum/dna/stored //subtype used by brain mob's stored_dna @@ -361,6 +361,11 @@ var/datum/species/old_species = dna.species dna.species = new_race dna.species.on_species_gain(src, old_species, pref_load) + if(ishuman(src)) + qdel(language_holder) + var/species_holder = initial(mrace.species_language_holder) + language_holder = new species_holder(src) + update_atom_languages() /mob/living/carbon/human/set_species(datum/species/mrace, icon_update = TRUE, pref_load = FALSE) ..() @@ -675,6 +680,6 @@ var/danger = CONFIG_GET(number/threshold_body_size_slowdown) if(features["body_size"] < danger) var/slowdown = 1 + round(danger/features["body_size"], 0.1) * CONFIG_GET(number/body_size_slowdown_multiplier) - holder.add_movespeed_modifier(MOVESPEED_ID_SMALL_STRIDE, TRUE, 100, NONE, TRUE, slowdown, ALL, FLOATING|CRAWLING) + holder.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/small_stride, TRUE, slowdown) else if(old_size < danger) - holder.remove_movespeed_modifier(MOVESPEED_ID_SMALL_STRIDE) + holder.remove_movespeed_modifier(/datum/movespeed_modifier/small_stride) diff --git a/code/datums/elements/cleaning.dm b/code/datums/elements/cleaning.dm index 3f80204089..d86fe22632 100644 --- a/code/datums/elements/cleaning.dm +++ b/code/datums/elements/cleaning.dm @@ -1,6 +1,6 @@ /datum/element/cleaning/Attach(datum/target) . = ..() - if(!ismovableatom(target)) + if(!ismovable(target)) return ELEMENT_INCOMPATIBLE RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/Clean) diff --git a/code/datums/elements/dusts_on_leaving_area.dm b/code/datums/elements/dusts_on_leaving_area.dm index 9527e1fd3a..7b1807a15c 100644 --- a/code/datums/elements/dusts_on_leaving_area.dm +++ b/code/datums/elements/dusts_on_leaving_area.dm @@ -1,28 +1,20 @@ /datum/element/dusts_on_leaving_area element_flags = ELEMENT_DETACH | ELEMENT_BESPOKE id_arg_index = 2 - var/list/attached_mobs = list() var/list/area_types = list() /datum/element/dusts_on_leaving_area/Attach(datum/target,types) . = ..() if(!ismob(target)) return ELEMENT_INCOMPATIBLE - attached_mobs += target area_types = types - START_PROCESSING(SSprocessing,src) + RegisterSignal(target,COMSIG_ENTER_AREA,.proc/check_dust) /datum/element/dusts_on_leaving_area/Detach(mob/M) . = ..() - if(M in attached_mobs) - attached_mobs -= M - if(!attached_mobs.len) - STOP_PROCESSING(SSprocessing,src) + UnregisterSignal(M,COMSIG_ENTER_AREA) -/datum/element/dusts_on_leaving_area/process() - for(var/m in attached_mobs) - var/mob/M = m - var/area/A = get_area(M) - if(!(A.type in area_types)) - M.dust(force = TRUE) - Detach(M) +/datum/element/dusts_on_leaving_area/proc/check_dust(datum/source, area/A) + var/mob/M = source + if(istype(M) && !(A.type in area_types)) + M.dust(force = TRUE) diff --git a/code/datums/elements/firestacker.dm b/code/datums/elements/firestacker.dm index 39021d23bb..771812242f 100644 --- a/code/datums/elements/firestacker.dm +++ b/code/datums/elements/firestacker.dm @@ -10,7 +10,7 @@ /datum/element/firestacker/Attach(datum/target, amount) . = ..() - if(!ismovableatom(target)) + if(!ismovable(target)) return ELEMENT_INCOMPATIBLE src.amount = amount diff --git a/code/datums/elements/flavor_text.dm b/code/datums/elements/flavor_text.dm index e9d8f278f4..f44215d9ac 100644 --- a/code/datums/elements/flavor_text.dm +++ b/code/datums/elements/flavor_text.dm @@ -5,12 +5,16 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code id_arg_index = 3 var/flavor_name = "Flavor Text" var/list/texts_by_atom = list() - var/addendum = "This can also be used for OOC notes and preferences!" + var/addendum = "" var/always_show = FALSE var/max_len = MAX_FLAVOR_LEN var/can_edit = TRUE + /// For preference/DNA saving/loading. Null to prevent. Prefs are only loaded from obviously if it exists in preferences.features. + var/save_key + /// Do not attempt to render a preview on examine. If this is on, it will display as \[flavor_name\] + var/examine_no_preview = FALSE -/datum/element/flavor_text/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FLAVOR_LEN, _always_show = FALSE, _edit = TRUE) +/datum/element/flavor_text/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FLAVOR_LEN, _always_show = FALSE, _edit = TRUE, _save_key, _examine_no_preview = FALSE) . = ..() if(. == ELEMENT_INCOMPATIBLE || !isatom(target)) //no reason why this shouldn't work on atoms too. @@ -25,6 +29,8 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code addendum = _addendum always_show = _always_show can_edit = _edit + save_key = _save_key + examine_no_preview = _examine_no_preview RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/show_flavor) @@ -33,9 +39,12 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code LAZYOR(GLOB.mobs_with_editable_flavor_text[M], src) M.verbs |= /mob/proc/manage_flavor_tests + if(save_key && ishuman(target)) + RegisterSignal(target, COMSIG_HUMAN_PREFS_COPIED_TO, .proc/update_prefs_flavor_text) + /datum/element/flavor_text/Detach(atom/A) . = ..() - UnregisterSignal(A, COMSIG_PARENT_EXAMINE) + UnregisterSignal(A, list(COMSIG_PARENT_EXAMINE, COMSIG_HUMAN_PREFS_COPIED_TO)) texts_by_atom -= A if(can_edit && ismob(A)) var/mob/M = A @@ -58,6 +67,9 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code var/text = texts_by_atom[target] if(!text) return + if(examine_no_preview) + examine_list += "\[[flavor_name]\]" + return var/msg = replacetext(text, "\n", " ") if(length_char(msg) <= 40) examine_list += "[msg]" @@ -112,13 +124,17 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code return TRUE return FALSE +/datum/element/flavor_text/proc/update_prefs_flavor_text(mob/living/carbon/human/H, datum/preferences/P, icon_updates = TRUE, roundstart_checks = TRUE) + if(P.features.Find(save_key)) + texts_by_atom[H] = P.features[save_key] + //subtypes with additional hooks for DNA and preferences. /datum/element/flavor_text/carbon //list of antagonists etcetera that should have nothing to do with people's snowflakes. var/static/list/i_dont_even_know_who_you_are = typecacheof(list(/datum/antagonist/abductor, /datum/antagonist/ert, /datum/antagonist/nukeop, /datum/antagonist/wizard)) -/datum/element/flavor_text/carbon/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FLAVOR_LEN, _always_show = FALSE, _edit = TRUE) +/datum/element/flavor_text/carbon/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FLAVOR_LEN, _always_show = FALSE, _edit = TRUE, _save_key = "flavor_text", _examine_no_preview = FALSE) if(!iscarbon(target)) return ELEMENT_INCOMPATIBLE . = ..() @@ -127,7 +143,6 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code RegisterSignal(target, COMSIG_CARBON_IDENTITY_TRANSFERRED_TO, .proc/update_dna_flavor_text) RegisterSignal(target, COMSIG_MOB_ANTAG_ON_GAIN, .proc/on_antag_gain) if(ishuman(target)) - RegisterSignal(target, COMSIG_HUMAN_PREFS_COPIED_TO, .proc/update_prefs_flavor_text) RegisterSignal(target, COMSIG_HUMAN_HARDSET_DNA, .proc/update_dna_flavor_text) RegisterSignal(target, COMSIG_HUMAN_ON_RANDOMIZE, .proc/unset_flavor) @@ -136,15 +151,12 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code UnregisterSignal(C, list(COMSIG_CARBON_IDENTITY_TRANSFERRED_TO, COMSIG_MOB_ANTAG_ON_GAIN, COMSIG_HUMAN_PREFS_COPIED_TO, COMSIG_HUMAN_HARDSET_DNA, COMSIG_HUMAN_ON_RANDOMIZE)) /datum/element/flavor_text/carbon/proc/update_dna_flavor_text(mob/living/carbon/C) - texts_by_atom[C] = C.dna.features["flavor_text"] - -/datum/element/flavor_text/carbon/proc/update_prefs_flavor_text(mob/living/carbon/human/H, datum/preferences/P, icon_updates = TRUE, roundstart_checks = TRUE) - texts_by_atom[H] = P.features["flavor_text"] + texts_by_atom[C] = C.dna.features[save_key] /datum/element/flavor_text/carbon/set_flavor(mob/living/carbon/user) . = ..() if(. && user.dna) - user.dna.features["flavor_text"] = texts_by_atom[user] + user.dna.features[save_key] = texts_by_atom[user] /datum/element/flavor_text/carbon/proc/unset_flavor(mob/living/carbon/user) texts_by_atom[user] = "" @@ -153,4 +165,4 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code if(is_type_in_typecache(antag, i_dont_even_know_who_you_are)) texts_by_atom[user] = "" if(user.dna) - user.dna.features["flavor_text"] = "" \ No newline at end of file + user.dna.features[save_key] = "" diff --git a/code/datums/elements/mob_holder.dm b/code/datums/elements/mob_holder.dm index a5c6e2725d..d770e0f30d 100644 --- a/code/datums/elements/mob_holder.dm +++ b/code/datums/elements/mob_holder.dm @@ -164,7 +164,7 @@ release() /obj/item/clothing/head/mob_holder/mob_can_equip(mob/living/M, mob/living/equipper, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE) - if(!ishuman(M)) //monkeys holding monkeys holding monkeys... + if(M == held_mob || !ishuman(M)) //monkeys holding monkeys holding monkeys... return FALSE return ..() diff --git a/code/datums/elements/scavenging.dm b/code/datums/elements/scavenging.dm new file mode 100644 index 0000000000..1993005be7 --- /dev/null +++ b/code/datums/elements/scavenging.dm @@ -0,0 +1,215 @@ + /* + * Scavenging element. Its scope shouldn't elude your imagination. + * Basically loot piles that can be searched through for some items. + * In my opinion, these are more engaging than normal maintenance loot spawners. + * The loot doesn't have to be strictly made of items and objects, you could also use it to invoke some "events" + * such as mice, rats, an halloween spook, persistent relics, traps, etcetera, go wild. + */ +/datum/element/scavenging + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH + id_arg_index = 3 + + var/list/loot_left_per_atom = list() //loot left per attached atom. + var/list/loot_table //pickweight list of available loot. + var/list/unique_loot //limited loot, once the associated value reaches zero, its key is removed from loot_table + var/scavenge_time = 12 SECONDS //how much time it takes + var/can_use_hands = TRUE //bare handed scavenge time multiplier. If set to zero, only tools are usable. + var/list/tool_types //which tool types the player can use instead of scavenging by hand, associated value is their speed. + var/del_atom_on_depletion = FALSE //Will the atom be deleted when there is no loot left? + var/list/search_texts = list("starts searching through", "start searching through", "You hear rummaging...") + var/loot_restriction = NO_LOOT_RESTRICTION + var/maximum_loot_per_player = 1 //only relevant if there is a restriction. + var/list/scavenger_restriction_list //used for restrictions. + + var/mean_loot_weight = 0 + var/list/progress_per_atom = list() //seconds of ditched progress per atom, used to resume the work instead of starting over. + var/static/list/players_busy_scavenging = list() //players already busy scavenging. + +/datum/element/scavenging/Attach(atom/target, amount = 5, list/loot, list/unique, time = 12 SECONDS, hands = TRUE, list/tools, list/texts, \ + del_deplete = FALSE, restriction = NO_LOOT_RESTRICTION, max_per_player = 1) + . = ..() + if(. == ELEMENT_INCOMPATIBLE || !length(loot) || !amount || !istype(target) || isarea(target)) + return ELEMENT_INCOMPATIBLE + loot_left_per_atom[target] = amount + if(!loot_table) + loot_table = loot + for(var/A in loot_table) //tally the list weights + mean_loot_weight += loot_table[A] + mean_loot_weight /= length(loot_table) + if(!unique_loot) + unique_loot = unique || list() + scavenge_time = time + can_use_hands = hands + tool_types = tools + if(texts) + search_texts = texts + del_atom_on_depletion = del_deplete + loot_restriction = restriction + maximum_loot_per_player = max_per_player + if(can_use_hands) + RegisterSignal(target, list(COMSIG_ATOM_ATTACK_HAND, COMSIG_ATOM_ATTACK_PAW), .proc/scavenge_barehanded) + if(tool_types) + RegisterSignal(target, COMSIG_PARENT_ATTACKBY, .proc/scavenge_tool) + RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/on_examine) + +/datum/element/scavenging/Detach(atom/target) + . = ..() + loot_left_per_atom -= target + progress_per_atom -= target + if(maximum_loot_per_player == LOOT_RESTRICTION_MIND_PILE || maximum_loot_per_player == LOOT_RESTRICTION_CKEY_PILE) + maximum_loot_per_player -= target + UnregisterSignal(target, list(COMSIG_ATOM_ATTACK_HAND, COMSIG_PARENT_ATTACKBY, COMSIG_PARENT_EXAMINE)) + +/datum/element/scavenging/proc/on_examine(atom/source, mob/user, list/examine_list) + var/methods = tool_types.Copy() + if(can_use_hands) + methods += list("bare handed") + if(!length(methods)) + return + var/text = english_list(methods, "", " or ") + examine_list += "Looks like [source.p_they()] can be scavenged [length(tool_types) ? "with" : ""][length(methods == 1) ? "" : "either "][length(tool_types) ? "a " : ""][text]" + +/datum/element/scavenging/proc/scavenge_barehanded(atom/source, mob/user) + scavenge(source, user, 1) + return COMPONENT_NO_ATTACK_HAND + +/datum/element/scavenging/proc/scavenge_tool(atom/source, obj/item/I, mob/user, params) + if(user.a_intent == INTENT_HARM || !I.tool_behaviour) //Robust trash disposal techniques! + return + var/speed_multi = tool_types[I.tool_behaviour] + if(!speed_multi) + return + scavenge(source, user, speed_multi) + return COMPONENT_NO_AFTERATTACK + +/// This proc has to be asynced (cough cough, do_after) in order to return the comsig values in time to stop the attack chain. +/datum/element/scavenging/proc/scavenge(atom/source, mob/user, speed_multi = 1) + set waitfor = FALSE + + if(players_busy_scavenging[user]) + return + players_busy_scavenging[user] = TRUE + var/progress_done = progress_per_atom[source] + var/len_messages = length(search_texts) + var/msg_first_person + if(len_messages >= 2) + msg_first_person = "You [progress_done ? ", resume a ditched task and " : ""][search_texts[2]] [source]." + var/msg_blind + if(len_messages >= 3) + msg_blind = "[search_texts[3]]" + user.visible_message("[user] [search_texts[1]] [source].", msg_first_person, msg_blind) + if(do_after(user, scavenge_time * speed_multi, TRUE, source, TRUE, CALLBACK(src, .proc/set_progress, source, world.time), resume_time = progress_done * speed_multi)) + spawn_loot(source, user) + players_busy_scavenging -= user + +/datum/element/scavenging/proc/set_progress(atom/source, start_time) + progress_per_atom[source] = world.time - start_time + return TRUE + +/datum/element/scavenging/proc/spawn_loot(atom/source, mob/user) + progress_per_atom -= source + + var/loot = pickweight(loot_table) + var/special = TRUE + var/free = FALSE + if(!loot_left_per_atom[source]) + to_chat(user, "Looks likes there is nothing worth of interest left in [source], what a shame...") + return + + var/num_times = 0 + switch(loot_restriction) + if(LOOT_RESTRICTION_MIND) + num_times = LAZYACCESS(scavenger_restriction_list, user.mind) + if(LOOT_RESTRICTION_CKEY) + num_times = LAZYACCESS(scavenger_restriction_list, user.ckey) + if(LOOT_RESTRICTION_MIND_PILE) + var/list/L = LAZYACCESS(scavenger_restriction_list, source) + if(L) + num_times = LAZYACCESS(L, user.mind) + if(LOOT_RESTRICTION_CKEY_PILE) + var/list/L = LAZYACCESS(scavenger_restriction_list, source) + if(L) + num_times = LAZYACCESS(L, user.ckey) + if(num_times >= maximum_loot_per_player) + to_chat(user, "You can't find anything else vaguely useful in [source]. Another set of eyes might, however.") + return + + switch(loot) // TODO: datumize these out. + if(SCAVENGING_FOUND_NOTHING) + to_chat(user, "You found nothing, better luck next time.") + free = TRUE //doesn't consume the loot pile. + if(SCAVENGING_SPAWN_MOUSE) + var/nasty_rodent = pick("mouse", "rodent", "squeaky critter", "stupid pest", "annoying cable chewer", "nasty, ugly, evil, disease-ridden rodent") + to_chat(user, "You found something in [source]... no wait, that's just another [nasty_rodent].") + new /mob/living/simple_animal/mouse(source.loc) + if(SCAVENGING_SPAWN_MICE) + user.visible_message("A small gang of mice emerges from [source].", \ + "You found something in [source]... no wait, that's just another- no wait, that's a lot of damn mice.") + for(var/i in 1 to rand(4, 6)) + new /mob/living/simple_animal/mouse(source.loc) + if(SCAVENGING_SPAWN_TOM) + if(GLOB.tom_existed) //There can only be one. + to_chat(user, "You found nothing, better luck next time.") + free = TRUE + else + to_chat(user, "You found something in [source]... no wait, that's Tom, the mouse! What is he doing here?") + new /mob/living/simple_animal/mouse/brown/Tom(source.loc) + else + special = FALSE + + if(!special) //generic loot. Nothing too strange like more loot spawners anyway. + var/atom/A = new loot(source.loc) + if(isitem(A) && !user.get_active_held_item()) + user.put_in_hands(A) + var/rarity_append = "." + switch(loot_table[loot]/mean_loot_weight*100) + if(0 to 1) + rarity_append = "! AMAZING!" + if(1 to 2) + rarity_append = "! Woah!" + if(2 to 5) + rarity_append = ". Rare!" + if(5 to 10) + rarity_append = ". Great." + if(10 to 25) + rarity_append = ". Nice." + if(20 to 50) + rarity_append = ". Not bad." + to_chat(user, "You found something in [source]... it's \a [A][rarity_append]") + + if(unique_loot[loot]) + var/loot_left = --unique_loot[loot] + if(!loot_left) + loot_table -= loot + unique_loot -= loot + mean_loot_weight = 0 + for(var/A in loot_table) //re-tally the list weights + mean_loot_weight += loot_table[A] + mean_loot_weight /= length(loot_table) + + if(free) + return + + --loot_left_per_atom[source] + if(del_atom_on_depletion && !loot_left_per_atom[source]) + source.visible_message("[source] has been looted clean.") + qdel(source) + return + + if(!loot_restriction) + return + + LAZYINITLIST(scavenger_restriction_list) + switch(loot_restriction) + if(LOOT_RESTRICTION_MIND) + scavenger_restriction_list[user.mind]++ + if(LOOT_RESTRICTION_CKEY) + scavenger_restriction_list[user.ckey]++ + if(LOOT_RESTRICTION_MIND_PILE) + LAZYINITLIST(scavenger_restriction_list[source]) + var/list/L = scavenger_restriction_list[source] + L[user.mind]++ + if(LOOT_RESTRICTION_CKEY_PILE) + LAZYINITLIST(scavenger_restriction_list[source]) + var/list/L = scavenger_restriction_list[source] + L[user.ckey]++ diff --git a/code/datums/elements/snail_crawl.dm b/code/datums/elements/snail_crawl.dm new file mode 100644 index 0000000000..0e322c7c9d --- /dev/null +++ b/code/datums/elements/snail_crawl.dm @@ -0,0 +1,31 @@ +/datum/element/snailcrawl + element_flags = ELEMENT_DETACH + +/datum/element/snailcrawl/Attach(datum/target) + . = ..() + if(!ismovable(target)) + return ELEMENT_INCOMPATIBLE + var/P + if(iscarbon(target)) + P = .proc/snail_crawl + else + P = .proc/lubricate + RegisterSignal(target, COMSIG_MOVABLE_MOVED, P) + +/datum/element/snailcrawl/Detach(mob/living/carbon/target) + . = ..() + UnregisterSignal(target, COMSIG_MOVABLE_MOVED) + if(istype(target)) + target.remove_movespeed_modifier(/datum/movespeed_modifier/snail_crawl) + +/datum/element/snailcrawl/proc/snail_crawl(mob/living/carbon/snail) + if(snail.resting && !snail.buckled && lubricate(snail)) + snail.add_movespeed_modifier(/datum/movespeed_modifier/snail_crawl) + else + snail.remove_movespeed_modifier(/datum/movespeed_modifier/snail_crawl) + +/datum/element/snailcrawl/proc/lubricate(atom/movable/snail) + var/turf/open/OT = get_turf(snail) + if(istype(OT)) + OT.MakeSlippery(TURF_WET_LUBE, 20) + return TRUE diff --git a/code/datums/elements/squish.dm b/code/datums/elements/squish.dm new file mode 100644 index 0000000000..823d391e14 --- /dev/null +++ b/code/datums/elements/squish.dm @@ -0,0 +1,28 @@ +#define SHORT 5/7 +#define TALL 7/5 + +/datum/element/squish + element_flags = ELEMENT_DETACH + +/datum/element/squish/Attach(datum/target, duration) + . = ..() + if(!iscarbon(target)) + return ELEMENT_INCOMPATIBLE + + var/mob/living/carbon/C = target + var/was_lying = (C.lying != 0) + addtimer(CALLBACK(src, .proc/Detach, C, was_lying), duration) + + C.transform = C.transform.Scale(TALL, SHORT) + +/datum/element/squish/Detach(mob/living/carbon/C, was_lying) + . = ..() + if(istype(C)) + var/is_lying = (C.lying != 0) + if(was_lying == is_lying) + C.transform = C.transform.Scale(SHORT, TALL) + else + C.transform = C.transform.Scale(TALL, SHORT) + +#undef SHORT +#undef TALL diff --git a/code/datums/explosion.dm b/code/datums/explosion.dm index 7be4489e86..dc32902e5e 100644 --- a/code/datums/explosion.dm +++ b/code/datums/explosion.dm @@ -76,7 +76,9 @@ GLOBAL_LIST_EMPTY(explosions) //I would make this not ex_act the thing that triggered the explosion, //but everything that explodes gives us their loc or a get_turf() //and somethings expect us to ex_act them so they can qdel() - stoplag() //tldr, let the calling proc call qdel(src) before we explode + //stoplag() //tldr, let the calling proc call qdel(src) before we explode + // no - use sleep. stoplag() results in quirky things like explosions taking too long to process and hanging mid-air for no reason. + sleep(0) EX_PREPROCESS_EXIT_CHECK @@ -121,14 +123,14 @@ GLOBAL_LIST_EMPTY(explosions) if(dist <= round(max_range + world.view - 2, 1)) M.playsound_local(epicenter, null, 100, 1, frequency, falloff = 5, S = explosion_sound) if(baseshakeamount > 0) - shake_camera(M, 25, CLAMP(baseshakeamount, 0, 10)) + shake_camera(M, 25, clamp(baseshakeamount, 0, 10)) // You hear a far explosion if you're outside the blast radius. Small bombs shouldn't be heard all over the station. else if(dist <= far_dist) - var/far_volume = CLAMP(far_dist, 30, 50) // Volume is based on explosion size and dist + var/far_volume = clamp(far_dist, 30, 50) // Volume is based on explosion size and dist far_volume += (dist <= far_dist * 0.5 ? 50 : 0) // add 50 volume if the mob is pretty close to the explosion M.playsound_local(epicenter, null, far_volume, 1, frequency, falloff = 5, S = far_explosion_sound) if(baseshakeamount > 0) - shake_camera(M, 10, CLAMP(baseshakeamount*0.25, 0, 2.5)) + shake_camera(M, 10, clamp(baseshakeamount*0.25, 0, 2.5)) EX_PREPROCESS_CHECK_TICK //postpone processing for a bit diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm index 4332b09ac6..f054867de4 100644 --- a/code/datums/martial/krav_maga.dm +++ b/code/datums/martial/krav_maga.dm @@ -116,7 +116,7 @@ "[A] slams your chest! You can't breathe!") playsound(get_turf(A), 'sound/effects/hit_punch.ogg', 50, 1, -1) if(D.losebreath <= 10) - D.losebreath = CLAMP(D.losebreath + 5, 0, 10) + D.losebreath = clamp(D.losebreath + 5, 0, 10) D.adjustOxyLoss(damage + 5) log_combat(A, D, "quickchoked") return TRUE @@ -128,7 +128,7 @@ playsound(get_turf(A), 'sound/effects/hit_punch.ogg', 50, 1, -1) D.apply_damage(damage, BRUTE) if(D.silent <= 10) - D.silent = CLAMP(D.silent + 10, 0, 10) + D.silent = clamp(D.silent + 10, 0, 10) log_combat(A, D, "neck chopped") return TRUE @@ -187,7 +187,7 @@ if(damage >= stunthreshold) D.visible_message("[D] sputters and recoils in pain!", "You recoil in pain as you are jabbed in a nerve!") D.drop_all_held_items() - + return TRUE //Krav Maga Gloves diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm index c3d0deeac6..f189a91353 100644 --- a/code/datums/materials/basemats.dm +++ b/code/datums/materials/basemats.dm @@ -72,7 +72,7 @@ Unless you know what you're doing, only use the first three numbers. They're in /datum/material/uranium/on_applied(atom/source, amount, material_flags) . = ..() - source.AddComponent(/datum/component/radioactive, amount / 20, source, 0) //half-life of 0 because we keep on going. + source.AddComponent(/datum/component/radioactive, amount / 60, source, 0) //half-life of 0 because we keep on going. /datum/material/uranium/on_removed(atom/source, material_flags) . = ..() @@ -92,7 +92,7 @@ Unless you know what you're doing, only use the first three numbers. They're in /datum/material/plasma/on_applied(atom/source, amount, material_flags) . = ..() - if(ismovableatom(source)) + if(ismovable(source)) source.AddElement(/datum/element/firestacker, amount=1) source.AddComponent(/datum/component/explodable, 0, 0, amount / 2500, amount / 1250) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 31704d5451..a9438fa80b 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -63,7 +63,11 @@ var/force_escaped = FALSE // Set by Into The Sunset command of the shuttle manipulator var/list/learned_recipes //List of learned recipe TYPES. + /// Our skill holder. + var/datum/skill_holder/skill_holder + /datum/mind/New(var/key) + skill_holder = new(src) src.key = key soulOwner = src martial_art = default_martial_art @@ -76,12 +80,12 @@ if(antag_datum.delete_on_mind_deletion) qdel(i) antag_datums = null + QDEL_NULL(skill_holder) return ..() /datum/mind/proc/get_language_holder() if(!language_holder) - var/datum/language_holder/L = current.get_language_holder(shadow=FALSE) - language_holder = L.copy(src) + language_holder = new (src) return language_holder @@ -96,9 +100,6 @@ if(iscarbon(current)) var/mob/living/carbon/C = current C.disable_intentional_combat_mode(TRUE) - if(!language_holder) - var/datum/language_holder/mob_holder = new_character.get_language_holder(shadow = FALSE) - language_holder = mob_holder.copy(src) if(key) if(new_character.key != key) //if we're transferring into a body with a key associated which is not ours @@ -126,6 +127,7 @@ transfer_martial_arts(new_character) if(active || force_key_move) new_character.key = key //now transfer the key to link the client to our new body + current.update_atom_languages() //CIT CHANGE - makes arousal update when transfering bodies if(isliving(new_character)) //New humans and such are by default enabled arousal. Let's always use the new mind's prefs. diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index ab7fe986fb..9f8c74e2db 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -81,6 +81,7 @@ /datum/mutation/human/dwarfism/on_acquiring(mob/living/carbon/human/owner) if(..()) return + ADD_TRAIT(owner, TRAIT_DWARF, GENETIC_MUTATION) owner.transform = owner.transform.Scale(1, 0.8) passtable_on(owner, GENETIC_MUTATION) owner.visible_message("[owner] suddenly shrinks!", "Everything around you seems to grow..") @@ -88,6 +89,7 @@ /datum/mutation/human/dwarfism/on_losing(mob/living/carbon/human/owner) if(..()) return + REMOVE_TRAIT(owner, TRAIT_DWARF, GENETIC_MUTATION) owner.transform = owner.transform.Scale(1, 1.25) passtable_off(owner, GENETIC_MUTATION) owner.visible_message("[owner] suddenly grows!", "Everything around you seems to shrink..") @@ -339,6 +341,7 @@ /datum/mutation/human/gigantism/on_acquiring(mob/living/carbon/human/owner) if(..()) return + ADD_TRAIT(owner, TRAIT_GIANT, GENETIC_MUTATION) owner.resize = 1.25 owner.update_transform() owner.visible_message("[owner] suddenly grows!", "Everything around you seems to shrink..") @@ -346,6 +349,7 @@ /datum/mutation/human/gigantism/on_losing(mob/living/carbon/human/owner) if(..()) return + REMOVE_TRAIT(owner, TRAIT_GIANT, GENETIC_MUTATION) owner.resize = 0.8 owner.update_transform() owner.visible_message("[owner] suddenly shrinks!", "Everything around you seems to grow..") diff --git a/code/datums/mutations/speech.dm b/code/datums/mutations/speech.dm index e474272326..d4db7e34c2 100644 --- a/code/datums/mutations/speech.dm +++ b/code/datums/mutations/speech.dm @@ -277,10 +277,10 @@ /datum/mutation/human/stoner/on_acquiring(mob/living/carbon/human/owner) ..() - owner.grant_language(/datum/language/beachbum) - owner.remove_language(/datum/language/common) + owner.grant_language(/datum/language/beachbum, TRUE, TRUE, LANGUAGE_STONER) + owner.add_blocked_language(subtypesof(/datum/language) - /datum/language/beachbum, LANGUAGE_STONER) /datum/mutation/human/stoner/on_losing(mob/living/carbon/human/owner) ..() - owner.grant_language(/datum/language/common) - owner.remove_language(/datum/language/beachbum) + owner.remove_language(/datum/language/beachbum, TRUE, TRUE, LANGUAGE_STONER) + owner.remove_blocked_language(subtypesof(/datum/language) - /datum/language/beachbum, LANGUAGE_STONER) diff --git a/code/datums/position_point_vector.dm b/code/datums/position_point_vector.dm index 44ff87e8ae..608683c3dc 100644 --- a/code/datums/position_point_vector.dm +++ b/code/datums/position_point_vector.dm @@ -20,7 +20,7 @@ return sqrt(((b.x - a.x) ** 2) + ((b.y - a.y) ** 2)) /proc/angle_between_points(datum/point/a, datum/point/b) - return ATAN2((b.y - a.y), (b.x - a.x)) + return arctan((b.y - a.y), (b.x - a.x)) /datum/position //For positions with map x/y/z and pixel x/y so you don't have to return lists. Could use addition/subtraction in the future I guess. var/x = 0 diff --git a/code/datums/progressbar.dm b/code/datums/progressbar.dm index faecf809cc..fbc194cc6f 100644 --- a/code/datums/progressbar.dm +++ b/code/datums/progressbar.dm @@ -38,7 +38,7 @@ if (user.client) user.client.images += bar - progress = CLAMP(progress, 0, goal) + progress = clamp(progress, 0, goal) bar.icon_state = "prog_bar_[round(((progress / goal) * 100), 5)]" if (!shown) user.client.images += bar diff --git a/code/datums/ruins/icemoon.dm b/code/datums/ruins/icemoon.dm new file mode 100644 index 0000000000..347ba2e4d4 --- /dev/null +++ b/code/datums/ruins/icemoon.dm @@ -0,0 +1,112 @@ +// Hey! Listen! Update \config\iceruinblacklist.txt with your new ruins! + +/datum/map_template/ruin/icemoon + prefix = "_maps/RandomRuins/IceRuins/" + allow_duplicates = FALSE + cost = 5 + +// above ground only + +/datum/map_template/ruin/icemoon/lust + name = "Ruin of Lust" + id = "lust" + description = "Not exactly what you expected." + suffix = "icemoon_surface_lust.dmm" + +/datum/map_template/ruin/icemoon/asteroid + name = "Asteroid Site" + id = "asteroidsite" + description = "Surprised to see us here?" + suffix = "icemoon_surface_asteroid.dmm" + +/datum/map_template/ruin/icemoon/hotsprings + name = "Hot Springs" + id = "hotsprings" + description = "Just relax and take a dip, nothing will go wrong, I swear!" + suffix = "icemoon_surface_hotsprings.dmm" + +/datum/map_template/ruin/icemoon/engioutpost + name = "Engineer Outpost" + id = "engioutpost" + description = "Blown up by an unfortunate accident." + suffix = "icemoon_surface_engioutpost.dmm" + +/datum/map_template/ruin/icemoon/fountain + name = "Fountain Hall" + id = "fountain" + description = "The fountain has a warning on the side. DANGER: May have undeclared side effects that only become obvious when implemented." + prefix = "_maps/RandomRuins/AnywhereRuins/" + suffix = "fountain_hall.dmm" + +// above and below ground together + +/datum/map_template/ruin/icemoon/mining_site + name = "Mining Site" + id = "miningsite" + description = "Ruins of a site where people once mined with primitive tools for ore." + suffix = "icemoon_surface_mining_site.dmm" + always_place = TRUE + always_spawn_with = list(/datum/map_template/ruin/icemoon/underground/mining_site_below = PLACE_BELOW) + +/datum/map_template/ruin/icemoon/underground/mining_site_below + name = "Mining Site Underground" + id = "miningsite-underground" + description = "Who knew ladders could be so useful?" + suffix = "icemoon_underground_mining_site.dmm" + unpickable = TRUE + +// below ground only + +/datum/map_template/ruin/icemoon/underground + name = "underground ruin" + +/datum/map_template/ruin/icemoon/underground/abandonedvillage + name = "Abandoned Village" + id = "abandonedvillage" + description = "Who knows what lies within?" + suffix = "icemoon_underground_abandoned_village.dmm" + +/datum/map_template/ruin/icemoon/underground/library + name = "Buried Library" + id = "buriedlibrary" + description = "A once grand library, now lost to the confines of the Ice Moon." + suffix = "icemoon_underground_library.dmm" + +/datum/map_template/ruin/icemoon/underground/wrath + name = "Ruin of Wrath" + id = "wrath" + description = "You'll fight and fight and just keep fighting." + suffix = "icemoon_underground_wrath.dmm" + +/datum/map_template/ruin/icemoon/underground/lavaland + name = "Lavaland Site" + id = "lavalandsite" + description = "I guess we never really left you huh?" + suffix = "icemoon_underground_lavaland.dmm" + +/datum/map_template/ruin/icemoon/underground/puzzle + name = "Ancient Puzzle" + id = "puzzle" + description = "Mystery to be solved." + suffix = "icemoon_underground_puzzle.dmm" + +/datum/map_template/ruin/icemoon/underground/bathhouse + name = "Bath House" + id = "bathhouse" + description = "A taste of paradise, locked in the hell of the Ice Moon." + suffix = "icemoon_underground_bathhouse.dmm" + +/datum/map_template/ruin/icemoon/underground/wendigo_cave + name = "Wendigo Cave" + id = "wendigocave" + description = "Into the jaws of the beast." + suffix = "icemoon_underground_wendigo_cave.dmm" + +/datum/map_template/ruin/icemoon/underground/free_golem + name = "Free Golem Ship" + id = "golem-ship" + description = "Lumbering humanoids, made out of precious metals, move inside this ship. They frequently leave to mine more minerals, which they somehow turn into more of them. \ + Seem very intent on research and individual liberty, and also geology-based naming?" + prefix = "_maps/RandomRuins/AnywhereRuins/" + suffix = "golem_ship.dmm" + allow_duplicates = FALSE diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index 483c1e353f..8f3811ca71 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -67,7 +67,8 @@ description = "Lumbering humanoids, made out of precious metals, move inside this ship. They frequently leave to mine more minerals, which they somehow turn into more of them. \ Seem very intent on research and individual liberty, and also geology based naming?" cost = 20 - suffix = "lavaland_surface_golem_ship.dmm" + prefix = "_maps/RandomRuins/AnywhereRuins/" + suffix = "golem_ship.dmm" allow_duplicates = FALSE /datum/map_template/ruin/lavaland/animal_hospital @@ -175,7 +176,8 @@ name = "Fountain Hall" id = "fountain" description = "The fountain has a warning on the side. DANGER: May have undeclared side effects that only become obvious when implemented." - suffix = "lavaland_surface_fountain_hall.dmm" + prefix = "_maps/RandomRuins/AnywhereRuins/" + suffix = "fountain_hall.dmm" cost = 5 allow_duplicates = FALSE diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index d4636671a0..89a635e6aa 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -23,14 +23,14 @@ mappath = "[prefix][shuttle_id].dmm" . = ..() -/datum/map_template/shuttle/preload_size(path, cache) +/datum/map_template/shuttle/preload_size(path = mappath, force_cache = FALSE) . = ..(path, TRUE) // Done this way because we still want to know if someone actualy wanted to cache the map if(!cached_map) return discover_port_offset() - if(!cache) + if(!cached_map) cached_map = null /datum/map_template/shuttle/proc/discover_port_offset() @@ -53,12 +53,11 @@ ++xcrd --ycrd -/datum/map_template/shuttle/load(turf/T, centered, register=TRUE) +/datum/map_template/shuttle/load(turf/T, centered = FALSE, orientation = SOUTH, annihilate = default_annihilate, force_cache = FALSE, rotate_placement_to_orientation = FALSE, register = TRUE) . = ..() if(!.) return - var/list/turfs = block( locate(.[MAP_MINX], .[MAP_MINY], .[MAP_MINZ]), - locate(.[MAP_MAXX], .[MAP_MAXY], .[MAP_MAXZ])) + var/list/turfs = get_last_loaded_turf_block() for(var/i in 1 to turfs.len) var/turf/place = turfs[i] if(istype(place, /turf/open/space)) // This assumes all shuttles are loaded in a single spot then moved to their real destination. diff --git a/code/datums/skills/_check_skills.dm b/code/datums/skills/_check_skills.dm new file mode 100644 index 0000000000..d9dc6dad3d --- /dev/null +++ b/code/datums/skills/_check_skills.dm @@ -0,0 +1,16 @@ +// yeah yeah verbs suck whatever I suck at this fix this someone please - kevinz000 + +/mob/verb/check_skills() + set name = "Check Skills" + set category = "IC" + set desc = "Check your skills (if you have any..)" + + if(!mind) + to_chat(usr, "How do you check the skills of [(usr == src)? "yourself when you are" : "something"] without a mind?") + return + if(!mind.skill_holder) + to_chat(usr, "How do you check the skills of [(usr == src)? "yourself when you are" : "something"] without the capability for skills? (PROBABLY A BUG, PRESS F1.)") + return + var/datum/browser/B = new(usr, "skilldisplay_[REF(src)]", "Skills of [src]") + B.set_content(mind.skill_holder.html_readout()) + B.open() diff --git a/code/datums/skills/_skill.dm b/code/datums/skills/_skill.dm new file mode 100644 index 0000000000..f52945536f --- /dev/null +++ b/code/datums/skills/_skill.dm @@ -0,0 +1,208 @@ +GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) + +/proc/init_skill_datums() + . = list() + for(var/path in subtypesof(/datum/skill)) + var/datum/skill/S = path + if(initial(S.abstract_type) == path) + continue + S = new path + .[S.type] = S + +/proc/sanitize_skill_value(path, value) + var/datum/skill/S = GLOB.skill_datums[path] + // don't check, if we runtime let it happen. + return S.sanitize_value(value) + +/proc/is_skill_value_greater(path, existing, new_value) + var/datum/skill/S = GLOB.skill_datums[path] + // don't check, if we runtime let it happen. + return S.is_value_greater(existing, new_value) + +/** + * Skill datums + */ +/datum/skill + /// Our name + var/name + /// Our description + var/desc + /// Color of the name as shown in the html readout + var/name_color = "#F0F0F0" // White on dark surface. + /// Our progression type + var/progression_type + /// Abstract type + var/abstract_type = /datum/skill + /// skill threshold used in generic skill modifiers calculations. + var/list/competency_thresholds = list(0, 0, 0) + /// Multiplier of the difference of the holder skill value and the selected threshold. + var/list/competency_mults = list(0, 0, 0) + /// In which way this skil can affect or be affected through actions. + var/skill_flags = SKILL_USE_MOOD|SKILL_TRAIN_MOOD + +/** + * Ensures what someone's setting as a value for this skill is valid. + */ +/datum/skill/proc/sanitize_value(new_value) + return new_value + +/** + * Sets the new value of this skill in the holder skills list. + * As well as possible feedback messages or secondary effects on value change, that's on you. + */ +/datum/skill/proc/set_skill_value(datum/skill_holder/H, value, mob/owner) + H.skills[type] = value + +/** + * Checks if a value is greater + */ +/datum/skill/proc/is_value_greater(existing, new_value) + if(!existing) + return TRUE + return new_value > existing + +/** + * Standard value "render" + */ +/datum/skill/proc/standard_render_value(value, level) + return value + +// Just saying, the choice to use different sub-parent-types is to force coders to resolve issues as I won't be implementing custom procs to grab skill levels in a certain context. +// Aka: So people don't forget to change checks if they change a skill's progression type. + +/datum/skill/binary + abstract_type = /datum/skill/binary + progression_type = SKILL_PROGRESSION_BINARY + competency_thresholds = list(FALSE, TRUE, TRUE) + competency_mults = list(0.5, 0.5, 0.5) + +/datum/skill/binary/sanitize_value(new_value) + return new_value? TRUE : FALSE + +/datum/skill/binary/standard_render_value(value, level) + return value? "Yes" : "No" + +/datum/skill/numerical + abstract_type = /datum/skill/numerical + progression_type = SKILL_PROGRESSION_NUMERICAL + /// Max value of this skill + var/max_value = 100 + /// Min value of this skill + var/min_value = 0 + /// Display as a percent in standard_render_value? + var/display_as_percent = FALSE + +/datum/skill/numerical/sanitize_value(new_value) + return clamp(new_value, min_value, max_value) + +/datum/skill/numerical/standard_render_value(value, level) + return display_as_percent? "[round(value/max_value/100, 0.01)]%" : "[value] / [max_value]" + +/datum/skill/enum + abstract_type = /datum/skill/enum + progression_type = SKILL_PROGRESSION_ENUM + /// Valid values for the skill + var/list/valid_values = list() + +/datum/skill/enum/sanitize_value(new_value) + if(new_value in valid_values) + return new_value + +/** + * Classing r p g styled skills, tiered by lvl, and current/nextlvl experience. + */ +/datum/skill/level + abstract_type = /datum/skill/level + progression_type = SKILL_PROGRESSION_LEVEL + var/standard_xp_lvl_up = STD_XP_LVL_UP //the standard required to level up. def: 100 + var/xp_lvl_multiplier = STD_XP_LVL_MULTI //standard required level up exp multiplier. def: 2 (100, 200, 400, 800 etc.) + var/max_levels = STD_MAX_LVL + var/level_up_method = STANDARD_LEVEL_UP //how levels are calculated. + var/list/levels = list() //level thresholds, if associative, these will be preceded by tiers such as "novice" or "trained" + var/associative = FALSE //See above. + var/unskilled_tier = "Unskilled" //Only relevant for associative experience levels + +//Builds the levels list. +/datum/skill/level/New() + . = ..() + var/max_assoc = "" + var/max_assoc_start = 1 + for(var/lvl in 1 to max_levels) + var/value + switch(level_up_method) + if(STANDARD_LEVEL_UP) + value = XP_LEVEL(standard_xp_lvl_up, xp_lvl_multiplier, lvl) + if(DWARFY_LEVEL_UP) + value = DORF_XP_LEVEL(standard_xp_lvl_up, xp_lvl_multiplier, lvl) + value = round(value, 1) + if(!associative) + levels += value + continue + if(max_assoc) + levels["[max_assoc] +[max_assoc_start++]"] = value + continue + var/key = LAZYACCESS(levels, lvl) + if(!key) + if(lvl == 1) //You dun goof it. + stack_trace("Skill datum [src] was set to have an associative levels list despite the latter having no key value.") + associative = FALSE + levels += value + continue + max_assoc = levels[lvl-1] + levels["[max_assoc] +[max_assoc_start++]"] = value + levels[key] = value + +/datum/skill/level/sanitize_value(new_value) + return max(new_value, 0) + +/datum/skill/level/set_skill_value(datum/skill_holder/H, value, datum/mind/M, silent = FALSE) + H.skills[type] = value + var/new_level + for(var/k in levels) + if(value < (associative ? levels[k] : k)) + break + new_level++ + var/old_level = LAZYACCESS(H.skill_levels, type) + LAZYSET(H.skill_levels, type, new_level) + . = new_level - old_level + if(silent || !(M?.current)) + return + if(. > 0) + to_chat(M.current, "I feel like I've become more proficient at [name]!") + else if(. < 0) + to_chat(M.current, "I feel like I've become worse at [name]!") + +/datum/skill/level/standard_render_value(value, level) + var/current_lvl = associative ? (!level ? unskilled_tier : levels[level]) : level + var/current_lvl_xp_sum = 0 + if(level) + current_lvl_xp_sum = associative ? levels[levels[level]] : levels[level] + var/next_index = max(max_levels, level+1) + var/next_lvl_xp = associative ? levels[levels[next_index]] : levels[next_index] + if(next_lvl_xp > current_lvl_xp_sum) + next_lvl_xp -= current_lvl_xp_sum + + + return "[associative ? current_lvl : "Lvl. [current_lvl]"] ([value - current_lvl_xp_sum]/[next_lvl_xp])[level == max_levels ? " \[MAX!\]" : ""]" + +/datum/skill/level/job + levels = list("Basic", "Trained", "Experienced", "Master") + competency_thresholds = list(JOB_SKILL_TRAINED, JOB_SKILL_EXPERT, JOB_SKILL_MASTER) + competency_mults = list(0.15, 0.1, 0.1) + associative = TRUE + +//quite the reference, no? +/datum/skill/level/dwarfy + abstract_type = /datum/skill/level/dwarfy + standard_xp_lvl_up = DORF_XP_LVL_UP + xp_lvl_multiplier = DORF_XP_LVL_MULTI + max_levels = DORF_MAX_LVL + level_up_method = DWARFY_LEVEL_UP + levels = list("Novice", "Adequate", "Competent", "Skilled", + "Proficient", "Talented", "Adept", "Expert", + "Professional", "Accomplished", "Great", "Master", + "High Master", "Grand Master", "Legendary") + competency_thresholds = list(DORF_SKILL_COMPETENT, DORF_SKILL_EXPERT, DORF_SKILL_MASTER) + competency_mults = list(0.15, 0.1, 0.08) + associative = TRUE + unskilled_tier = "Dabbling" diff --git a/code/datums/skills/_skill_holder.dm b/code/datums/skills/_skill_holder.dm new file mode 100644 index 0000000000..e252b4c9c6 --- /dev/null +++ b/code/datums/skills/_skill_holder.dm @@ -0,0 +1,171 @@ +/** + * Skill holder datums + */ +/datum/skill_holder + var/datum/mind/owner + /// Our list of skills and values. Lazylist. Associative. Keys are datum typepaths to the skill. + var/list/skills + /// Same as [skills] but affinities, which are multiplied to increase amount when gaining skills. + var/list/skill_affinities + /// Let's say we want to get a specific skill "level" without looping through a proc everytime. + /// Only supported by skills with tiers or levels. + var/list/skill_levels + +/datum/skill_holder/New(datum/mind/M) + . = ..() + owner = M + +/** + * Grabs the value of a skill. + */ +/datum/skill_holder/proc/get_skill_value(skill) + if(!ispath(skill)) + CRASH("Invalid get_skill_value call. Use typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this. + if(!skills) + return null + return skills[skill] + +/** + * Grabs the level of a skill. Only supported by skills with tiers or levels. + */ +/datum/skill_holder/proc/get_skill_level(skill) + if(!ispath(skill, /datum/skill)) + CRASH("Invalid get_skill_value call. Use skill typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this. + if(!skill_levels) + return 0 + return skill_levels[skill] + +/** + * Grabs our affinity for a skill. !!This is a multiplier!! + */ +/datum/skill_holder/proc/get_skill_affinity(skill) + . = 1 + if(!ispath(skill, /datum/skill)) + CRASH("Invalid get_skill_affinity call. Use skill typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this. + var/affinity = LAZYACCESS(skill_affinities, skill) + if(!isnull(affinity)) + . = affinity + var/list/wrapped = list(.) + SEND_SIGNAL(owner.current, COMSIG_MOB_SKILL_GET_AFFINITY, skill, wrapped) + . = wrapped[1] + + +/** + * Sets the value of a skill. + */ +/datum/skill_holder/proc/set_skill_value(skill, value, silent = FALSE) + if(!ispath(skill, /datum/skill)) + CRASH("Invalid set_skill_value call. Use skill typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this. + var/datum/skill/S = GLOB.skill_datums[skill] + value = S.sanitize_value(value) + if(!isnull(value)) + LAZYINITLIST(skills) + S.set_skill_value(src, value, owner, silent) + return TRUE + return FALSE + +/** + * Boosts a skill to a value if not aobve + */ +/datum/skill_holder/proc/boost_skill_value_to(skill, value, silent = FALSE) + var/current = get_skill_value(skill) + if(!is_skill_value_greater(skill, current, value)) + return FALSE + set_skill_value(skill, value, silent) + return TRUE + +/** + * Automatic skill increase, multiplied by skill affinity if existing. + * Only works if skill is numerical. + */ +/datum/skill_holder/proc/auto_gain_experience(skill, value, maximum, silent = FALSE) + if(!ispath(skill, /datum/skill)) + CRASH("Invalid set_skill_value call. Use skill typepaths.") + var/datum/skill/S = GLOB.skill_datums[skill] + if(S.progression_type != SKILL_PROGRESSION_NUMERICAL && S.progression_type != SKILL_PROGRESSION_LEVEL) + CRASH("You cannot auto increment a non numerical(experience skill!") + var/current = get_skill_value(skill) + var/affinity = get_skill_affinity(skill) + var/target_value = current + (value * affinity) + if(maximum) + target_value = max(target_value, maximum) + if(target_value == maximum) //no more experience to gain, early return. + return + boost_skill_value_to(skill, target_value, silent) + +/** + * Generic value modifier proc that uses one skill. + * Args: + * * value : the value to modify, may be a delay, damage, probability. + * * threshold : The difficulty of the action, in short. Refer to __DEFINES/skills/defines.dm for the defines. + * * modifier_is_multiplier : wheter the modifier is a multiplier or a divisor. + */ +/datum/skill_holder/proc/action_skills_mod(skill, value, threshold, modifier_is_multiplier = TRUE) + var/mod + var/datum/skill/S = GLOB.skill_datums[skill] + if(!S) + return + switch(S.progression_type) + if(SKILL_PROGRESSION_LEVEL) + mod = LAZYACCESS(skill_levels, S.type) + else + mod = LAZYACCESS(skills, S.type) + mod = (1+(mod-S.competency_thresholds[threshold])*S.competency_mults[threshold]) + + var/list/comsig_values = list(mod) + SEND_SIGNAL(owner.current, COMSIG_MOB_ACTION_SKILL_MOD, args, comsig_values) + mod = comsig_values[MOD_VALUES_SKILL_MOD] + + . = modifier_is_multiplier ? value*mod : value/mod + +/** + * Generic value modifier proc that uses several skills, intended for items. + * Args: + * * item/I : the item used in this action. its used_skills list variable contains the skills exercised with it. + * * value : the value to modify, may be a delay, damage, probability. + * * flags : the required flags that each skill (either in I.used_skills or the skill datum skill_flags) must have to influence + * * the value. + * * bad_flags : the opposite of the above, skills that must not be present to impact the value. + * * modifier_is_multiplier : wheter the modifier is a multiplier or a divisor. + */ +/datum/skill_holder/proc/item_action_skills_mod(obj/item/I, value, flags = NONE, bad_flags = NONE, modifier_is_multiplier = TRUE) + . = value + var/sum = 0 + var/divisor = 0 + var/list/checked_skills + for(var/k in I.used_skills) + var/datum/skill/S = GLOB.skill_datums[k] + if(!S) + continue + var/our_flags = (I.used_skills[k]|S.skill_flags) + if((flags && !(our_flags & flags)) || (bad_flags && our_flags & bad_flags)) + continue + var/mod + switch(S.progression_type) + if(SKILL_PROGRESSION_LEVEL) + mod = LAZYACCESS(skill_levels, S.type) + else + mod = LAZYACCESS(skills, S.type) + sum += 1+(mod - S.competency_thresholds[I.skill_difficulty])*S.competency_mults[I.skill_difficulty] + LAZYADD(checked_skills, S) + + var/list/comsig_values = list(sum, divisor, checked_skills) + SEND_SIGNAL(owner.current, COMSIG_MOB_ITEM_ACTION_SKILLS_MOD, args, comsig_values) + sum = comsig_values[MOD_VALUES_ITEM_SKILLS_SUM] + divisor = comsig_values[MOD_VALUES_ITEM_SKILLS_DIV] + + if(divisor) + . = modifier_is_multiplier ? value*(sum/divisor) : value/(sum/divisor) + +/** + * Generates a HTML readout of our skills. + * Port to tgui-next when? + */ +/datum/skill_holder/proc/html_readout() + var/list/out = list("

    Skills


    ") + out += "" + for(var/path in skills) + var/datum/skill/S = GLOB.skill_datums[path] + out += "" + out += "
    SkillValue
    [S.name][S.standard_render_value(skills[path], LAZYACCESS(skill_levels, path) || 0)]
    " + return out.Join("") diff --git a/code/datums/skills/engineering.dm b/code/datums/skills/engineering.dm new file mode 100644 index 0000000000..59c9436e46 --- /dev/null +++ b/code/datums/skills/engineering.dm @@ -0,0 +1,6 @@ +/datum/skill/level/job/wiring + name = "Wiring" + desc = "How proficient and knowledged you are at wiring beyond laying cables on the floor." + name_color = COLOR_PALE_ORANGE + competency_thresholds = list(JOB_SKILL_BASIC, JOB_SKILL_EXPERT, JOB_SKILL_MASTER) + skill_flags = SKILL_USE_MOOD|SKILL_TRAIN_MOOD|SKILL_USE_TOOL|SKILL_TRAINING_TOOL diff --git a/code/datums/skills/medical.dm b/code/datums/skills/medical.dm new file mode 100644 index 0000000000..aaae1236a6 --- /dev/null +++ b/code/datums/skills/medical.dm @@ -0,0 +1,5 @@ +/datum/skill/numerical/surgery + name = "Surgery" + desc = "How proficient you are at doing surgery." + name_color = COLOR_PALE_BLUE_GRAY + competency_mults = list(0.025, 0.025, 0.025) // 60% surgery speed up at max value of 100. diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 86afd2cc15..e080e597a3 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -550,3 +550,30 @@ else if(isanimal(L)) var/mob/living/simple_animal/SM = L SM.adjustHealth(-3.5, forced = TRUE) + +/obj/screen/alert/status_effect/regenerative_core + name = "Reinforcing Tendrils" + desc = "You can move faster than your broken body could normally handle!" + icon_state = "regenerative_core" + name = "Regenerative Core Tendrils" + +/datum/status_effect/regenerative_core + id = "Regenerative Core" + duration = 1 MINUTES + status_type = STATUS_EFFECT_REPLACE + alert_type = /obj/screen/alert/status_effect/regenerative_core + +/datum/status_effect/regenerative_core/on_apply() + . = ..() + ADD_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, "regenerative_core") + owner.adjustBruteLoss(-25) + if(!AmBloodsucker(owner)) //use your coffin you lazy bastard + owner.adjustFireLoss(-25) + owner.remove_CC() + owner.bodytemperature = BODYTEMP_NORMAL + return TRUE + +/datum/status_effect/regenerative_core/on_remove() + . = ..() + REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, "regenerative_core") + owner.updatehealth() \ No newline at end of file diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 69b74841df..4c200f110d 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -120,12 +120,12 @@ /datum/status_effect/mesmerize/on_creation(mob/living/new_owner, set_duration) . = ..() ADD_TRAIT(owner, TRAIT_MUTE, "mesmerize") - owner.add_movespeed_modifier("[STATUS_EFFECT_MESMERIZE]_[id]", TRUE, priority = 64, override = TRUE, multiplicative_slowdown = 5, blacklisted_movetypes = FALSE? NONE : CRAWLING) + owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/mesmerize) /datum/status_effect/mesmerize/on_remove() . = ..() REMOVE_TRAIT(owner, TRAIT_MUTE, "mesmerize") - owner.remove_movespeed_modifier("[STATUS_EFFECT_MESMERIZE]_[id]") + owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/mesmerize) /datum/status_effect/mesmerize/on_creation(mob/living/new_owner, set_duration) if(isnum(set_duration)) @@ -141,9 +141,7 @@ /datum/status_effect/electrode id = "tased" alert_type = null - var/slowdown = 1.5 - var/slowdown_priority = 50 //to make sure the stronger effect overrides - var/affect_crawl = FALSE + var/movespeed_mod = /datum/movespeed_modifier/status_effect/tased var/nextmove_modifier = 1 var/stamdmg_per_ds = 0 //a 20 duration would do 20 stamdmg, disablers do 24 or something var/last_tick = 0 //fastprocess processing speed is a goddamn sham, don't trust it. @@ -155,12 +153,12 @@ last_tick = world.time if(iscarbon(owner)) var/mob/living/carbon/C = owner - C.add_movespeed_modifier("[MOVESPEED_ID_TASED_STATUS]_[id]", TRUE, priority = slowdown_priority, override = TRUE, multiplicative_slowdown = slowdown, blacklisted_movetypes = affect_crawl? NONE : CRAWLING) + C.add_movespeed_modifier(movespeed_mod) /datum/status_effect/electrode/on_remove() if(iscarbon(owner)) var/mob/living/carbon/C = owner - C.remove_movespeed_modifier("[MOVESPEED_ID_TASED_STATUS]_[id]") + C.remove_movespeed_modifier(movespeed_mod) . = ..() /datum/status_effect/electrode/tick() @@ -178,8 +176,7 @@ /datum/status_effect/electrode/no_combat_mode id = "tased_strong" - slowdown = 8 - slowdown_priority = 100 + movespeed_mod = /datum/movespeed_modifier/status_effect/tased/no_combat_mode nextmove_modifier = 2 blocks_combatmode = TRUE stamdmg_per_ds = 1 @@ -336,7 +333,7 @@ if(prob(severity * 0.15)) to_chat(owner, "\"[text2ratvar(pick(mania_messages))]\"") owner.playsound_local(get_turf(motor), hum, severity, 1) - owner.adjust_drugginess(CLAMP(max(severity * 0.075, 1), 0, max(0, 50 - owner.druggy))) //7.5% of severity per second, minimum 1 + owner.adjust_drugginess(clamp(max(severity * 0.075, 1), 0, max(0, 50 - owner.druggy))) //7.5% of severity per second, minimum 1 if(owner.hallucination < 50) owner.hallucination = min(owner.hallucination + max(severity * 0.075, 1), 50) //7.5% of severity per second, minimum 1 if(owner.dizziness < 50) @@ -394,78 +391,34 @@ owner.underlays -= marked_underlay //if this is being called, we should have an owner at this point. ..() -/datum/status_effect/saw_bleed +/datum/status_effect/stacking/saw_bleed id = "saw_bleed" - duration = -1 //removed under specific conditions tick_interval = 6 - alert_type = null - var/mutable_appearance/bleed_overlay - var/mutable_appearance/bleed_underlay - var/bleed_amount = 3 - var/bleed_buildup = 3 - var/delay_before_decay = 5 + delay_before_decay = 5 + stack_threshold = 10 + max_stacks = 10 + overlay_file = 'icons/effects/bleed.dmi' + underlay_file = 'icons/effects/bleed.dmi' + overlay_state = "bleed" + underlay_state = "bleed" var/bleed_damage = 200 - var/needs_to_bleed = FALSE -/datum/status_effect/saw_bleed/Destroy() - if(owner) - owner.cut_overlay(bleed_overlay) - owner.underlays -= bleed_underlay - QDEL_NULL(bleed_overlay) - return ..() +/datum/status_effect/stacking/saw_bleed/fadeout_effect() + new /obj/effect/temp_visual/bleed(get_turf(owner)) -/datum/status_effect/saw_bleed/on_apply() - if(owner.stat == DEAD) - return FALSE - bleed_overlay = mutable_appearance('icons/effects/bleed.dmi', "bleed[bleed_amount]") - bleed_underlay = mutable_appearance('icons/effects/bleed.dmi', "bleed[bleed_amount]") - var/icon/I = icon(owner.icon, owner.icon_state, owner.dir) - var/icon_height = I.Height() - bleed_overlay.pixel_x = -owner.pixel_x - bleed_overlay.pixel_y = FLOOR(icon_height * 0.25, 1) - bleed_overlay.transform = matrix() * (icon_height/world.icon_size) //scale the bleed overlay's size based on the target's icon size - bleed_underlay.pixel_x = -owner.pixel_x - bleed_underlay.transform = matrix() * (icon_height/world.icon_size) * 3 - bleed_underlay.alpha = 40 - owner.add_overlay(bleed_overlay) - owner.underlays += bleed_underlay - return ..() +/datum/status_effect/stacking/saw_bleed/threshold_cross_effect() + owner.adjustBruteLoss(bleed_damage) + var/turf/T = get_turf(owner) + new /obj/effect/temp_visual/bleed/explode(T) + for(var/d in GLOB.alldirs) + new /obj/effect/temp_visual/dir_setting/bloodsplatter(T, d) + playsound(T, "desceration", 100, TRUE, -1) -/datum/status_effect/saw_bleed/tick() - if(owner.stat == DEAD) - qdel(src) - else - add_bleed(-1) - -/datum/status_effect/saw_bleed/proc/add_bleed(amount) - owner.cut_overlay(bleed_overlay) - owner.underlays -= bleed_underlay - bleed_amount += amount - if(bleed_amount) - if(bleed_amount >= 10) - needs_to_bleed = TRUE - qdel(src) - else - if(amount > 0) - tick_interval += delay_before_decay - bleed_overlay.icon_state = "bleed[bleed_amount]" - bleed_underlay.icon_state = "bleed[bleed_amount]" - owner.add_overlay(bleed_overlay) - owner.underlays += bleed_underlay - else - qdel(src) - -/datum/status_effect/saw_bleed/on_remove() - . = ..() - if(needs_to_bleed) - var/turf/T = get_turf(owner) - new /obj/effect/temp_visual/bleed/explode(T) - for(var/d in GLOB.alldirs) - new /obj/effect/temp_visual/dir_setting/bloodsplatter(T, d) - playsound(T, "desceration", 200, 1, -1) - owner.adjustBruteLoss(bleed_damage) - else - new /obj/effect/temp_visual/bleed(get_turf(owner)) +/datum/status_effect/stacking/saw_bleed/bloodletting + id = "bloodletting" + stack_threshold = 7 + max_stacks = 7 + bleed_damage = 20 /datum/status_effect/neck_slice id = "neck_slice" @@ -594,7 +547,7 @@ old_health = owner.health if(!old_oxyloss) old_oxyloss = owner.getOxyLoss() - var/health_difference = old_health - owner.health - CLAMP(owner.getOxyLoss() - old_oxyloss,0, owner.getOxyLoss()) + var/health_difference = old_health - owner.health - clamp(owner.getOxyLoss() - old_oxyloss,0, owner.getOxyLoss()) if(!health_difference) return owner.visible_message("The light in [owner]'s eyes dims as [owner.p_theyre()] harmed!", \ @@ -650,11 +603,11 @@ if(isnum(set_duration)) duration = set_duration . = ..() - owner.add_movespeed_modifier(MOVESPEED_ID_ELECTROSTAFF, multiplicative_slowdown = 1, movetypes = GROUND) + owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/electrostaff) /datum/status_effect/electrostaff/on_remove() . = ..() - owner.remove_movespeed_modifier(MOVESPEED_ID_ELECTROSTAFF) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/electrostaff) //GOLEM GANG diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm index e2114f0778..33c8384d72 100644 --- a/code/datums/status_effects/status_effect.dm +++ b/code/datums/status_effects/status_effect.dm @@ -7,7 +7,6 @@ var/duration = -1 //How long the status effect lasts in DECISECONDS. Enter -1 for an effect that never ends unless removed through some means. var/tick_interval = 10 //How many deciseconds between ticks, approximately. Leave at 10 for every second. var/mob/living/owner //The mob affected by the status effect. - var/status_type = STATUS_EFFECT_UNIQUE //How many of the effect can be on one mob, and what happens when you try to add another var/on_remove_on_mob_delete = FALSE //if we call on_remove() when the mob is deleted var/examine_text //If defined, this text will appear when the mob is examined - to use he, she etc. use "SUBJECTPRONOUN" and replace it in the examines themselves var/alert_type = /obj/screen/alert/status_effect //the alert thrown by the status effect, contains name and description @@ -16,6 +15,8 @@ /// If this is TRUE, the user will have sprint forcefully disabled while this is active. var/blocks_sprint = FALSE var/obj/screen/alert/status_effect/linked_alert = null //the alert itself, if it exists + /// How many of the effect can be on one mob, and what happens when you try to add another + var/status_type = STATUS_EFFECT_UNIQUE /datum/status_effect/New(list/arguments) on_creation(arglist(arguments)) @@ -67,6 +68,9 @@ /datum/status_effect/proc/tick() //Called every tick. +/datum/status_effect/proc/before_remove() //! Called before being removed; returning FALSE will cancel removal + return TRUE + /datum/status_effect/proc/on_remove() //Called whenever the buff expires or is removed; do note that at the point this is called, it is out of the owner's status_effects but owner is not yet null SHOULD_CALL_PARENT(TRUE) REMOVE_TRAIT(owner, TRAIT_COMBAT_MODE_LOCKED, src) @@ -123,12 +127,13 @@ S1 = new effect(arguments) . = S1 -/mob/living/proc/remove_status_effect(effect) //removes all of a given status effect from this mob, returning TRUE if at least one was removed +/mob/living/proc/remove_status_effect(effect, ...) //removes all of a given status effect from this mob, returning TRUE if at least one was removed . = FALSE + var/list/arguments = args.Copy(2) if(status_effects) var/datum/status_effect/S1 = effect for(var/datum/status_effect/S in status_effects) - if(initial(S1.id) == S.id) + if(initial(S1.id) == S.id && S.before_remove(arguments)) qdel(S) . = TRUE @@ -147,3 +152,129 @@ for(var/datum/status_effect/S in status_effects) if(initial(S1.id) == S.id) . += S + +////////////////////// +// STACKING EFFECTS // +////////////////////// + +/datum/status_effect/stacking + id = "stacking_base" + duration = -1 //removed under specific conditions + alert_type = null + var/stacks = 0 //how many stacks are accumulated, also is # of stacks that target will have when first applied + var/delay_before_decay //deciseconds until ticks start occuring, which removes stacks (first stack will be removed at this time plus tick_interval) + tick_interval = 10 //deciseconds between decays once decay starts + var/stack_decay = 1 //how many stacks are lost per tick (decay trigger) + var/stack_threshold //special effects trigger when stacks reach this amount + var/max_stacks //stacks cannot exceed this amount + var/consumed_on_threshold = TRUE //if status should be removed once threshold is crossed + var/threshold_crossed = FALSE //set to true once the threshold is crossed, false once it falls back below + var/overlay_file + var/underlay_file + var/overlay_state // states in .dmi must be given a name followed by a number which corresponds to a number of stacks. put the state name without the number in these state vars + var/underlay_state // the number is concatonated onto the string based on the number of stacks to get the correct state name + var/mutable_appearance/status_overlay + var/mutable_appearance/status_underlay + +/datum/status_effect/stacking/proc/threshold_cross_effect() //what happens when threshold is crossed + +/datum/status_effect/stacking/proc/stacks_consumed_effect() //runs if status is deleted due to threshold being crossed + +/datum/status_effect/stacking/proc/fadeout_effect() //runs if status is deleted due to being under one stack + +/datum/status_effect/stacking/proc/stack_decay_effect() //runs every time tick() causes stacks to decay + +/datum/status_effect/stacking/proc/on_threshold_cross() + threshold_cross_effect() + if(consumed_on_threshold) + stacks_consumed_effect() + qdel(src) + +/datum/status_effect/stacking/proc/on_threshold_drop() + +/datum/status_effect/stacking/proc/can_have_status() + return owner.stat != DEAD + +/datum/status_effect/stacking/proc/can_gain_stacks() + return owner.stat != DEAD + +/datum/status_effect/stacking/tick() + if(!can_have_status()) + qdel(src) + else + add_stacks(-stack_decay) + stack_decay_effect() + +/datum/status_effect/stacking/proc/add_stacks(stacks_added) + if(stacks_added > 0 && !can_gain_stacks()) + return FALSE + owner.cut_overlay(status_overlay) + owner.underlays -= status_underlay + stacks += stacks_added + if(stacks > 0) + if(stacks >= stack_threshold && !threshold_crossed) //threshold_crossed check prevents threshold effect from occuring if changing from above threshold to still above threshold + threshold_crossed = TRUE + on_threshold_cross() + if(consumed_on_threshold) + return + else if(stacks < stack_threshold && threshold_crossed) + threshold_crossed = FALSE //resets threshold effect if we fall below threshold so threshold effect can trigger again + on_threshold_drop() + if(stacks_added > 0) + tick_interval += delay_before_decay //refreshes time until decay + stacks = min(stacks, max_stacks) + status_overlay.icon_state = "[overlay_state][stacks]" + status_underlay.icon_state = "[underlay_state][stacks]" + owner.add_overlay(status_overlay) + owner.underlays += status_underlay + else + fadeout_effect() + qdel(src) //deletes status if stacks fall under one + +/datum/status_effect/stacking/on_creation(mob/living/new_owner, stacks_to_apply) + . = ..() + if(.) + add_stacks(stacks_to_apply) + +/datum/status_effect/stacking/on_apply() + if(!can_have_status()) + return FALSE + status_overlay = mutable_appearance(overlay_file, "[overlay_state][stacks]") + status_underlay = mutable_appearance(underlay_file, "[underlay_state][stacks]") + var/icon/I = icon(owner.icon, owner.icon_state, owner.dir) + var/icon_height = I.Height() + status_overlay.pixel_x = -owner.pixel_x + status_overlay.pixel_y = FLOOR(icon_height * 0.25, 1) + status_overlay.transform = matrix() * (icon_height/world.icon_size) //scale the status's overlay size based on the target's icon size + status_underlay.pixel_x = -owner.pixel_x + status_underlay.transform = matrix() * (icon_height/world.icon_size) * 3 + status_underlay.alpha = 40 + owner.add_overlay(status_overlay) + owner.underlays += status_underlay + return ..() + +/datum/status_effect/stacking/Destroy() + if(owner) + owner.cut_overlay(status_overlay) + owner.underlays -= status_underlay + QDEL_NULL(status_overlay) + return ..() + +/// Status effect from multiple sources, when all sources are removed, so is the effect +/datum/status_effect/grouped + status_type = STATUS_EFFECT_MULTIPLE //! Adds itself to sources and destroys itself if one exists already, there are never multiple + var/list/sources = list() + +/datum/status_effect/grouped/on_creation(mob/living/new_owner, source) + var/datum/status_effect/grouped/existing = new_owner.has_status_effect(type) + if(existing) + existing.sources |= source + qdel(src) + return FALSE + else + sources |= source + return ..() + +/datum/status_effect/grouped/before_remove(source) + sources -= source + return !length(sources) diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm index 6761ecbb4c..98a25053e1 100644 --- a/code/datums/weather/weather.dm +++ b/code/datums/weather/weather.dm @@ -1,49 +1,96 @@ -//The effects of weather occur across an entire z-level. For instance, lavaland has periodic ash storms that scorch most unprotected creatures. +/** + * Causes weather to occur on a z level in certain area types + * + * The effects of weather occur across an entire z-level. For instance, lavaland has periodic ash storms that scorch most unprotected creatures. + * Weather always occurs on different z levels at different times, regardless of weather type. + * Can have custom durations, targets, and can automatically protect indoor areas. + * + */ /datum/weather + /// name of weather var/name = "space wind" + /// description of weather var/desc = "Heavy gusts of wind blanket the area, periodically knocking down anyone caught in the open." - var/telegraph_message = "The wind begins to pick up." //The message displayed in chat to foreshadow the weather's beginning - var/telegraph_duration = 300 //In deciseconds, how long from the beginning of the telegraph until the weather begins - var/telegraph_sound //The sound file played to everyone on an affected z-level - var/telegraph_overlay //The overlay applied to all tiles on the z-level + /// The message displayed in chat to foreshadow the weather's beginning + var/telegraph_message = "The wind begins to pick up." - var/weather_message = "The wind begins to blow ferociously!" //Displayed in chat once the weather begins in earnest - var/weather_duration = 1200 //In deciseconds, how long the weather lasts once it begins - var/weather_duration_lower = 1200 //See above - this is the lowest possible duration - var/weather_duration_upper = 1500 //See above - this is the highest possible duration + /// In deciseconds, how long from the beginning of the telegraph until the weather begins + var/telegraph_duration = 300 + /// The sound file played to everyone on an affected z-level + var/telegraph_sound + /// The overlay applied to all tiles on the z-level + var/telegraph_overlay + /// Displayed in chat once the weather begins in earnest + var/weather_message = "The wind begins to blow ferociously!" + ///In deciseconds, how long the weather lasts once it begins + var/weather_duration = 1200 + ///See above - this is the lowest possible duration + var/weather_duration_lower = 1200 + ///See above - this is the highest possible duration + var/weather_duration_upper = 1500 + /// Looping sound while weather is occuring var/weather_sound + /// Area overlay while the weather is occuring var/weather_overlay + /// Color to apply to the area while weather is occuring var/weather_color = null - var/end_message = "The wind relents its assault." //Displayed once the weather is over - var/end_duration = 300 //In deciseconds, how long the "wind-down" graphic will appear before vanishing entirely + /// Displayed once the weather is over + var/end_message = "The wind relents its assault." + /// In deciseconds, how long the "wind-down" graphic will appear before vanishing entirely + var/end_duration = 300 + /// Sound that plays while weather is ending var/end_sound + /// Area overlay while weather is ending var/end_overlay - var/area_type = /area/space //Types of area to affect - var/list/impacted_areas = list() //Areas to be affected by the weather, calculated when the weather begins - var/list/protected_areas = list()//Areas that are protected and excluded from the affected areas. - var/impacted_z_levels // The list of z-levels that this weather is actively affecting + /// Types of area to affect + var/area_type = /area/space + /// TRUE value protects areas with outdoors marked as false, regardless of area type + var/protect_indoors = FALSE + /// Areas to be affected by the weather, calculated when the weather begins + var/list/impacted_areas = list() - var/overlay_layer = AREA_LAYER //Since it's above everything else, this is the layer used by default. TURF_LAYER is below mobs and walls if you need to use that. - var/aesthetic = FALSE //If the weather has no purpose other than looks - var/immunity_type = "storm" //Used by mobs to prevent them from being affected by the weather + /// Areas that are protected and excluded from the affected areas. + var/list/protected_areas = list() + /// The list of z-levels that this weather is actively affecting + var/impacted_z_levels - var/stage = END_STAGE //The stage of the weather, from 1-4 + /// Since it's above everything else, this is the layer used by default. TURF_LAYER is below mobs and walls if you need to use that. + var/overlay_layer = AREA_LAYER + /// Plane for the overlay + var/overlay_plane = BLACKNESS_PLANE + /// If the weather has no purpose but aesthetics. + var/aesthetic = FALSE + /// Used by mobs to prevent them from being affected by the weather + var/immunity_type = "storm" - // These are read by the weather subsystem and used to determine when and where to run the weather. - var/probability = 0 // Weight amongst other eligible weather. If zero, will never happen randomly. - var/target_trait = ZTRAIT_STATION // The z-level trait to affect when run randomly or when not overridden. + /// The stage of the weather, from 1-4 + var/stage = END_STAGE + /// Weight amongst other eligible weather. if zero, will never happen randomly. + var/probability = 0 + /// The z-level trait to affect when run randomly or when not overridden. + var/target_trait = ZTRAIT_STATION + + /// Whether a barometer can predict when the weather will happen var/barometer_predictable = FALSE - var/next_hit_time = 0 //For barometers to know when the next storm will hit + /// For barometers to know when the next storm will hit + var/next_hit_time = 0 /datum/weather/New(z_levels) ..() impacted_z_levels = z_levels +/** + * Telegraphs the beginning of the weather on the impacted z levels + * + * Sends sounds and details to mobs in the area + * Calculates duration and hit areas, and makes a callback for the actual weather to start + * + */ /datum/weather/proc/telegraph() if(stage == STARTUP_STAGE) return @@ -58,6 +105,8 @@ affectareas -= get_areas(V) for(var/V in affectareas) var/area/A = V + if(protect_indoors && !A.outdoors) + continue if(A.z in impacted_z_levels) impacted_areas |= A weather_duration = rand(weather_duration_lower, weather_duration_upper) @@ -72,6 +121,13 @@ SEND_SOUND(M, sound(telegraph_sound)) addtimer(CALLBACK(src, .proc/start), telegraph_duration) +/** + * Starts the actual weather and effects from it + * + * Updates area overlays and sends sounds and messages to mobs to notify them + * Begins dealing effects from weather to mobs in the area + * + */ /datum/weather/proc/start() if(stage >= MAIN_STAGE) return @@ -86,6 +142,13 @@ SEND_SOUND(M, sound(weather_sound)) addtimer(CALLBACK(src, .proc/wind_down), weather_duration) +/** + * Weather enters the winding down phase, stops effects + * + * Updates areas to be in the winding down phase + * Sends sounds and messages to mobs to notify them + * + */ /datum/weather/proc/wind_down() if(stage >= WIND_DOWN_STAGE) return @@ -100,6 +163,13 @@ SEND_SOUND(M, sound(end_sound)) addtimer(CALLBACK(src, .proc/end), end_duration) +/** + * Fully ends the weather + * + * Effects no longer occur and area overlays are removed + * Removes weather from processing completely + * + */ /datum/weather/proc/end() if(stage == END_STAGE) return 1 @@ -115,7 +185,11 @@ if(can_weather_act(L)) weather_act(L) -/datum/weather/proc/can_weather_act(mob/living/L) //Can this weather impact a mob? +/** + * Returns TRUE if the living mob can be affected by the weather + * + */ +/datum/weather/proc/can_weather_act(mob/living/L) var/turf/mob_turf = get_turf(L) if(mob_turf && !(mob_turf.z in impacted_z_levels)) return @@ -123,11 +197,19 @@ return if(!(get_area(L) in impacted_areas)) return - return 1 + return TRUE -/datum/weather/proc/weather_act(mob/living/L) //What effect does this weather have on the hapless mob? +/** + * Affects the mob with whatever the weather does + * + */ +/datum/weather/proc/weather_act(mob/living/L) return +/** + * Updates the overlays on impacted areas + * + */ /datum/weather/proc/update_areas() for(var/V in impacted_areas) var/area/N = V diff --git a/code/datums/weather/weather_types/acid_rain.dm b/code/datums/weather/weather_types/acid_rain.dm index 93e5c2556e..a1ec4871d5 100644 --- a/code/datums/weather/weather_types/acid_rain.dm +++ b/code/datums/weather/weather_types/acid_rain.dm @@ -17,8 +17,9 @@ end_message = "The downpour gradually slows to a light shower. It should be safe outside now." end_sound = 'sound/ambience/acidrain_end.ogg' - area_type = /area/lavaland/surface/outdoors - target_trait = ZTRAIT_MINING + area_type = /area + protect_indoors = TRUE + target_trait = ZTRAIT_ACIDRAIN immunity_type = "acid" // temp diff --git a/code/datums/weather/weather_types/ash_storm.dm b/code/datums/weather/weather_types/ash_storm.dm index b44778054e..43190ef50c 100644 --- a/code/datums/weather/weather_types/ash_storm.dm +++ b/code/datums/weather/weather_types/ash_storm.dm @@ -16,8 +16,9 @@ end_duration = 300 end_overlay = "light_ash" - area_type = /area/lavaland/surface/outdoors - target_trait = ZTRAIT_MINING + area_type = /area + protect_indoors = TRUE + target_trait = ZTRAIT_ASHSTORM immunity_type = "ash" diff --git a/code/datums/weather/weather_types/snow_storm.dm b/code/datums/weather/weather_types/snow_storm.dm index db29f49098..8ab4839cdb 100644 --- a/code/datums/weather/weather_types/snow_storm.dm +++ b/code/datums/weather/weather_types/snow_storm.dm @@ -15,8 +15,9 @@ end_duration = 100 end_message = "The snowfall dies down, it should be safe to go outside again." - area_type = /area/awaymission/snowdin/outside - target_trait = ZTRAIT_AWAY + area_type = /area + protect_indoors = TRUE + target_trait = ZTRAIT_SNOWSTORM immunity_type = "snow" diff --git a/code/datums/wires/_wires.dm b/code/datums/wires/_wires.dm index be87503981..a7da6d2c66 100644 --- a/code/datums/wires/_wires.dm +++ b/code/datums/wires/_wires.dm @@ -33,6 +33,9 @@ var/list/assemblies = list() // List of attached assemblies. var/randomize = 0 // If every instance of these wires should be random. // Prevents wires from showing up in station blueprints + var/req_knowledge = INFINITY //wiring skill level on which the functions are revealed. + var/req_skill = JOB_SKILL_BASIC //used in user's cutting/pulsing/mending speed calculations. + var/list/current_users //list of untrained people currently interacting with this set of wires. /datum/wires/New(atom/holder) ..() @@ -130,8 +133,22 @@ cut_wires += wire on_cut(wire, mend = FALSE) -/datum/wires/proc/cut_color(color) +/datum/wires/proc/cut_color(color, mob/living/user) + LAZYINITLIST(current_users) + if(current_users[user]) + return FALSE + if(req_skill && user?.mind) + var/level_diff = req_skill - user.mind.skill_holder.get_skill_level(/datum/skill/level/job/wiring) + if(level_diff > 0) + LAZYSET(current_users, user, TRUE) + to_chat(user, "You begin cutting [holder]'s [color] wire...") + if(!do_after(user, 1.5 SECONDS * level_diff, target = holder) || !interactable(user)) + LAZYREMOVE(current_users, user) + return FALSE + LAZYREMOVE(current_users, user) + to_chat(user, "You cut [holder]'s [color] wire.") cut(get_wire(color)) + return TRUE /datum/wires/proc/cut_random() cut(wires[rand(1, wires.len)]) @@ -146,7 +163,21 @@ on_pulse(wire, user) /datum/wires/proc/pulse_color(color, mob/living/user) + LAZYINITLIST(current_users) + if(current_users[user]) + return FALSE + if(req_skill && user?.mind) + var/level_diff = req_skill - user.mind.skill_holder.get_skill_level(/datum/skill/level/job/wiring) + if(level_diff > 0) + LAZYSET(current_users, user, TRUE) + to_chat(user, "You begin pulsing [holder]'s [color] wire...") + if(!do_after(user, 1.5 SECONDS * level_diff, target = holder) || !interactable(user)) + LAZYREMOVE(current_users, user) + return FALSE + LAZYREMOVE(current_users, user) + to_chat(user, "You pulse [holder]'s [color] wire.") pulse(get_wire(color), user) + return TRUE /datum/wires/proc/pulse_assembly(obj/item/assembly/S) for(var/color in assemblies) @@ -224,7 +255,7 @@ var/reveal_wires = FALSE // Admin ghost can see a purpose of each wire. - if(IsAdminGhost(user)) + if(IsAdminGhost(user) || user.mind.skill_holder.get_skill_level(/datum/skill/level/job/wiring) >= req_knowledge) reveal_wires = TRUE // Same for anyone with an abductor multitool. @@ -259,18 +290,16 @@ if("cut") I = L.is_holding_tool_quality(TOOL_WIRECUTTER) if(I || IsAdminGhost(usr)) - if(I && holder) + if(cut_color(target_wire, L) && I && holder) I.play_tool_sound(holder, 20) - cut_color(target_wire) . = TRUE else to_chat(L, "You need wirecutters!") if("pulse") I = L.is_holding_tool_quality(TOOL_MULTITOOL) if(I || IsAdminGhost(usr)) - if(I && holder) + if(pulse_color(target_wire, L) && I && holder) I.play_tool_sound(holder, 20) - pulse_color(target_wire, L) . = TRUE else to_chat(L, "You need a multitool!") diff --git a/code/datums/wires/airalarm.dm b/code/datums/wires/airalarm.dm index 0c4715e27e..dae92d3c42 100644 --- a/code/datums/wires/airalarm.dm +++ b/code/datums/wires/airalarm.dm @@ -1,6 +1,7 @@ /datum/wires/airalarm holder_type = /obj/machinery/airalarm proper_name = "Air Alarm" + req_knowledge = JOB_SKILL_MASTER /datum/wires/airalarm/New(atom/holder) wires = list( diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm index b6699540c3..2b13344cc6 100644 --- a/code/datums/wires/airlock.dm +++ b/code/datums/wires/airlock.dm @@ -1,6 +1,7 @@ /datum/wires/airlock holder_type = /obj/machinery/door/airlock proper_name = "Generic Airlock" + req_skill = JOB_SKILL_UNTRAINED //Training wheel, as per request. var/wiretype /datum/wires/airlock/secure @@ -52,10 +53,11 @@ /datum/wires/airlock/interactable(mob/user) var/obj/machinery/door/airlock/A = holder + if(!A.panel_open) + return FALSE if(!A.hasSiliconAccessInArea(user) && A.isElectrified() && A.shock(user, 100)) return FALSE - if(A.panel_open) - return TRUE + return TRUE /datum/wires/airlock/get_status() var/obj/machinery/door/airlock/A = holder diff --git a/code/datums/wires/apc.dm b/code/datums/wires/apc.dm index dc126f612e..997c77aa51 100644 --- a/code/datums/wires/apc.dm +++ b/code/datums/wires/apc.dm @@ -1,6 +1,7 @@ /datum/wires/apc holder_type = /obj/machinery/power/apc proper_name = "APC" + req_knowledge = JOB_SKILL_MASTER /datum/wires/apc/New(atom/holder) wires = list( diff --git a/code/datums/wires/autolathe.dm b/code/datums/wires/autolathe.dm index f83bab5910..01e87228d4 100644 --- a/code/datums/wires/autolathe.dm +++ b/code/datums/wires/autolathe.dm @@ -1,6 +1,7 @@ /datum/wires/autolathe holder_type = /obj/machinery/autolathe proper_name = "Autolathe" + req_knowledge = JOB_SKILL_EXPERT /datum/wires/autolathe/New(atom/holder) wires = list( diff --git a/code/datums/wires/autoylathe.dm b/code/datums/wires/autoylathe.dm deleted file mode 100644 index 736c9551ec..0000000000 --- a/code/datums/wires/autoylathe.dm +++ /dev/null @@ -1,48 +0,0 @@ -/datum/wires/autoylathe - holder_type = /obj/machinery/autoylathe - proper_name = "Autoylathe" - -/datum/wires/autoylathe/New(atom/holder) - wires = list( - WIRE_HACK, WIRE_DISABLE, - WIRE_SHOCK, WIRE_ZAP - ) - add_duds(6) - ..() - -/datum/wires/autoylathe/interactable(mob/user) - var/obj/machinery/autoylathe/A = holder - if(A.panel_open) - return TRUE - -/datum/wires/autoylathe/get_status() - var/obj/machinery/autoylathe/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/autoylathe/on_pulse(wire) - var/obj/machinery/autoylathe/A = holder - switch(wire) - if(WIRE_HACK) - A.adjust_hacked(!A.hacked) - addtimer(CALLBACK(A, /obj/machinery/autoylathe.proc/reset, wire), 60) - if(WIRE_SHOCK) - A.shocked = !A.shocked - addtimer(CALLBACK(A, /obj/machinery/autoylathe.proc/reset, wire), 60) - if(WIRE_DISABLE) - A.disabled = !A.disabled - addtimer(CALLBACK(A, /obj/machinery/autoylathe.proc/reset, wire), 60) - -/datum/wires/autoylathe/on_cut(wire, mend) - var/obj/machinery/autoylathe/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/code/datums/wires/emitter.dm b/code/datums/wires/emitter.dm index d0e1352c0e..6d82a7db5a 100644 --- a/code/datums/wires/emitter.dm +++ b/code/datums/wires/emitter.dm @@ -1,6 +1,8 @@ /datum/wires/emitter holder_type = /obj/machinery/power/emitter + req_knowledge = JOB_SKILL_TRAINED + req_skill = JOB_SKILL_UNTRAINED /datum/wires/emitter/New(atom/holder) wires = list(WIRE_ZAP,WIRE_HACK) diff --git a/code/datums/wires/explosive.dm b/code/datums/wires/explosive.dm index 3d1ed8b746..dc4db9e85d 100644 --- a/code/datums/wires/explosive.dm +++ b/code/datums/wires/explosive.dm @@ -15,6 +15,7 @@ /datum/wires/explosive/c4 holder_type = /obj/item/grenade/plastic/c4 randomize = TRUE //Same behaviour since no wire actually disarms it + req_skill = JOB_SKILL_UNTRAINED /datum/wires/explosive/c4/interactable(mob/user) var/obj/item/grenade/plastic/c4/P = holder @@ -29,6 +30,7 @@ /datum/wires/explosive/pizza holder_type = /obj/item/pizzabox randomize = TRUE + req_skill = JOB_SKILL_MASTER /datum/wires/explosive/pizza/New(atom/holder) wires = list( diff --git a/code/datums/wires/microwave.dm b/code/datums/wires/microwave.dm index 8c74abfa46..c6e6aa13b5 100644 --- a/code/datums/wires/microwave.dm +++ b/code/datums/wires/microwave.dm @@ -1,6 +1,8 @@ /datum/wires/microwave holder_type = /obj/machinery/microwave proper_name = "Microwave" + req_knowledge = JOB_SKILL_TRAINED + req_skill = JOB_SKILL_UNTRAINED /datum/wires/microwave/New(atom/holder) wires = list( diff --git a/code/datums/wires/mulebot.dm b/code/datums/wires/mulebot.dm index a452b46830..988487727b 100644 --- a/code/datums/wires/mulebot.dm +++ b/code/datums/wires/mulebot.dm @@ -1,6 +1,7 @@ /datum/wires/mulebot holder_type = /mob/living/simple_animal/bot/mulebot randomize = TRUE + req_knowledge = JOB_SKILL_MASTER /datum/wires/mulebot/New(atom/holder) wires = list( diff --git a/code/datums/wires/particle_accelerator.dm b/code/datums/wires/particle_accelerator.dm index af89f0d6f1..b782e589dd 100644 --- a/code/datums/wires/particle_accelerator.dm +++ b/code/datums/wires/particle_accelerator.dm @@ -1,6 +1,8 @@ /datum/wires/particle_accelerator/control_box holder_type = /obj/machinery/particle_accelerator/control_box proper_name = "Particle Accelerator" + req_knowledge = JOB_SKILL_EXPERT + req_skill = JOB_SKILL_TRAINED /datum/wires/particle_accelerator/control_box/New(atom/holder) wires = list( diff --git a/code/datums/wires/r_n_d.dm b/code/datums/wires/r_n_d.dm index ea61c1779e..25d3b73fe0 100644 --- a/code/datums/wires/r_n_d.dm +++ b/code/datums/wires/r_n_d.dm @@ -1,6 +1,7 @@ /datum/wires/rnd holder_type = /obj/machinery/rnd randomize = TRUE + req_knowledge = JOB_SKILL_EXPERT /datum/wires/rnd/New(atom/holder) wires = list( diff --git a/code/datums/wires/radio.dm b/code/datums/wires/radio.dm index a1118da6d7..5db6ddd186 100644 --- a/code/datums/wires/radio.dm +++ b/code/datums/wires/radio.dm @@ -1,6 +1,8 @@ /datum/wires/radio holder_type = /obj/item/radio proper_name = "Radio" + req_knowledge = JOB_SKILL_TRAINED + req_skill = JOB_SKILL_UNTRAINED /datum/wires/radio/New(atom/holder) wires = list( diff --git a/code/datums/wires/robot.dm b/code/datums/wires/robot.dm index aa7c3cc4c3..6ede0415da 100644 --- a/code/datums/wires/robot.dm +++ b/code/datums/wires/robot.dm @@ -1,6 +1,8 @@ /datum/wires/robot holder_type = /mob/living/silicon/robot randomize = TRUE + req_knowledge = JOB_SKILL_MASTER + req_skill = JOB_SKILL_TRAINED /datum/wires/robot/New(atom/holder) wires = list( diff --git a/code/datums/wires/suit_storage_unit.dm b/code/datums/wires/suit_storage_unit.dm index eb7781203b..4387d0dc76 100644 --- a/code/datums/wires/suit_storage_unit.dm +++ b/code/datums/wires/suit_storage_unit.dm @@ -1,6 +1,8 @@ /datum/wires/suit_storage_unit holder_type = /obj/machinery/suit_storage_unit proper_name = "Suit Storage Unit" + req_knowledge = JOB_SKILL_TRAINED + req_skill = JOB_SKILL_UNTRAINED /datum/wires/suit_storage_unit/New(atom/holder) wires = list( diff --git a/code/datums/wires/syndicatebomb.dm b/code/datums/wires/syndicatebomb.dm index 53c1a1b9bc..8e1cf5002f 100644 --- a/code/datums/wires/syndicatebomb.dm +++ b/code/datums/wires/syndicatebomb.dm @@ -1,6 +1,8 @@ /datum/wires/syndicatebomb holder_type = /obj/machinery/syndicatebomb randomize = TRUE + req_skill = JOB_SKILL_EXPERT //good luck, wannabe hero. + /datum/wires/syndicatebomb/New(atom/holder) wires = list( diff --git a/code/datums/wires/tesla_coil.dm b/code/datums/wires/tesla_coil.dm index fa858a9a8f..68fe8e72fc 100644 --- a/code/datums/wires/tesla_coil.dm +++ b/code/datums/wires/tesla_coil.dm @@ -2,6 +2,7 @@ /datum/wires/tesla_coil randomize = 1 //Only one wire don't need blueprints holder_type = /obj/machinery/power/tesla_coil + req_knowledge = JOB_SKILL_TRAINED /datum/wires/tesla_coil/New(atom/holder) wires = list(WIRE_ZAP) diff --git a/code/datums/wires/vending.dm b/code/datums/wires/vending.dm index 114791e873..6c7e59c24c 100644 --- a/code/datums/wires/vending.dm +++ b/code/datums/wires/vending.dm @@ -1,6 +1,7 @@ /datum/wires/vending holder_type = /obj/machinery/vending proper_name = "Vending Unit" + req_knowledge = JOB_SKILL_EXPERT /datum/wires/vending/New(atom/holder) wires = list( diff --git a/code/datums/world_topic.dm b/code/datums/world_topic.dm index c2855250f4..30699d36f4 100644 --- a/code/datums/world_topic.dm +++ b/code/datums/world_topic.dm @@ -169,7 +169,7 @@ .["real_mode"] = SSticker.mode.name // Key-authed callers may know the truth behind the "secret" - .["security_level"] = get_security_level() + .["security_level"] = NUM2SECLEVEL(GLOB.security_level) .["round_duration"] = SSticker ? round((world.time-SSticker.round_start_time)/10) : 0 // Amount of world's ticks in seconds, useful for calculating round duration diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index fe9f2a676e..5fac1a4b65 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -11,13 +11,27 @@ mouse_opacity = MOUSE_OPACITY_TRANSPARENT invisibility = INVISIBILITY_LIGHTING - var/map_name // Set in New(); preserves the name set by the map maker, even if renamed by the Blueprints. + /// Set in New(); preserves the name set by the map maker, even if renamed by the Blueprints. + var/map_name - var/valid_territory = TRUE // If it's a valid territory for gangs to claim - var/blob_allowed = TRUE // Does it count for blobs score? By default, all areas count. - var/clockwork_warp_allowed = TRUE // Can servants warp into this area from Reebe? + /// If it's valid territory for gangs/cults to summon + var/valid_territory = TRUE + /// if blobs can spawn there and if it counts towards their score. + var/blob_allowed = TRUE + /// whether servants can warp into this area from Reebe + var/clockwork_warp_allowed = TRUE + /// Message to display when the clockwork warp fails var/clockwork_warp_fail = "The structure there is too dense for warping to pierce. (This is normal in high-security areas.)" + /// If mining tunnel generation is allowed in this area + var/tunnel_allowed = FALSE + /// If flora are allowed to spawn in this area randomly through tunnel generation + var/flora_allowed = FALSE + /// if mobs can be spawned by natural random generation + var/mob_spawn_allowed = FALSE + /// If megafauna can be spawned by natural random generation + var/megafauna_spawn_allowed = FALSE + var/fire = null var/atmos = TRUE var/atmosalm = FALSE @@ -25,11 +39,14 @@ var/lightswitch = TRUE var/requires_power = TRUE - var/always_unpowered = FALSE // This gets overridden to 1 for space in area/Initialize(). + /// This gets overridden to 1 for space in area/Initialize(). + var/always_unpowered = FALSE - var/outdoors = FALSE //For space, the asteroid, lavaland, etc. Used with blueprints to determine if we are adding a new area (vs editing a station room) + /// For space, the asteroid, lavaland, etc. Used with blueprints to determine if we are adding a new area (vs editing a station room) + var/outdoors = FALSE - var/areasize = 0 //Size of the area in open turfs, only calculated for indoors areas. + /// Size of the area in open turfs, only calculated for indoors areas. + var/areasize = 0 var/power_equip = TRUE var/power_light = TRUE @@ -43,9 +60,12 @@ var/static_environ var/has_gravity = 0 - var/noteleport = FALSE //Are you forbidden from teleporting to the area? (centcom, mobs, wizard, hand teleporter) - var/hidden = FALSE //Hides area from player Teleport function. - var/safe = FALSE //Is the area teleport-safe: no space / radiation / aggresive mobs / other dangers + /// Are you forbidden from teleporting to the area? (centcom, mobs, wizard, hand teleporter) + var/noteleport = FALSE + /// Hides area from player Teleport function. + var/hidden = FALSE + /// Is the area teleport-safe: no space / radiation / aggresive mobs / other dangers + var/safe = FALSE /// If false, loading multiple maps with this area type will create multiple instances. var/unique = TRUE diff --git a/code/game/area/areas/mining.dm b/code/game/area/areas/mining.dm index 2ca9167bb2..70e0910dde 100644 --- a/code/game/area/areas/mining.dm +++ b/code/game/area/areas/mining.dm @@ -3,6 +3,7 @@ /area/mine icon_state = "mining" has_gravity = STANDARD_GRAVITY + flora_allowed = TRUE /area/mine/explored name = "Mine" @@ -17,6 +18,7 @@ outdoors = TRUE flags_1 = NONE ambientsounds = MINING + flora_allowed = FALSE /area/mine/unexplored name = "Mine" @@ -31,6 +33,7 @@ outdoors = TRUE flags_1 = NONE ambientsounds = MINING + tunnel_allowed = TRUE /area/mine/lobby name = "Mining Station" @@ -82,6 +85,7 @@ icon_state = "mining" has_gravity = STANDARD_GRAVITY flags_1 = NONE + flora_allowed = TRUE /area/lavaland/surface name = "Lavaland" @@ -114,9 +118,79 @@ /area/lavaland/surface/outdoors/unexplored //monsters and ruins spawn here icon_state = "unexplored" + tunnel_allowed = TRUE + mob_spawn_allowed = TRUE /area/lavaland/surface/outdoors/unexplored/danger //megafauna will also spawn here icon_state = "danger" + megafauna_spawn_allowed = TRUE /area/lavaland/surface/outdoors/explored name = "Lavaland Labor Camp" + flora_allowed = FALSE + + + +/**********************Ice Moon Areas**************************/ + +/area/icemoon + icon_state = "mining" + has_gravity = STANDARD_GRAVITY + flags_1 = NONE + flora_allowed = TRUE + blob_allowed = FALSE + +/area/icemoon/surface + name = "Icemoon" + icon_state = "explored" + always_unpowered = TRUE + poweralm = FALSE + power_environ = FALSE + power_equip = FALSE + power_light = FALSE + requires_power = TRUE + ambientsounds = MINING + +/area/icemoon/underground + name = "Icemoon Caves" + outdoors = TRUE + always_unpowered = TRUE + requires_power = TRUE + poweralm = FALSE + power_environ = FALSE + power_equip = FALSE + power_light = FALSE + ambientsounds = MINING + +/area/icemoon/underground/unexplored // mobs and megafauna and ruins spawn here + name = "Icemoon Caves" + icon_state = "unexplored" + tunnel_allowed = TRUE + mob_spawn_allowed = TRUE + megafauna_spawn_allowed = TRUE + +/area/icemoon/underground/unexplored/rivers // rivers spawn here + icon_state = "danger" + +/area/icemoon/underground/explored + name = "Icemoon Underground" + flora_allowed = FALSE + +/area/icemoon/surface/outdoors + name = "Icemoon Wastes" + outdoors = TRUE + +/area/icemoon/surface/outdoors/labor_camp + name = "Icemoon Labor Camp" + flora_allowed = FALSE + +/area/icemoon/surface/outdoors/unexplored //monsters and ruins spawn here + icon_state = "unexplored" + tunnel_allowed = TRUE + mob_spawn_allowed = TRUE + +/area/icemoon/surface/outdoors/unexplored/rivers // rivers spawn here + icon_state = "danger" + +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters + mob_spawn_allowed = FALSE diff --git a/code/game/area/areas/ruins/icemoon.dm b/code/game/area/areas/ruins/icemoon.dm new file mode 100644 index 0000000000..6706a5faea --- /dev/null +++ b/code/game/area/areas/ruins/icemoon.dm @@ -0,0 +1,9 @@ +// Icemoon Ruins + +/area/ruin/unpowered/buried_library + name = "Buried Library" + icon_state = "dk_yellow" + +/area/ruin/powered/bathhouse + name = "Bath House" + icon_state = "dk_yellow" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 69476b5950..ad71c3c2ac 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -50,6 +50,13 @@ var/list/blood_DNA var/list/suit_fibers + /// Last name used to calculate a color for the chatmessage overlays + var/chat_color_name + /// Last color calculated for the the chatmessage overlays + var/chat_color + /// A luminescence-shifted value of the last color calculated for chatmessage overlays + var/chat_color_darkened + /atom/New(loc, ...) //atom creation method that preloads variables at creation if(GLOB.use_preloader && (src.type == GLOB._preloader.target_path))//in case the instanciated atom is creating other atoms in New() @@ -192,7 +199,7 @@ reagents = new() reagents.reagent_list.Add(A) reagents.conditional_update() - else if(ismovableatom(A)) + else if(ismovable(A)) var/atom/movable/M = A if(isliving(M.loc)) var/mob/living/L = M.loc @@ -692,7 +699,7 @@ /atom/vv_get_dropdown() . = ..() VV_DROPDOWN_OPTION("", "---------") - if(!ismovableatom(src)) + if(!ismovable(src)) var/turf/curturf = get_turf(src) if(curturf) . += "" @@ -970,7 +977,7 @@ Proc for attack log creation, because really why not for(var/x in materials) var/datum/material/custom_material = SSmaterials.GetMaterialRef(x) - if(!(material_flags & MATERIAL_NO_EFFECTS)) + if(material_flags & MATERIAL_EFFECTS) custom_material.on_applied(src, materials[custom_material] * multiplier * material_modifier, material_flags) custom_materials[custom_material] += materials[x] * multiplier diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 6089d11d6c..fe617ddb0f 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -11,7 +11,7 @@ var/throw_range = 7 var/mob/pulledby = null var/initial_language_holder = /datum/language_holder - var/datum/language_holder/language_holder + var/datum/language_holder/language_holder // Mindless mobs and objects need language too, some times. Mind holder takes prescedence. var/verb_say = "says" var/verb_ask = "asks" var/verb_exclaim = "exclaims" @@ -25,6 +25,7 @@ var/inertia_move_delay = 5 var/pass_flags = 0 var/moving_diagonally = 0 //0: not doing a diagonal move. 1 and 2: doing the first/second step of the diagonal move + var/atom/movable/moving_from_pull //attempt to resume grab after moving instead of before. var/list/client_mobs_in_contents // This contains all the client mobs within this container var/list/acted_explosions //for explosion dodging glide_size = 8 @@ -68,7 +69,7 @@ if(vs.plane == EMISSIVE_BLOCKER_PLANE) SSvis_overlays.remove_vis_overlay(src, list(vs)) break - SSvis_overlays.add_vis_overlay(src, icon, icon_state, EMISSIVE_BLOCKER_LAYER, EMISSIVE_BLOCKER_PLANE) + SSvis_overlays.add_vis_overlay(src, icon, icon_state, EMISSIVE_BLOCKER_LAYER, EMISSIVE_BLOCKER_PLANE, dir) /atom/movable/proc/can_zFall(turf/source, levels = 1, turf/target, direction) if(!direction) @@ -207,6 +208,7 @@ if(!Process_Spacemove(get_dir(pulling.loc, A))) return step(pulling, get_dir(pulling.loc, A)) + return TRUE /atom/movable/proc/check_pulling() if(pulling) @@ -224,6 +226,8 @@ if(pulling.anchored || pulling.move_resist > move_force) stop_pulling() return + if(pulledby && moving_diagonally != FIRST_DIAG_STEP && get_dist(src, pulledby) > 1) //separated from our puller and not in the middle of a diagonal move. + pulledby.stop_pulling() /atom/movable/Destroy(force) QDEL_NULL(proximity_monitor) @@ -251,8 +255,13 @@ /atom/movable/proc/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) set waitfor = 0 - SEND_SIGNAL(src, COMSIG_MOVABLE_IMPACT, hit_atom, throwingdatum) - return hit_atom.hitby(src, throwingdatum=throwingdatum) + var/hitpush = TRUE + var/impact_signal = SEND_SIGNAL(src, COMSIG_MOVABLE_IMPACT, hit_atom, throwingdatum) + if(impact_signal & COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH) + hitpush = FALSE // hacky, tie this to something else or a proper workaround later + + if(impact_signal & ~COMPONENT_MOVABLE_IMPACT_NEVERMIND) // in case a signal interceptor broke or deleted the thing before we could process our hit + return hit_atom.hitby(src, throwingdatum = throwingdatum, hitpush = hitpush) /atom/movable/hitby(atom/movable/AM, skipcatch, hitpush = TRUE, blocked, datum/thrownthing/throwingdatum) if(!anchored && hitpush && (!throwingdatum || (throwingdatum.force >= (move_resist * MOVE_FORCE_PUSH_RATIO)))) @@ -493,88 +502,94 @@ animate(src, pixel_y = initial(pixel_y), time = 10) setMovetype(movement_type & ~FLOATING) -/* Language procs */ -/atom/movable/proc/get_language_holder(shadow=TRUE) - if(language_holder) - return language_holder - else + +/* Language procs +* Unless you are doing something very specific, these are the ones you want to use. +*/ + +/// Gets or creates the relevant language holder. For mindless atoms, gets the local one. For atom with mind, gets the mind one. +/atom/movable/proc/get_language_holder(get_minds = TRUE) + if(!language_holder) language_holder = new initial_language_holder(src) - return language_holder + return language_holder -/atom/movable/proc/grant_language(datum/language/dt, body = FALSE) - var/datum/language_holder/H = get_language_holder(!body) - H.grant_language(dt, body) +/// Grants the supplied language and sets omnitongue true. +/atom/movable/proc/grant_language(language, understood = TRUE, spoken = TRUE, source = LANGUAGE_ATOM) + var/datum/language_holder/LH = get_language_holder() + return LH.grant_language(language, understood, spoken, source) -/atom/movable/proc/grant_all_languages(omnitongue=FALSE) - var/datum/language_holder/H = get_language_holder() - H.grant_all_languages(omnitongue) +/// Grants every language. +/atom/movable/proc/grant_all_languages(understood = TRUE, spoken = TRUE, grant_omnitongue = TRUE, source = LANGUAGE_MIND) + var/datum/language_holder/LH = get_language_holder() + return LH.grant_all_languages(understood, spoken, grant_omnitongue, source) +/// Removes a single language. +/atom/movable/proc/remove_language(language, understood = TRUE, spoken = TRUE, source = LANGUAGE_ALL) + var/datum/language_holder/LH = get_language_holder() + return LH.remove_language(language, understood, spoken, source) + +/// Removes every language and sets omnitongue false. +/atom/movable/proc/remove_all_languages(source = LANGUAGE_ALL, remove_omnitongue = FALSE) + var/datum/language_holder/LH = get_language_holder() + return LH.remove_all_languages(source, remove_omnitongue) + +/// Adds a language to the blocked language list. Use this over remove_language in cases where you will give languages back later. +/atom/movable/proc/add_blocked_language(language, source = LANGUAGE_ATOM) + var/datum/language_holder/LH = get_language_holder() + return LH.add_blocked_language(language, source) + +/// Removes a language from the blocked language list. +/atom/movable/proc/remove_blocked_language(language, source = LANGUAGE_ATOM) + var/datum/language_holder/LH = get_language_holder() + return LH.remove_blocked_language(language, source) + +/// Checks if atom has the language. If spoken is true, only checks if atom can speak the language. +/atom/movable/proc/has_language(language, spoken = FALSE) + var/datum/language_holder/LH = get_language_holder() + return LH.has_language(language, spoken) + +/// Checks if atom can speak the language. +/atom/movable/proc/can_speak_language(language) + var/datum/language_holder/LH = get_language_holder() + return LH.can_speak_language(language) + +/// Returns the result of tongue specific limitations on spoken languages. +/atom/movable/proc/could_speak_language(language) + return TRUE + +/// Returns selected language, if it can be spoken, or finds, sets and returns a new selected language if possible. +/atom/movable/proc/get_selected_language() + var/datum/language_holder/LH = get_language_holder() + return LH.get_selected_language() + +/// Gets a random understood language, useful for hallucinations and such. /atom/movable/proc/get_random_understood_language() - var/datum/language_holder/H = get_language_holder() - . = H.get_random_understood_language() + var/datum/language_holder/LH = get_language_holder() + return LH.get_random_understood_language() -/atom/movable/proc/remove_language(datum/language/dt, body = FALSE) - var/datum/language_holder/H = get_language_holder(!body) - H.remove_language(dt, body) +/// Gets a random spoken language, useful for forced speech and such. +/atom/movable/proc/get_random_spoken_language() + var/datum/language_holder/LH = get_language_holder() + return LH.get_random_spoken_language() -/atom/movable/proc/remove_all_languages() - var/datum/language_holder/H = get_language_holder() - H.remove_all_languages() +/// Copies all languages into the supplied atom/language holder. Source should be overridden when you +/// do not want the language overwritten by later atom updates or want to avoid blocked languages. +/atom/movable/proc/copy_languages(from_holder, source_override) + if(isatom(from_holder)) + var/atom/movable/thing = from_holder + from_holder = thing.get_language_holder() + var/datum/language_holder/LH = get_language_holder() + return LH.copy_languages(from_holder, source_override) -/atom/movable/proc/has_language(datum/language/dt) - var/datum/language_holder/H = get_language_holder() - . = H.has_language(dt) - -/atom/movable/proc/copy_known_languages_from(thing, replace=FALSE) - var/datum/language_holder/H = get_language_holder() - . = H.copy_known_languages_from(thing, replace) - -// Whether an AM can speak in a language or not, independent of whether -// it KNOWS the language -/atom/movable/proc/could_speak_in_language(datum/language/dt) - . = TRUE - -/atom/movable/proc/can_speak_in_language(datum/language/dt) - var/datum/language_holder/H = get_language_holder() - - if(!H.has_language(dt)) - return FALSE - else if(H.omnitongue) - return TRUE - else if(could_speak_in_language(dt) && (!H.only_speaks_language || H.only_speaks_language == dt)) - return TRUE - else - return FALSE - -/atom/movable/proc/get_default_language() - // if no language is specified, and we want to say() something, which - // language do we use? - var/datum/language_holder/H = get_language_holder() - - if(H.selected_default_language) - if(can_speak_in_language(H.selected_default_language)) - return H.selected_default_language - else - H.selected_default_language = null - - - var/datum/language/chosen_langtype - var/highest_priority - - for(var/lt in H.languages) - var/datum/language/langtype = lt - if(!can_speak_in_language(langtype)) - continue - - var/pri = initial(langtype.default_priority) - if(!highest_priority || (pri > highest_priority)) - chosen_langtype = langtype - highest_priority = pri - - H.selected_default_language = . - . = chosen_langtype +/// Empties out the atom specific languages and updates them according to the current atoms language holder. +/// As a side effect, it also creates missing language holders in the process. +/atom/movable/proc/update_atom_languages() + var/datum/language_holder/LH = get_language_holder() + return LH.update_atom_languages(src) /* End language procs */ + + /atom/movable/proc/ConveyorMove(movedir) set waitfor = FALSE if(!anchored && has_gravity()) diff --git a/code/game/atoms_movement.dm b/code/game/atoms_movement.dm index d418652cd8..68db17f076 100644 --- a/code/game/atoms_movement.dm +++ b/code/game/atoms_movement.dm @@ -20,6 +20,9 @@ if(!newloc.Enter(src, src.loc)) return + if (SEND_SIGNAL(src, COMSIG_MOVABLE_PRE_MOVE, newloc) & COMPONENT_MOVABLE_BLOCK_PRE_MOVE) + return + // Past this is the point of no return var/atom/oldloc = loc var/area/oldarea = get_area(oldloc) @@ -51,13 +54,8 @@ /atom/movable/Move(atom/newloc, direct) var/atom/movable/pullee = pulling var/turf/T = loc - if(pulling) - if(pullee && get_dist(src, pullee) > 1) - stop_pulling() - - if(pullee && pullee.loc != loc && !isturf(pullee.loc) ) //to be removed once all code that changes an object's loc uses forceMove(). - log_game("DEBUG:[src]'s pull on [pullee] wasn't broken despite [pullee] being in [pullee.loc]. Pull stopped manually.") - stop_pulling() + if(!moving_from_pull) + check_pulling() if(!loc || !newloc) return FALSE var/atom/oldloc = loc @@ -130,19 +128,16 @@ if(has_buckled_mobs() && !handle_buckled_mob_movement(loc,direct)) //movement failed due to buckled mob(s) return FALSE - if(pulling && pulling == pullee) //we were pulling a thing and didn't lose it during our move. + if(pulling && pulling == pullee && pulling != moving_from_pull) //we were pulling a thing and didn't lose it during our move. if(pulling.anchored) stop_pulling() else var/pull_dir = get_dir(src, pulling) //puller and pullee more than one tile away or in diagonal position if(get_dist(src, pulling) > 1 || (moving_diagonally != SECOND_DIAG_STEP && ((pull_dir - 1) & pull_dir))) + pulling.moving_from_pull = src pulling.Move(T, get_dir(pulling, T)) //the pullee tries to reach our previous position - if(pulling && get_dist(src, pulling) > 1) //the pullee couldn't keep up - stop_pulling() - if(pulledby && moving_diagonally != FIRST_DIAG_STEP && get_dist(src, pulledby) > 1)//separated from our puller and not in the middle of a diagonal move. - pulledby.stop_pulling() - + pulling.moving_from_pull = null Moved(oldloc, direct) /atom/movable/proc/handle_buckled_mob_movement(newloc,direct) diff --git a/code/game/gamemodes/bloodsucker/bloodsucker.dm b/code/game/gamemodes/bloodsucker/bloodsucker.dm index bb776d7bc0..c54de16e2e 100644 --- a/code/game/gamemodes/bloodsucker/bloodsucker.dm +++ b/code/game/gamemodes/bloodsucker/bloodsucker.dm @@ -53,7 +53,7 @@ restricted_jobs += "Assistant" // Set number of Vamps - recommended_enemies = CLAMP(round(num_players()/10), 1, 6); + recommended_enemies = clamp(round(num_players()/10), 1, 6); // Select Antags for(var/i = 0, i < recommended_enemies, i++) @@ -195,7 +195,7 @@ return FALSE if(target.stat > UNCONSCIOUS) return FALSE - + // Check Overdose: Am I even addicted to blood? Do I even have any in me? //if (!target.reagents.addiction_list || !target.reagents.reagent_list) //message_admins("DEBUG2: can_make_vassal() Abort: No reagents") diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index d548f373db..659d50c077 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -40,8 +40,10 @@ GLOBAL_VAR_INIT(dynamic_stacking_limit, 90) GLOBAL_LIST_EMPTY(dynamic_forced_roundstart_ruleset) // Forced threat level, setting this to zero or higher forces the roundstart threat to the value. GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) - +// Storyteller picked by the voting. GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) +// Storyteller forced by admins during voting--will be used instead of above. +GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) /datum/game_mode/dynamic name = "dynamic mode" @@ -164,7 +166,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) dat += "Current threat: [threat] \[Adjust\] \[View Log\]
    " dat += "
    " - dat += "Storyteller: [storyteller.name]
    " + dat += "Storyteller: [storyteller.name]
    " dat += "Parameters: centre = [GLOB.dynamic_curve_centre] ; width = [GLOB.dynamic_curve_width].
    " dat += "On average, [peaceful_percentage]% of the rounds are more peaceful.
    " dat += "Forced extended: [GLOB.dynamic_forced_extended ? "On" : "Off"]
    " @@ -222,6 +224,15 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) show_threatlog(usr) else if (href_list["stacking_limit"]) GLOB.dynamic_stacking_limit = input(usr,"Change the threat limit at which round-endings rulesets will start to stack.", "Change stacking limit", null) as num + else if (href_list["change_storyteller"]) + var/list/choices = list() + for(var/T in config.storyteller_cache) + var/datum/dynamic_storyteller/S = T + choices[initial(S.name)] = T + var/selected_storyteller = choices[input("Select storyteller:", "Storyteller", storyteller.name) as null|anything in choices] + storyteller = new selected_storyteller + storyteller.on_start() + message_admins("[key_name(usr)] changed the storyteller to [storyteller].", 1) admin_panel() // Refreshes the window @@ -243,7 +254,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) /datum/game_mode/dynamic/send_intercept() . = "Central Command Status Summary
    " switch(round(threat_level)) - if(0 to 20) + if(-INFINITY to 20) . += "Peaceful Waypoint
    " . += "Your station orbits deep within controlled, core-sector systems and serves as a waypoint for routine traffic through Nanotrasen's trade empire. Due to the combination of high security, interstellar traffic, and low strategic value, it makes any direct threat of violence unlikely. Your primary enemies will be incompetence and bored crewmen: try to organize team-building events to keep staffers interested and productive. However, even deep in our territory there may be subversive elements, especially for such a high-value target as your station. Keep an eye out, but don't expect much trouble." set_security_level(SEC_LEVEL_GREEN) @@ -275,7 +286,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) . += "Black Orbit
    " . += "As part of a mandatory security protocol, we are required to inform you that as a result of your orbital pattern directly behind an astrological body (oriented from our nearest observatory), your station will be under decreased monitoring and support. It is anticipated that your extreme location and decreased surveillance could pose security risks. Avoid unnecessary risks and attempt to keep your station in one piece." set_security_level(SEC_LEVEL_AMBER) - if(96 to 100) + if(96 to INFINITY) . += "Impending Doom
    " . += "Your station is somehow in the middle of hostile territory, in clear view of any enemy of the corporation. Your likelihood to survive is low, and station destruction is expected and almost inevitable. Secure any sensitive material and neutralize any enemy you will come across. It is important that you at least try to maintain the station.
    " . += "Good luck." @@ -346,6 +357,8 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) SSblackbox.record_feedback("tally","dynamic_threat",peaceful_percentage,"Percent of same-vote rounds that are more peaceful") /datum/game_mode/dynamic/can_start() + if(GLOB.dynamic_forced_storyteller) + GLOB.dynamic_storyteller_type = GLOB.dynamic_forced_storyteller storyteller = new GLOB.dynamic_storyteller_type // this is where all the initialization happens storyteller.on_start() SSblackbox.record_feedback("text","dynamic_storyteller",1,storyteller.name) @@ -441,6 +454,8 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) if(!drafted_rules.len) message_admins("Not enough threat level for roundstart antags!") log_game("DYNAMIC: Not enough threat level for roundstart antags!") + midround_injection_cooldown = round((midround_injection_cooldown + world.time) / 2, 1) + latejoin_injection_cooldown = round((latejoin_injection_cooldown + world.time) / 2, 1) var/indice_pop = min(10,round(roundstart_pop_ready/pop_per_requirement)+1) extra_rulesets_amount = 0 if (GLOB.dynamic_classic_secret) @@ -721,7 +736,8 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) if (O.started_as_observer) // Observers current_players[CURRENT_OBSERVERS].Add(M) continue - current_players[CURRENT_DEAD_PLAYERS].Add(M) // Players who actually died (and admins who ghosted, would be nice to avoid counting them somehow) + if(!M.voluntary_ghosted) + current_players[CURRENT_DEAD_PLAYERS].Add(M) // Players who actually died (and admins who ghosted, would be nice to avoid counting them somehow) threat = storyteller.calculate_threat() + added_threat if(threat_average_weight) var/cur_sample_weight = world.time - last_threat_sample_time @@ -823,3 +839,11 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) return RULE_OF_THREE(40, 20, x) + 50 if (20 to INFINITY) return rand(90, 100) + +/datum/game_mode/dynamic/ghost_info() + . = list() + . += "Current threat: [threat]" + . += "Target threat: [threat_level]" + . += "Storyteller: [storyteller.name]
    " + . += "Parameters: centre = [GLOB.dynamic_curve_centre] ; width = [GLOB.dynamic_curve_width].
    " + . += "On average, [peaceful_percentage]% of the rounds are more peaceful.
    " diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index 48e306b2b5..6a7671cd5b 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -105,7 +105,7 @@ if (M.mind && M.mind.assigned_role && (M.mind.assigned_role in enemy_roles) && (!(M in candidates) || (M.mind.assigned_role in restricted_roles))) job_check++ // Checking for "enemies" (such as sec officers). To be counters, they must either not be candidates to that rule, or have a job that restricts them from it - var/threat = CLAMP(round(mode.threat_level/10),1,10) + var/threat = clamp(round(mode.threat_level/10),1,10) if (job_check < required_enemies[threat]) SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough enemy roles") return FALSE @@ -642,6 +642,9 @@ for(var/obj/effect/landmark/carpspawn/L in GLOB.landmarks_list) if(isturf(L.loc)) spawn_locs += L.loc + for(var/obj/effect/landmark/loneopspawn/L in GLOB.landmarks_list) + if(isturf(L.loc)) + spawn_locs += L.loc if(!spawn_locs.len) return FALSE spawn_loc = pick(spawn_locs) @@ -671,7 +674,7 @@ message_admins("[ADMIN_LOOKUPFLW(Ninja)] has been made into a ninja by dynamic.") log_game("[key_name(Ninja)] was spawned as a ninja by dynamic.") return Ninja - + /datum/dynamic_ruleset/midround/from_ghosts/ninja/finish_setup(mob/new_character, index) return diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm index a7fc9b86ce..edaadeae1c 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm @@ -789,7 +789,7 @@ if (prob(meteorminutes/2)) wavetype = GLOB.meteors_catastrophic - var/ramp_up_final = CLAMP(round(meteorminutes/rampupdelta), 1, 10) + var/ramp_up_final = clamp(round(meteorminutes/rampupdelta), 1, 10) spawn_meteors(ramp_up_final, wavetype) diff --git a/code/game/gamemodes/dynamic/dynamic_storytellers.dm b/code/game/gamemodes/dynamic/dynamic_storytellers.dm index c37eb9bc2a..561b38fde1 100644 --- a/code/game/gamemodes/dynamic/dynamic_storytellers.dm +++ b/code/game/gamemodes/dynamic/dynamic_storytellers.dm @@ -11,7 +11,7 @@ WAROPS_ALWAYS_ALLOWED: Can always do warops, regardless of threat level. USE_PREF_WEIGHTS: Will use peoples' preferences to change the threat centre. FORCE_IF_WON: If this mode won the vote, forces it - USE_PREV_ROUND_WEIGHTS: Changes its threat centre based on the average chaos of previous rounds. + USE_PREV_ROUND_WEIGHTS: Changes its threat centre based on the average chaos of previous rounds. */ var/flags = 0 var/dead_player_weight = 1 // How much dead players matter for threat calculation @@ -22,11 +22,11 @@ var/datum/game_mode/dynamic/mode = null // Cached as soon as it's made, by dynamic. /** -Property weights are: +Property weights are: "story_potential" -- essentially how many different ways the antag can be played. "trust" -- How much it makes the crew trust each other. Negative values means they're suspicious. Team antags are like this. "chaos" -- How chaotic it makes the round. Has some overlap with "valid" and somewhat contradicts "extended". -"valid" -- How likely the non-antag-enemy crew are to get involved, e.g. nukies encouraging the warden to +"valid" -- How likely the non-antag-enemy crew are to get involved, e.g. nukies encouraging the warden to let everyone into the armory, wizard moving around and being a nuisance, nightmare busting lights. "extended" -- How much the antag is conducive to a long round. Nukies and cults are bad for this; Wizard is less bad; and so on. "conversion" -- Basically a bool. Conversion antags, well, convert. It's its own class for a good reason. @@ -34,13 +34,13 @@ Property weights are: /datum/dynamic_storyteller/proc/start_injection_cooldowns() var/latejoin_injection_cooldown_middle = 0.5*(GLOB.dynamic_first_latejoin_delay_max + GLOB.dynamic_first_latejoin_delay_min) - mode.latejoin_injection_cooldown = round(CLAMP(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), GLOB.dynamic_first_latejoin_delay_min, GLOB.dynamic_first_latejoin_delay_max)) + world.time + mode.latejoin_injection_cooldown = round(clamp(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), GLOB.dynamic_first_latejoin_delay_min, GLOB.dynamic_first_latejoin_delay_max)) + world.time var/midround_injection_cooldown_middle = 0.5*(GLOB.dynamic_first_midround_delay_min + GLOB.dynamic_first_midround_delay_max) - mode.midround_injection_cooldown = round(CLAMP(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_first_midround_delay_min, GLOB.dynamic_first_midround_delay_max)) + world.time - + mode.midround_injection_cooldown = round(clamp(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_first_midround_delay_min, GLOB.dynamic_first_midround_delay_max)) + world.time + var/event_injection_cooldown_middle = 0.5*(GLOB.dynamic_event_delay_max + GLOB.dynamic_event_delay_min) - mode.event_injection_cooldown = (round(CLAMP(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max)) + world.time) + mode.event_injection_cooldown = (round(clamp(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max)) + world.time) /datum/dynamic_storyteller/proc/calculate_threat() var/threat = 0 @@ -99,15 +99,15 @@ Property weights are: /datum/dynamic_storyteller/proc/get_midround_cooldown() var/midround_injection_cooldown_middle = 0.5*(GLOB.dynamic_midround_delay_max + GLOB.dynamic_midround_delay_min) - return round(CLAMP(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_midround_delay_min, GLOB.dynamic_midround_delay_max)) + return round(clamp(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_midround_delay_min, GLOB.dynamic_midround_delay_max)) /datum/dynamic_storyteller/proc/get_event_cooldown() var/event_injection_cooldown_middle = 0.5*(GLOB.dynamic_event_delay_max + GLOB.dynamic_event_delay_min) - return round(CLAMP(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max)) + return round(clamp(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max)) /datum/dynamic_storyteller/proc/get_latejoin_cooldown() var/latejoin_injection_cooldown_middle = 0.5*(GLOB.dynamic_latejoin_delay_max + GLOB.dynamic_latejoin_delay_min) - return round(CLAMP(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), GLOB.dynamic_latejoin_delay_min, GLOB.dynamic_latejoin_delay_max)) + return round(clamp(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), GLOB.dynamic_latejoin_delay_min, GLOB.dynamic_latejoin_delay_max)) /datum/dynamic_storyteller/proc/get_injection_chance(dry_run = FALSE) if(mode.forced_injection) @@ -115,7 +115,7 @@ Property weights are: return 100 var/threat_perc = mode.threat/mode.threat_level - return round(max(0,100*(1-(threat_perc*threat_perc*threat_perc)))) + return clamp(round(100*(1-(threat_perc*threat_perc))**2,1),0,100) /datum/dynamic_storyteller/proc/roundstart_draft() var/list/drafted_rules = list() @@ -144,7 +144,7 @@ Property weights are: if(!(rule.flags & MINOR_RULESET)) // makes the traitor rulesets always possible anyway var/cost_difference = abs(rule.cost-(mode.threat_level-mode.threat)) /* Basically, the closer the cost is to the current threat-level-away-from-threat, the more likely it is to - pick this particular ruleset. + pick this particular ruleset. Let's use a toy example: there's 60 threat level and 10 threat spent. We want to pick a ruleset that's close to that, so we run the below equation, on two rulesets. Ruleset 1 has 30 cost, ruleset 2 has 5 cost. @@ -152,7 +152,7 @@ Property weights are: is 2.26 times as likely to be picked, all other things considered. Of course, we don't want it to GUARANTEE the closest, that's no fun, so it's just a weight. */ - threat_weight = 1-abs(1-LOGISTIC_FUNCTION(2,0.05,cost_difference,0)) + threat_weight = abs(1-abs(1-LOGISTIC_FUNCTION(2,0.05,cost_difference,0))) if (rule.ready()) var/property_weight = 0 for(var/property in property_weights) @@ -209,10 +209,10 @@ Property weights are: weight = 1 event_frequency_lower = 2 MINUTES event_frequency_upper = 10 MINUTES - flags = WAROPS_ALWAYS_ALLOWED - min_players = 40 + flags = WAROPS_ALWAYS_ALLOWED | FORCE_IF_WON + min_players = 30 var/refund_cooldown = 0 - + /datum/dynamic_storyteller/chaotic/do_process() if(refund_cooldown < world.time) mode.create_threat(20) @@ -221,7 +221,7 @@ Property weights are: /datum/dynamic_storyteller/chaotic/get_midround_cooldown() return ..() / 4 - + /datum/dynamic_storyteller/chaotic/get_latejoin_cooldown() return ..() / 4 @@ -232,7 +232,7 @@ Property weights are: curve_centre = 2 curve_width = 1.5 weight = 2 - min_players = 30 + min_players = 20 flags = WAROPS_ALWAYS_ALLOWED | USE_PREV_ROUND_WEIGHTS property_weights = list("valid" = 3, "trust" = 5) @@ -331,7 +331,7 @@ Property weights are: /datum/dynamic_storyteller/story/calculate_threat() var/current_time = (world.time / SSautotransfer.targettime)*180 mode.threat_level = round(mode.initial_threat_level*(sin(current_time)+0.25),0.1) - ..() + return ..() /datum/dynamic_storyteller/classic name = "Classic" @@ -358,7 +358,7 @@ Property weights are: flags = NO_ASSASSIN | FORCE_IF_WON weight = 1 dead_player_weight = 5 - property_weights = list("extended" = 2, "chaos" = -1, "valid" = -1, "story_potential" = 1, "conversion" = -10) + property_weights = list("extended" = 2, "chaos" = -1, "valid" = -1, "conversion" = -10) /datum/dynamic_storyteller/no_antag name = "Extended" diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 5affeba6d6..a7ccada9f2 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -272,7 +272,7 @@ reports += config.mode_reports[config_tag] Count++ for(var/i in Count to rand(3,5)) //Between three and five wrong entries on the list. - var/false_report_type = pickweightAllowZero(report_weights) + var/false_report_type = pickweight(report_weights, 0) report_weights[false_report_type] = 0 //Make it so the same false report won't be selected twice reports += config.mode_reports[false_report_type] @@ -417,7 +417,7 @@ if(player.assigned_role == job) candidates -= player - if(candidates.len < recommended_enemies) + if(candidates.len < recommended_enemies && CONFIG_GET(keyed_list/force_antag_count)[config_tag]) for(var/mob/dead/new_player/player in players) if(player.client && player.ready == PLAYER_READY_TO_PLAY) if(!(role in player.client.prefs.be_special)) // We don't have enough people who want to be antagonist, make a separate list of people who don't want to be one @@ -604,3 +604,7 @@ /// Mode specific admin panel. /datum/game_mode/proc/admin_panel() return + +/// Mode specific info for ghost game_info +/datum/game_mode/proc/ghost_info() + return diff --git a/code/game/gamemodes/gangs/dominator.dm b/code/game/gamemodes/gangs/dominator.dm index 858c10c46c..dca50be5b9 100644 --- a/code/game/gamemodes/gangs/dominator.dm +++ b/code/game/gamemodes/gangs/dominator.dm @@ -229,7 +229,7 @@ if(!was_stranded) priority_announce("All hostile activity within station systems has ceased.","Network Alert") - if(get_security_level() == "delta") + if(NUM2SECLEVEL(GLOB.security_level) == "delta") set_security_level("red") SSshuttle.clearHostileEnvironment(src) diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm index 7857eb8253..afeebb770b 100644 --- a/code/game/gamemodes/meteor/meteor.dm +++ b/code/game/gamemodes/meteor/meteor.dm @@ -25,7 +25,7 @@ if (prob(meteorminutes/2)) wavetype = GLOB.meteors_catastrophic - var/ramp_up_final = CLAMP(round(meteorminutes/rampupdelta), 1, 10) + var/ramp_up_final = clamp(round(meteorminutes/rampupdelta), 1, 10) spawn_meteors(ramp_up_final, wavetype) diff --git a/code/game/gamemodes/objective_sabotage.dm b/code/game/gamemodes/objective_sabotage.dm index d2cdd2e029..f08d84eae2 100644 --- a/code/game/gamemodes/objective_sabotage.dm +++ b/code/game/gamemodes/objective_sabotage.dm @@ -90,7 +90,10 @@ sabotage_type = "cloner" /datum/sabotage_objective/cloner/check_conditions() - return !(locate(/obj/machinery/clonepod) in GLOB.machines) + for(var/obj/machinery/clonepod/cloner in GLOB.machines) + if(is_station_level(cloner.z)) + return FALSE + return TRUE /datum/sabotage_objective/ai_law name = "Upload a hacked law to the AI." diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index 74554ac9f8..9eed18d906 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -70,7 +70,7 @@ /datum/game_mode/revolution/post_setup() var/list/heads = SSjob.get_living_heads() var/list/sec = SSjob.get_living_sec() - var/weighted_score = CLAMP(round(heads.len - ((3 - sec.len) / 3)), 1, max_headrevs) + var/weighted_score = clamp(round(heads.len - ((3 - sec.len) / 3)), 1, max_headrevs) for(var/datum/mind/rev_mind in headrev_candidates) //People with return to lobby may still be in the lobby. Let's pick someone else in that case. if(isnewplayer(rev_mind.current)) diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 6fa7fa30c0..33560dbb8b 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -17,7 +17,6 @@ var/list/L = list() var/list/LL = list() var/hacked = FALSE - var/hackable = TRUE var/disabled = 0 var/shocked = FALSE var/hack_wire @@ -28,11 +27,11 @@ var/prod_coeff = 1 var/datum/design/being_built - var/datum/techweb/stored_research var/list/datum/design/matching_designs var/selected_category var/screen = 1 + var/datum/techweb/specialized/autounlocking/stored_research = /datum/techweb/specialized/autounlocking/autolathe var/list/categories = list( "Tools", "Electronics", @@ -45,9 +44,7 @@ "Dinnerware", "Imported" ) - -/obj/machinery/autolathe/Initialize() - var/static/list/allowed_types = list( + var/list/allowed_materials = list( /datum/material/iron, /datum/material/glass, /datum/material/gold, @@ -63,10 +60,15 @@ /datum/material/adamantine, /datum/material/mythril ) - AddComponent(/datum/component/material_container, allowed_types, _show_on_examine=TRUE, _after_insert=CALLBACK(src, .proc/AfterMaterialInsert)) + + /// Base print speed + var/base_print_speed = 10 + +/obj/machinery/autolathe/Initialize() + AddComponent(/datum/component/material_container, allowed_materials, _show_on_examine=TRUE, _after_insert=CALLBACK(src, .proc/AfterMaterialInsert)) . = ..() wires = new /datum/wires/autolathe(src) - stored_research = new /datum/techweb/specialized/autounlocking/autolathe + stored_research = new stored_research matching_designs = list() /obj/machinery/autolathe/Destroy() @@ -91,7 +93,7 @@ if(AUTOLATHE_SEARCH_MENU) dat = search_win(user) - var/datum/browser/popup = new(user, "autolathe", name, 400, 500) + var/datum/browser/popup = new(user, name, name, 400, 500) popup.set_content(dat) popup.open() @@ -169,7 +171,7 @@ var/multiplier = text2num(href_list["multiplier"]) var/is_stack = ispath(being_built.build_path, /obj/item/stack) - multiplier = CLAMP(multiplier,1,50) + multiplier = clamp(multiplier,1,50) ///////////////// @@ -206,7 +208,7 @@ busy = TRUE use_power(power) icon_state = "autolathe_n" - var/time = is_stack ? 32 : 32*coeff*multiplier + var/time = is_stack ? 10 : base_print_speed * coeff * multiplier addtimer(CALLBACK(src, .proc/make_item, power, materials_used, custom_materials, multiplier, coeff, is_stack), time) else to_chat(usr, "Not enough materials for this operation.") @@ -254,10 +256,12 @@ T += MB.rating*75000 var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) materials.max_amount = T - T=1.2 + var/manips = 0 + var/total_manip_rating = 0 for(var/obj/item/stock_parts/manipulator/M in component_parts) - T -= M.rating*0.2 - prod_coeff = min(1,max(0,T)) // Coeff going 1 -> 0,8 -> 0,6 -> 0,4 + total_manip_rating += M.rating + manips++ + prod_coeff = STANDARD_PART_LEVEL_LATHE_COEFFICIENT(total_manip_rating / (manips? manips : 1)) /obj/machinery/autolathe/examine(mob/user) . += ..() @@ -420,11 +424,11 @@ /obj/machinery/autolathe/proc/adjust_hacked(state) hacked = state - if(!hackable && hacked) - return for(var/id in SSresearch.techweb_designs) var/datum/design/D = SSresearch.techweb_design_by_id(id) - if((D.build_type & AUTOLATHE) && ("hacked" in D.category)) + if(D.build_type & stored_research.design_autounlock_skip_types) + continue + if((D.build_type & stored_research.design_autounlock_buildtypes) && ("hacked" in D.category)) if(hacked) stored_research.add_design(D) else @@ -436,11 +440,35 @@ /obj/machinery/autolathe/secure name = "secured autolathe" - desc = "An autolathe reprogrammed with security protocols to prevent hacking." - hackable = FALSE + desc = "It produces items using metal and glass. This model was reprogrammed without some of the more hazardous designs." circuit = /obj/item/circuitboard/machine/autolathe/secure + stored_research = /datum/techweb/specialized/autounlocking/autolathe/public + base_print_speed = 20 -//Called when the object is constructed by an autolathe -//Has a reference to the autolathe so you can do !!FUN!! things with hacked lathes -/obj/item/proc/autolathe_crafted(obj/machinery/autolathe/A) - return +/obj/machinery/autolathe/toy + name = "autoylathe" + desc = "It produces toys using plastic, metal and glass." + circuit = /obj/item/circuitboard/machine/autolathe/toy + + stored_research = /datum/techweb/specialized/autounlocking/autolathe/toy + categories = list( + "Toys", + "Figurines", + "Pistols", + "Rifles", + "Heavy", + "Melee", + "Armor", + "Adult", + "Misc", + "Imported" + ) + allowed_materials = list( + /datum/material/iron, + /datum/material/glass, + /datum/material/plastic + ) + +/obj/machinery/autolathe/toy/hacked/Initialize() + . = ..() + adjust_hacked(TRUE) diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 235da620d7..669f810c06 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -16,6 +16,9 @@ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF /obj/machinery/button/Initialize(mapload, ndir = 0, built = 0) + if(istext(id) && mapload) + if(copytext(id, 1, 2) == "!") + id = SSmapping.get_obfuscated_id(id) . = ..() if(built) setDir(ndir) @@ -269,6 +272,11 @@ req_access = list() id = 1 +/obj/machinery/button/electrochromatic + name = "window dim control" + desc = "Controls linked electrochromatic windows" + device_type = /obj/item/assembly/control/electrochromatic + /obj/item/wallframe/button name = "button frame" desc = "Used for building buttons." diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index 1766391709..b6af0600e4 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -48,8 +48,7 @@ if(2) // State 2 if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = W - if(C.use(2)) + if(W.use_tool(src, user, 0, 2)) to_chat(user, "You add wires to the assembly.") state = 3 else diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 036e214c7c..d2a3c08f94 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -69,8 +69,8 @@ for(var/obj/item/stock_parts/manipulator/P in component_parts) speed_coeff += (P.rating / 2) speed_coeff = max(1, speed_coeff) - heal_level = CLAMP((efficiency * 10) + 10, MINIMUM_HEAL_LEVEL, 100) - + heal_level = clamp((efficiency * 10) + 10, MINIMUM_HEAL_LEVEL, 100) + //Clonepod /obj/machinery/clonepod/examine(mob/user) diff --git a/code/game/machinery/computer/apc_control.dm b/code/game/machinery/computer/apc_control.dm index 6d22f9d6c8..eae2d5fa5b 100644 --- a/code/game/machinery/computer/apc_control.dm +++ b/code/game/machinery/computer/apc_control.dm @@ -150,7 +150,7 @@ return log_activity("changed greater than charge filter to \"[new_filter]\"") if(new_filter) - new_filter = CLAMP(new_filter, 0, 100) + new_filter = clamp(new_filter, 0, 100) playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) result_filters["Charge Above"] = new_filter if(href_list["below_filter"]) @@ -160,7 +160,7 @@ return log_activity("changed lesser than charge filter to \"[new_filter]\"") if(new_filter) - new_filter = CLAMP(new_filter, 0, 100) + new_filter = clamp(new_filter, 0, 100) playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) result_filters["Charge Below"] = new_filter if(href_list["access_filter"]) diff --git a/code/game/machinery/computer/arcade/minesweeper.dm b/code/game/machinery/computer/arcade/minesweeper.dm index 370f85b4b9..ad325455ad 100644 --- a/code/game/machinery/computer/arcade/minesweeper.dm +++ b/code/game/machinery/computer/arcade/minesweeper.dm @@ -308,12 +308,12 @@ var/new_rows = input(user, "How many rows do you want? (Minimum: 4, Maximum: 30)", "Minesweeper Rows") as null|num if(!new_rows || !user.canUseTopic(src, !hasSiliconAccessInArea(user))) return FALSE - new_rows = CLAMP(new_rows + 1, 4, 30) + new_rows = clamp(new_rows + 1, 4, 30) playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, 0, extrarange = -3, falloff = 10) var/new_columns = input(user, "How many columns do you want? (Minimum: 4, Maximum: 50)", "Minesweeper Squares") as null|num if(!new_columns || !user.canUseTopic(src, !hasSiliconAccessInArea(user))) return FALSE - new_columns = CLAMP(new_columns + 1, 4, 50) + new_columns = clamp(new_columns + 1, 4, 50) playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, 0, extrarange = -3, falloff = 10) var/grid_area = (new_rows - 1) * (new_columns - 1) var/lower_limit = round(grid_area*0.156) @@ -324,7 +324,7 @@ playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, 0, extrarange = -3, falloff = 10) rows = new_rows columns = new_columns - mine_limit = CLAMP(new_mine_limit, lower_limit, upper_limit) + mine_limit = clamp(new_mine_limit, lower_limit, upper_limit) return TRUE /obj/machinery/computer/arcade/minesweeper/proc/make_mines(var/reset_everything) diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm index b891941056..750a660ec0 100644 --- a/code/game/machinery/computer/atmos_control.dm +++ b/code/game/machinery/computer/atmos_control.dm @@ -296,7 +296,7 @@ GLOBAL_LIST_EMPTY(atmos_air_controllers) if("rate") var/target = text2num(params["rate"]) if(!isnull(target)) - target = CLAMP(target, 0, MAX_TRANSFER_RATE) + target = clamp(target, 0, MAX_TRANSFER_RATE) signal.data += list("tag" = input_tag, "set_volume_rate" = target) . = TRUE if("output") @@ -305,7 +305,7 @@ GLOBAL_LIST_EMPTY(atmos_air_controllers) if("pressure") var/target = text2num(params["pressure"]) if(!isnull(target)) - target = CLAMP(target, 0, MAX_OUTPUT_PRESSURE) + target = clamp(target, 0, MAX_OUTPUT_PRESSURE) signal.data += list("tag" = output_tag, "set_internal_pressure" = target) . = TRUE radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 71193ca252..f71a3a8e39 100755 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -111,7 +111,7 @@ to_chat(usr, "Authorization confirmed. Modifying security level.") playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) //Only notify people if an actual change happened - var/security_level = get_security_level() + var/security_level = NUM2SECLEVEL(GLOB.security_level) log_game("[key_name(usr)] has changed the security level to [security_level] with [src] at [AREACOORD(usr)].") message_admins("[ADMIN_LOOKUPFLW(usr)] has changed the security level to [security_level] with [src] at [AREACOORD(usr)].") deadchat_broadcast("[usr.real_name] has changed the security level to [security_level] with [src] at [get_area_name(usr, TRUE)].", usr) @@ -400,7 +400,7 @@ security_level_cd = world.time + 15 SECONDS if(GLOB.security_level != old_level) //Only notify people if an actual change happened - var/security_level = get_security_level() + var/security_level = NUM2SECLEVEL(GLOB.security_level) log_game("[key_name(usr)] has changed the security level to [security_level] from [src] at [AREACOORD(usr)].") message_admins("[ADMIN_LOOKUPFLW(usr)] has changed the security level to [security_level] from [src] at [AREACOORD(usr)].") deadchat_broadcast("[usr.real_name] has changed the security level to [security_level] from [src] at [get_area_name(usr, TRUE)].", usr) @@ -551,7 +551,7 @@ dat += " Biohazard \]

    " playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) if(STATE_ALERT_LEVEL) - dat += "Current alert level: [get_security_level()]
    " + dat += "Current alert level: [NUM2SECLEVEL(GLOB.security_level)]
    " if(GLOB.security_level == SEC_LEVEL_DELTA) dat += "The self-destruct mechanism is active. Find a way to deactivate the mechanism to lower the alert level or evacuate." else @@ -559,8 +559,8 @@ dat += "Blue
    " dat += "Green" if(STATE_CONFIRM_LEVEL) - dat += "Current alert level: [get_security_level()]
    " - dat += "Confirm the change to: [num2seclevel(tmp_alertlevel)]
    " + dat += "Current alert level: [NUM2SECLEVEL(GLOB.security_level)]
    " + dat += "Confirm the change to: [NUM2SECLEVEL(tmp_alertlevel)]
    " dat += "Swipe ID to confirm change.
    " if(STATE_TOGGLE_EMERGENCY) playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) @@ -692,7 +692,7 @@ dat += " Biohazard \]

    " if(STATE_ALERT_LEVEL) - dat += "Current alert level: [get_security_level()]
    " + dat += "Current alert level: [NUM2SECLEVEL(GLOB.security_level)]
    " if(GLOB.security_level == SEC_LEVEL_DELTA) dat += "The self-destruct mechanism is active. Find a way to deactivate the mechanism to lower the alert level or evacuate." else diff --git a/code/game/machinery/computer/prisoner/gulag_teleporter.dm b/code/game/machinery/computer/prisoner/gulag_teleporter.dm index 9055ff62ec..dd925fbe3b 100644 --- a/code/game/machinery/computer/prisoner/gulag_teleporter.dm +++ b/code/game/machinery/computer/prisoner/gulag_teleporter.dm @@ -97,7 +97,7 @@ return if(!new_goal) new_goal = default_goal - contained_id.goal = CLAMP(new_goal, 0, 1000) //maximum 1000 points + contained_id.goal = clamp(new_goal, 0, 1000) //maximum 1000 points return TRUE if("toggle_open") if(teleporter.locked) diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index b007bc0161..5ee8223625 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -83,7 +83,6 @@ if(istype(P, /obj/item/stack/cable_coil)) if(!P.tool_start_check(user, amount=5)) return - to_chat(user, "You start to add cables to the frame...") if(P.use_tool(src, user, 20, volume=50, amount=5)) to_chat(user, "You add cables to the frame.") diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 118145ed88..07f95c17ff 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -405,7 +405,7 @@ // Ghost and delete the mob. if(!mob_occupant.get_ghost(1)) - mob_occupant.ghostize(FALSE, penalize = TRUE) + mob_occupant.ghostize(FALSE, penalize = TRUE, voluntary = TRUE) QDEL_NULL(occupant) for(var/I in cryo_items) //only "CRYO_DESTROY_LATER" atoms are left) diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 686b62d1c3..67113fcf78 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -33,7 +33,7 @@ to_chat(user, "You begin repairing [src]...") if(I.use_tool(src, user, 40, volume=40)) - obj_integrity = CLAMP(obj_integrity + 20, 0, max_integrity) + obj_integrity = clamp(obj_integrity + 20, 0, max_integrity) else return ..() diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index 05f4c03eb0..fe01438998 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -135,7 +135,7 @@ . /= 10 /obj/machinery/door_timer/proc/set_timer(value) - var/new_time = CLAMP(value,0,MAX_TIMER) + var/new_time = clamp(value,0,MAX_TIMER) . = new_time == timer_duration //return 1 on no change timer_duration = new_time diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 1b83bb4b96..28b9796bb6 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -400,12 +400,11 @@ "You begin adding wires to [src]...") playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1) if(do_after(user, 60, target = src)) - if(constructionStep != CONSTRUCTION_GUTTED || B.get_amount() < 5 || !B) + if(constructionStep != CONSTRUCTION_GUTTED || !B.use_tool(src, user, 0, 5)) return user.visible_message("[user] adds wires to [src].", \ "You wire [src].") playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1) - B.use(5) constructionStep = CONSTRUCTION_WIRES_EXPOSED update_icon() return diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index f4f308c490..4a0042e1da 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -205,11 +205,9 @@ return if(1) if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/coil = W - if(coil.get_amount() < 5) + if(!W.use_tool(src, user, 0, 5)) to_chat(user, "You need more cable for this!") else - coil.use(5) buildstage = 2 to_chat(user, "You wire \the [src].") update_icon() diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 067f10fa0f..3a79ff3c82 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -396,7 +396,6 @@ GLOBAL_LIST_EMPTY(network_holopads) Hologram.add_atom_colour("#77abff", FIXED_COLOUR_PRIORITY) Hologram.Impersonation = user - Hologram.copy_known_languages_from(user,replace = TRUE) Hologram.mouse_opacity = MOUSE_OPACITY_TRANSPARENT//So you can't click on it. Hologram.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them. Hologram.setAnchored(TRUE)//So space wind cannot drag it. @@ -555,9 +554,8 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ Hologram.alpha = 170 Hologram.add_atom_colour("#77abff", FIXED_COLOUR_PRIORITY) Hologram.dir = SOUTH //for now - Hologram.grant_all_languages(omnitongue=TRUE) var/datum/language_holder/holder = Hologram.get_language_holder() - holder.selected_default_language = record.language + holder.selected_language = record.language Hologram.mouse_opacity = MOUSE_OPACITY_TRANSPARENT//So you can't click on it. Hologram.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them. Hologram.setAnchored(TRUE)//So space wind cannot drag it. @@ -649,7 +647,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ return if(HOLORECORD_LANGUAGE) var/datum/language_holder/holder = replay_holo.get_language_holder() - holder.selected_default_language = entry[2] + holder.selected_language = entry[2] if(HOLORECORD_PRESET) var/preset_type = entry[2] var/datum/preset_holoimage/H = new preset_type @@ -672,6 +670,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ updateDialog() /obj/effect/overlay/holo_pad_hologram + initial_language_holder = /datum/language_holder/universal var/mob/living/Impersonation var/datum/holocall/HC diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index d3247253c6..63ef40e045 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -68,9 +68,9 @@ if(teleporting) return if(!isnull(x)) - x_offset = CLAMP(x, -range, range) + x_offset = clamp(x, -range, range) if(!isnull(y)) - y_offset = CLAMP(y, -range, range) + y_offset = clamp(y, -range, range) /obj/machinery/launchpad/proc/doteleport(mob/user, sending) if(teleporting) diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index b0e26ce129..c144616c05 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -55,9 +55,9 @@ new /obj/item/pipe_meter(loc) wait = world.time + 15 if(href_list["layer_up"]) - piping_layer = CLAMP(++piping_layer, PIPING_LAYER_MIN, PIPING_LAYER_MAX) + piping_layer = clamp(++piping_layer, PIPING_LAYER_MIN, PIPING_LAYER_MAX) if(href_list["layer_down"]) - piping_layer = CLAMP(--piping_layer, PIPING_LAYER_MIN, PIPING_LAYER_MAX) + piping_layer = clamp(--piping_layer, PIPING_LAYER_MIN, PIPING_LAYER_MAX) return /obj/machinery/pipedispenser/attackby(obj/item/W, mob/user, params) diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 24fd956677..8545e6f35c 100755 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -53,6 +53,11 @@ using_power = FALSE update_icon() +/obj/machinery/recharger/Exited(atom/movable/M, atom/newloc) + . = ..() + if(charging == M) + setCharging() + /obj/machinery/recharger/attackby(obj/item/G, mob/user, params) if(istype(G, /obj/item/wrench)) if(charging) @@ -109,15 +114,12 @@ add_fingerprint(user) if(charging) charging.update_icon() - charging.forceMove(drop_location()) user.put_in_hands(charging) - setCharging(null) /obj/machinery/recharger/attack_tk(mob/user) if(charging) charging.update_icon() charging.forceMove(drop_location()) - setCharging(null) /obj/machinery/recharger/process() if(stat & (NOPOWER|BROKEN) || !anchored) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index c152e302fe..6793d361b5 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -160,10 +160,7 @@ to_chat(user, "You need one length of cable to repair [src]!") return to_chat(user, "You begin to replace the wires...") - if(do_after(user, 30, target = src)) - if(coil.get_amount() < 1) - return - coil.use(1) + if(W.use_tool(src, user, 30, 1)) obj_integrity = max_integrity stat &= ~BROKEN to_chat(user, "You repair \the [src].") @@ -270,7 +267,7 @@ use_stored_power(50) /obj/machinery/shieldwallgen/proc/use_stored_power(amount) - power = CLAMP(power - amount, 0, maximum_stored_power) + power = clamp(power - amount, 0, maximum_stored_power) update_activity() /obj/machinery/shieldwallgen/proc/update_activity() diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index af8f1af9f9..60d9a7376c 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -127,7 +127,7 @@ settableTemperatureRange = cap * 30 efficiency = (cap + 1) * 10000 - targetTemperature = CLAMP(targetTemperature, + targetTemperature = clamp(targetTemperature, max(settableTemperatureMedian - settableTemperatureRange, TCMB), settableTemperatureMedian + settableTemperatureRange) @@ -230,7 +230,7 @@ target= text2num(target) + T0C . = TRUE if(.) - targetTemperature = CLAMP(round(target), + targetTemperature = clamp(round(target), max(settableTemperatureMedian - settableTemperatureRange, TCMB), settableTemperatureMedian + settableTemperatureRange) if("eject") diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index b8d4ef26e8..50984c43b8 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -195,7 +195,7 @@ /obj/machinery/syndicatebomb/proc/settings(mob/user) var/new_timer = input(user, "Please set the timer.", "Timer", "[timer_set]") as num if(in_range(src, user) && isliving(user)) //No running off and setting bombs from across the station - timer_set = CLAMP(new_timer, minimum_timer, maximum_timer) + timer_set = clamp(new_timer, minimum_timer, maximum_timer) loc.visible_message("[icon2html(src, viewers(src))] timer set for [timer_set] seconds.") if(alert(user,"Would you like to start the countdown now?",,"Yes","No") == "Yes" && in_range(src, user) && isliving(user)) if(defused || active) diff --git a/code/game/machinery/telecomms/broadcasting.dm b/code/game/machinery/telecomms/broadcasting.dm index 4e3e11d1e2..a9b6736f05 100644 --- a/code/game/machinery/telecomms/broadcasting.dm +++ b/code/game/machinery/telecomms/broadcasting.dm @@ -100,7 +100,7 @@ obj/source, // the originating radio frequency, // the frequency the signal is taking place on atom/movable/virtualspeaker/speaker, // representation of the method's speaker - datum/language/language, // the langauge of the message + datum/language/language, // the language of the message message, // the text content of the message spans // the list of spans applied to the message ) diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 985c1166b7..16ae158ea7 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -70,7 +70,7 @@ com.target = null visible_message("Cannot authenticate locked on coordinates. Please reinstate coordinate matrix.") return - if (ismovableatom(M)) + if (ismovable(M)) if(do_teleport(M, com.target, channel = TELEPORT_CHANNEL_BLUESPACE)) use_power(5000) diff --git a/code/game/machinery/toylathe.dm b/code/game/machinery/toylathe.dm deleted file mode 100644 index c679f3f983..0000000000 --- a/code/game/machinery/toylathe.dm +++ /dev/null @@ -1,415 +0,0 @@ -#define AUTOYLATHE_MAIN_MENU 1 -#define AUTOYLATHE_CATEGORY_MENU 2 -#define AUTOYLATHE_SEARCH_MENU 3 - -/obj/machinery/autoylathe - name = "autoylathe" - desc = "It produces toys using plastic, metal and glass." - icon_state = "autolathe" - density = TRUE - use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 100 - circuit = /obj/item/circuitboard/machine/autoylathe - layer = BELOW_OBJ_LAYER - - var/operating = FALSE - var/list/L = list() - var/list/LL = list() - var/hacked = FALSE - var/disabled = 0 - var/shocked = FALSE - var/hack_wire - var/disable_wire - var/shock_wire - - var/busy = FALSE - var/prod_coeff = 1 - - var/datum/design/being_built - var/datum/techweb/stored_research - var/list/datum/design/matching_designs - var/selected_category - var/screen = 1 - - var/list/categories = list( - "Toys", - "Figurines", - "Pistols", - "Rifles", - "Heavy", - "Melee", - "Armor", - "Adult", - "Misc", - "Imported" - ) - -/obj/machinery/autoylathe/Initialize() - var/static/list/allowed_materials = list( - /datum/material/iron, - /datum/material/glass, - /datum/material/plastic - ) - AddComponent(/datum/component/material_container, allowed_materials, 0, TRUE, null, null, CALLBACK(src, .proc/AfterMaterialInsert)) - . = ..() - - wires = new /datum/wires/autoylathe(src) - stored_research = new /datum/techweb/specialized/autounlocking/autoylathe - matching_designs = list() - -/obj/machinery/autoylathe/Destroy() - QDEL_NULL(wires) - return ..() - -/obj/machinery/autoylathe/ui_interact(mob/user) - . = ..() - if(!is_operational()) - return - - if(shocked && !(stat & NOPOWER)) - shock(user,50) - - var/dat - - switch(screen) - if(AUTOYLATHE_MAIN_MENU) - dat = main_win(user) - if(AUTOYLATHE_CATEGORY_MENU) - dat = category_win(user,selected_category) - if(AUTOYLATHE_SEARCH_MENU) - dat = search_win(user) - - var/datum/browser/popup = new(user, "Autoylathe", name, 400, 500) - popup.set_content(dat) - popup.open() - -/obj/machinery/autoylathe/on_deconstruction() - var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - materials.retrieve_all() - -/obj/machinery/autoylathe/attackby(obj/item/O, mob/user, params) - if (busy) - to_chat(user, "The autoylathe is busy. Please wait for completion of previous operation.") - return TRUE - - if(default_deconstruction_screwdriver(user, "autolathe_t", "autolathe", O)) - updateUsrDialog() - return TRUE - - if(default_deconstruction_crowbar(O)) - return TRUE - - if(panel_open && is_wire_tool(O)) - wires.interact(user) - return TRUE - - if(user.a_intent == INTENT_HARM) //so we can hit the machine - return ..() - - if(stat) - return TRUE - - if(istype(O, /obj/item/disk/design_disk)) - user.visible_message("[user] begins to load \the [O] in \the [src]...", - "You begin to load a design from \the [O]...", - "You hear the chatter of a floppy drive.") - busy = TRUE - var/obj/item/disk/design_disk/D = O - if(do_after(user, 14.4, target = src)) - for(var/B in D.blueprints) - if(B) - stored_research.add_design(B) - busy = FALSE - return TRUE - - return ..() - -/obj/machinery/autoylathe/proc/AfterMaterialInsert(obj/item/item_inserted, id_inserted, amount_inserted) - if(item_inserted.custom_materials?.len && item_inserted.custom_materials[SSmaterials.GetMaterialRef(/datum/material/glass)]) - flick("autolathe_r",src)//plays glass insertion animation by default otherwise - else - flick("autolathe_o",src)//plays metal insertion animation - - use_power(min(1000, amount_inserted / 100)) - updateUsrDialog() - -/obj/machinery/autoylathe/Topic(href, href_list) - if(..()) - return - if (!busy) - if(href_list["menu"]) - screen = text2num(href_list["menu"]) - updateUsrDialog() - - if(href_list["category"]) - selected_category = href_list["category"] - updateUsrDialog() - - if(href_list["make"]) - - ///////////////// - //href protection - being_built = stored_research.isDesignResearchedID(href_list["make"]) - if(!being_built) - return - - var/multiplier = text2num(href_list["multiplier"]) - var/is_stack = ispath(being_built.build_path, /obj/item/stack) - multiplier = CLAMP(multiplier,1,50) - - ///////////////// - - var/coeff = (is_stack ? 1 : prod_coeff) //stacks are unaffected by production coefficient - var/total_amount = 0 - for(var/MAT in being_built.materials) - total_amount += being_built.materials[MAT] - var/power = max(2000, (total_amount)*multiplier/5) //Change this to use all materials - - var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - - var/list/materials_used = list() - var/list/custom_materials = list() //These will apply their material effect, This should usually only be one. - - for(var/MAT in being_built.materials) - var/datum/material/used_material = MAT - var/amount_needed = being_built.materials[MAT] * coeff * multiplier - if(istext(used_material)) //This means its a category - var/list/list_to_show = list() - for(var/i in SSmaterials.materials_by_category[used_material]) - if(materials.materials[i] > 0) - list_to_show += i - - used_material = input("Choose [used_material]", "Custom Material") as null|anything in list_to_show - if(!used_material) - return //Didn't pick any material, so you can't build shit either. - custom_materials[used_material] += amount_needed - - materials_used[used_material] = amount_needed - - if(materials.has_materials(materials_used)) - busy = TRUE - use_power(power) - icon_state = "autolathe_n" - var/time = is_stack ? 32 : 32*coeff*multiplier - addtimer(CALLBACK(src, .proc/make_item, power, materials_used, custom_materials, multiplier, coeff, is_stack), time) - else - to_chat(usr, "Not enough materials for this operation.") - - if(href_list["search"]) - matching_designs.Cut() - - for(var/v in stored_research.researched_designs) - var/datum/design/D = SSresearch.techweb_design_by_id(v) - if(findtext(D.name,href_list["to_search"])) - matching_designs.Add(D) - updateUsrDialog() - else - to_chat(usr, "The autoylathe is busy. Please wait for completion of previous operation.") - - updateUsrDialog() - - return - -/obj/machinery/autoylathe/proc/make_item(power, list/materials_used, list/picked_materials, multiplier, coeff, is_stack) - var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - var/atom/A = drop_location() - use_power(power) - materials.use_materials(materials_used) - - if(is_stack) - var/obj/item/stack/N = new being_built.build_path(A, multiplier) - N.update_icon() - N.autoylathe_crafted(src) - else - for(var/i=1, i<=multiplier, i++) - var/obj/item/new_item = new being_built.build_path(A) - new_item.autoylathe_crafted(src) - if(length(picked_materials)) - new_item.set_custom_materials(picked_materials, 1 / multiplier) //Ensure we get the non multiplied amount - icon_state = "autolathe" - busy = FALSE - updateDialog() - -/obj/machinery/autoylathe/RefreshParts() - var/T = 0 - for(var/obj/item/stock_parts/matter_bin/MB in component_parts) - T += MB.rating*75000 - var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - materials.max_amount = T - T=1.2 - for(var/obj/item/stock_parts/manipulator/M in component_parts) - T -= M.rating*0.2 - prod_coeff = CLAMP(T,1,0) // Coeff going 1 -> 0,8 -> 0,6 -> 0,4 - -/obj/machinery/autoylathe/proc/main_win(mob/user) - var/dat = "

    Autoylathe Menu:


    " - dat += materials_printout() - - dat += "
    \ - \ - \ - \ - \ - \ -

    " - - var/line_length = 1 - dat += "" - - for(var/C in categories) - if(line_length > 2) - dat += "" - line_length = 1 - - dat += "" - line_length++ - - dat += "
    [C]
    " - return dat - -/obj/machinery/autoylathe/proc/category_win(mob/user,selected_category) - var/dat = "Return to main menu" - dat += "

    Browsing [selected_category]:


    " - dat += materials_printout() - - for(var/v in stored_research.researched_designs) - var/datum/design/D = SSresearch.techweb_design_by_id(v) - if(!(selected_category in D.category)) - continue - - if(disabled || !can_build(D)) - dat += "[D.name]" - else - dat += "[D.name]" - - if(ispath(D.build_path, /obj/item/stack)) - var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - var/max_multiplier - for(var/datum/material/mat in D.materials) - max_multiplier = min(D.maxstack, round(materials.get_material_amount(mat)/D.materials[mat])) - if (max_multiplier>10 && !disabled) - dat += " x10" - if (max_multiplier>25 && !disabled) - dat += " x25" - if(max_multiplier > 0 && !disabled) - dat += " x[max_multiplier]" - else - if(!disabled && can_build(D, 5)) - dat += " x5" - if(!disabled && can_build(D, 10)) - dat += " x10" - - dat += "[get_design_cost(D)]
    " - - dat += "
    " - return dat - -/obj/machinery/autoylathe/proc/search_win(mob/user) - var/dat = "Return to main menu" - dat += "

    Search results:


    " - dat += materials_printout() - - for(var/v in matching_designs) - var/datum/design/D = v - if(disabled || !can_build(D)) - dat += "[D.name]" - else - dat += "[D.name]" - - if(ispath(D.build_path, /obj/item/stack)) - var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - var/max_multiplier - for(var/datum/material/mat in D.materials) - max_multiplier = min(D.maxstack, round(materials.get_material_amount(mat)/D.materials[mat])) - if (max_multiplier>10 && !disabled) - dat += " x10" - if (max_multiplier>25 && !disabled) - dat += " x25" - if(max_multiplier > 0 && !disabled) - dat += " x[max_multiplier]" - - dat += "[get_design_cost(D)]
    " - - dat += "
    " - return dat - -/obj/machinery/autoylathe/proc/materials_printout() - var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - var/dat = "Total amount: [materials.total_amount] / [materials.max_amount] cm3
    " - for(var/mat_id in materials.materials) - var/datum/material/M = mat_id - var/mineral_amount = materials.materials[mat_id] - if(mineral_amount > 0) - dat += "[M.name] amount: [mineral_amount] cm3
    " - return dat - -/obj/machinery/autoylathe/proc/can_build(datum/design/D, amount = 1) - if(D.make_reagents.len) - return FALSE - - var/coeff = (ispath(D.build_path, /obj/item/stack) ? 1 : prod_coeff) - - var/list/required_materials = list() - - for(var/i in D.materials) - required_materials[i] = D.materials[i] * coeff * amount - - var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - - return materials.has_materials(required_materials) - -/obj/machinery/autoylathe/proc/get_design_cost(datum/design/D) - var/coeff = (ispath(D.build_path, /obj/item/stack) ? 1 : prod_coeff) - var/dat - for(var/i in D.materials) - if(istext(i)) //Category handling - dat += "[D.materials[i] * coeff] [i]" - else - var/datum/material/M = i - dat += "[D.materials[i] * coeff] [M.name] " - return dat - -/obj/machinery/autoylathe/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/autoylathe/proc/shock(mob/user, prb) - if(stat & (BROKEN|NOPOWER)) // unpowered, no shock - return FALSE - if(!prob(prb)) - return FALSE - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(5, 1, src) - s.start() - if (electrocute_mob(user, get_area(src), src, 0.7, TRUE)) - return TRUE - else - return FALSE - -/obj/machinery/autoylathe/proc/adjust_hacked(state) - hacked = state - for(var/id in SSresearch.techweb_designs) - var/datum/design/D = SSresearch.techweb_designs[id] - if((D.build_type & AUTOYLATHE) && ("hacked" in D.category)) - if(hacked) - stored_research.add_design(D) - else - stored_research.remove_design(D) - -/obj/machinery/autoylathe/hacked/Initialize() - . = ..() - adjust_hacked(TRUE) - -//Called when the object is constructed by an autoylathe -//Has a reference to the autoylathe so you can do !!FUN!! things with hacked lathes -/obj/item/proc/autoylathe_crafted(obj/machinery/autoylathe/A) - return diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index 7ff8696084..4a4d58ea73 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -530,7 +530,6 @@ equip_cooldown = 0 var/obj/item/gun/medbeam/mech/medigun custom_materials = list(/datum/material/iron = 15000, /datum/material/glass = 8000, /datum/material/plasma = 3000, /datum/material/gold = 8000, /datum/material/diamond = 2000) - material_flags = MATERIAL_NO_EFFECTS /obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam/Initialize() . = ..() diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index f1fa5ddd20..65aa001fe1 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -484,7 +484,7 @@ /obj/item/punching_glove/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) if(!..()) - if(ismovableatom(hit_atom)) + if(ismovable(hit_atom)) var/atom/movable/AM = hit_atom AM.safe_throw_at(get_edge_target_turf(AM,get_dir(src, AM)), 7, 2) qdel(src) diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 9acc8921b9..93228c7fee 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -19,6 +19,7 @@ var/processing_queue = 0 var/screen = "main" var/temp + var/offstation_security_levels = TRUE var/list/part_sets = list( "Cyborg", "Ripley", @@ -72,6 +73,8 @@ for(var/obj/item/stock_parts/manipulator/Ml in component_parts) T += Ml.rating time_coeff = round(initial(time_coeff) - (initial(time_coeff)*(T))/5,0.01) + var/obj/item/circuitboard/machine/mechfab/C = circuit + offstation_security_levels = C.offstation_security_levels /obj/machinery/mecha_part_fabricator/examine(mob/user) . = ..() @@ -106,13 +109,27 @@ if(!(set_name in D.category)) continue output += "
    [output_part_info(D)]
    \[" - if(check_resources(D)) + if(check_clearance(D) && check_resources(D)) output += "Build | " output += "Add to queue\]\[?\]
    " return output +/obj/machinery/mecha_part_fabricator/proc/check_clearance(datum/design/D) + if(!(obj_flags & EMAGGED) && (offstation_security_levels || is_station_level(z)) && !ISINRANGE(GLOB.security_level, D.min_security_level, D.max_security_level)) + return FALSE + return TRUE + /obj/machinery/mecha_part_fabricator/proc/output_part_info(datum/design/D) - var/output = "[initial(D.name)] (Cost: [output_part_cost(D)]) [get_construction_time_w_coeff(D)/10]sec" + var/clearance = !(obj_flags & EMAGGED) && (offstation_security_levels || is_station_level(z)) + var/sec_text = "" + if(clearance && (D.min_security_level > SEC_LEVEL_GREEN || D.max_security_level < SEC_LEVEL_DELTA)) + sec_text = " (Allowed security levels: " + for(var/n in D.min_security_level to D.max_security_level) + sec_text += NUM2SECLEVEL(n) + if(n + 1 <= D.max_security_level) + sec_text += ", " + sec_text += ") " + var/output = "[initial(D.name)] (Cost: [output_part_cost(D)]) [sec_text][get_construction_time_w_coeff(D)/10]sec" return output /obj/machinery/mecha_part_fabricator/proc/output_part_cost(datum/design/D) @@ -171,7 +188,6 @@ var/location = get_step(src,(dir)) var/obj/item/I = new D.build_path(location) - I.material_flags |= MATERIAL_NO_EFFECTS //Find a better way to do this. I.set_custom_materials(res_coef) say("\The [I] is complete.") being_built = null @@ -216,6 +232,11 @@ while(D) if(stat&(NOPOWER|BROKEN)) return FALSE + if(!check_clearance(D)) + say("Security level not met. Queue processing stopped.") + temp = {"Security level not met to build next part.
    + Try again | Return"} + return FALSE if(!check_resources(D)) say("Not enough resources. Queue processing stopped.") temp = {"Not enough resources to build next part.
    @@ -236,7 +257,7 @@ for(var/datum/design/D in queue) i++ var/obj/part = D.build_path - output += "" + output += "" output += initial(part.name) + " - " output += "[i>1?"
    ":null] " output += "[i↓":null] " @@ -440,3 +461,7 @@ return FALSE return TRUE + +/obj/machinery/mecha_part_fabricator/offstation + offstation_security_levels = FALSE + circuit = /obj/item/circuitboard/machine/mechfab/offstation diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index de1c035000..19b6d0a9bd 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -3,6 +3,46 @@ //////////////////////////////// /datum/component/construction/mecha var/base_icon + var/looky_helpy = TRUE + +/datum/component/construction/mecha/examine(mob/user) + . = ..() + if(looky_helpy) + switch(steps[index]["key"]) + if(TOOL_WRENCH) + . += "The mech could be wrenched into place." + if(TOOL_SCREWDRIVER) + . += "The mech could be screwed into place." + if(TOOL_WIRECUTTER) + . += "The mech wires could be trimmed into place." + if(/obj/item/stack/cable_coil) + . += "The mech could use some wiring." + if(/obj/item/circuitboard) + . += "The mech could use a type ofcircuitboard." + if(/obj/item/stock_parts/scanning_module) + . += "The mech could use a scanning stock part." + if(/obj/item/stock_parts/capacitor) + . += "The mech could use a power based stock part." + if(/obj/item/stock_parts/cell) + . += "The mech could use a power source." + if(/obj/item/stack/sheet/metal) + . += "The mech could use some sheets of metal." + if(/obj/item/stack/sheet/plasteel) + . += "The mech could use some sheets of strong steel." + if(/obj/item/bikehorn) + . += "HONK IT!." + if(/obj/item/clothing/mask/gas/clown_hat) + . += "GIVE IT CLOWN MAKEUP HONK!." + if(/obj/item/clothing/shoes/clown_shoes) + . += "GIVE IT GOOFY SHOES HONK HONK!." + if(/obj/item/mecha_parts/part) + . += "The mech could use a mech part." + if(/obj/item/stack/ore/bluespace_crystal) + . += "The mech could use a crystal of sorts." + if(/obj/item/assembly/signaler/anomaly) + . += "The mech could use a anomaly of sorts." + else + return /datum/component/construction/mecha/spawn_result() if(!result) diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm index 581283d339..53768fe9a9 100644 --- a/code/game/mecha/mecha_defense.dm +++ b/code/game/mecha/mecha_defense.dm @@ -220,8 +220,7 @@ return else if(istype(W, /obj/item/stack/cable_coil)) if(state == 3 && (internal_damage & MECHA_INT_SHORT_CIRCUIT)) - var/obj/item/stack/cable_coil/CC = W - if(CC.use(2)) + if(W.use_tool(src, user, 0, 2)) clearInternalDamage(MECHA_INT_SHORT_CIRCUIT) to_chat(user, "You replace the fused wires.") else diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 0e14af75a9..bacb8c6669 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -55,8 +55,12 @@ M.buckling = null return FALSE - if(M.pulledby && buckle_prevents_pull) - M.pulledby.stop_pulling() + if(M.pulledby) + if(buckle_prevents_pull) + M.pulledby.stop_pulling() + else if(isliving(M.pulledby)) + var/mob/living/L = M.pulledby + L.reset_pull_offsets(M, TRUE) if(!check_loc && M.loc != loc) M.forceMove(loc) @@ -137,4 +141,7 @@ "You unbuckle yourself from [src].",\ "You hear metal clanking.") add_fingerprint(user) + if(isliving(M.pulledby)) + var/mob/living/L = M.pulledby + L.set_pull_offsets(M, L.grab_state) return M diff --git a/code/game/objects/effects/alien_acid.dm b/code/game/objects/effects/alien_acid.dm index 3b5a029df4..5276062121 100644 --- a/code/game/objects/effects/alien_acid.dm +++ b/code/game/objects/effects/alien_acid.dm @@ -17,7 +17,7 @@ target = get_turf(src) if(acid_amt) - acid_level = min( (CLAMP(round(acid_amt, 1), 0, INFINITY)) *acid_pwr, 12000) //capped so the acid effect doesn't last a half hour on the floor. + acid_level = min( (clamp(round(acid_amt, 1), 0, INFINITY)) *acid_pwr, 12000) //capped so the acid effect doesn't last a half hour on the floor. //handle APCs and newscasters and stuff nicely pixel_x = target.pixel_x + rand(-4,4) diff --git a/code/game/objects/effects/effects.dm b/code/game/objects/effects/effects.dm index 8f0ce83c82..979b811bc5 100644 --- a/code/game/objects/effects/effects.dm +++ b/code/game/objects/effects/effects.dm @@ -7,7 +7,7 @@ move_resist = INFINITY obj_flags = 0 - vis_flags = NONE + vis_flags = VIS_INHERIT_PLANE /obj/effect/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) return diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 04f14692e3..992e9c84a7 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -313,6 +313,11 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) name = "carpspawn" icon_state = "carp_spawn" +// lone op (optional) +/obj/effect/landmark/loneopspawn + name = "loneop+ninjaspawn" + icon_state = "snukeop_spawn" + // observer-start. /obj/effect/landmark/observer_start name = "Observer-Start" @@ -483,7 +488,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) if(!SSmapping.station_room_templates[t]) log_world("Station room spawner placed at ([T.x], [T.y], [T.z]) has invalid ruin name of \"[t]\" in its list") templates -= t - template_name = pickweightAllowZero(templates) + template_name = pickweight(templates, 0) if(!template_name) GLOB.stationroom_landmarks -= src qdel(src) @@ -492,7 +497,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) if(!template) return FALSE testing("Room \"[template_name]\" placed at ([T.x], [T.y], [T.z])") - template.load(T, centered = FALSE) + template.load(T, centered = FALSE, orientation = dir, rotate_placement_to_orientation = TRUE) template.loaded++ GLOB.stationroom_landmarks -= src qdel(src) @@ -504,7 +509,6 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) templates = list("Engine SM" = 3, "Engine Singulo" = 3, "Engine Tesla" = 3) icon = 'icons/rooms/box/engine.dmi' - /obj/effect/landmark/stationroom/box/engine/New() . = ..() templates = CONFIG_GET(keyed_list/box_random_engine) @@ -513,3 +517,9 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) /obj/effect/landmark/stationroom/lavaland/station templates = list("Public Mining Base" = 3) icon = 'icons/rooms/Lavaland/Mining.dmi' + +// handled in portals.dm, id connected to one-way portal +/obj/effect/landmark/portal_exit + name = "portal exit" + icon_state = "portal_exit" + var/id diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index 2fb068a29b..1fe5e46e25 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -170,7 +170,7 @@ if(!victim.client || !istype(victim)) return to_chat(victim, "You feel fast!") - victim.add_movespeed_modifier(MOVESPEED_ID_YELLOW_ORB, update=TRUE, priority=100, multiplicative_slowdown=-2, blacklisted_movetypes=(FLYING|FLOATING)) + victim.add_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) sleep(duration) - victim.remove_movespeed_modifier(MOVESPEED_ID_YELLOW_ORB) + victim.remove_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) to_chat(victim, "You slow down.") diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index 596e428c7f..b310119827 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -49,5 +49,6 @@ /obj/effect/overlay/vis mouse_opacity = MOUSE_OPACITY_TRANSPARENT anchored = TRUE + vis_flags = NONE var/unused = 0 //When detected to be unused it gets set to world.time, after a while it gets removed var/cache_expiration = 2 MINUTES // overlays which go unused for 2 minutes get cleaned up diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index 04e194f6c3..504b931685 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -29,6 +29,7 @@ var/allow_anchored = FALSE var/innate_accuracy_penalty = 0 var/last_effect = 0 + var/force_teleport = FALSE /obj/effect/portal/anom name = "wormhole" @@ -162,7 +163,7 @@ no_effect = TRUE else last_effect = world.time - if(do_teleport(M, real_target, innate_accuracy_penalty, no_effects = no_effect, channel = teleport_channel)) + if(do_teleport(M, real_target, innate_accuracy_penalty, no_effects = no_effect, channel = teleport_channel, forced = force_teleport)) if(istype(M, /obj/item/projectile)) var/obj/item/projectile/P = M P.ignore_source_check = TRUE @@ -183,3 +184,47 @@ else real_target = get_turf(linked) return real_target + +/obj/effect/portal/permanent + name = "permanent portal" + desc = "An unwavering portal that will never fade." + hardlinked = FALSE // dont qdel my portal nerd + force_teleport = TRUE // force teleports because they're a mapmaker tool + var/id // var edit or set id in map editor + +/obj/effect/portal/permanent/proc/set_linked() + if(!id) + return + for(var/obj/effect/portal/permanent/P in GLOB.portals - src) + if(P.id == id) + P.linked = src + linked = P + break + +/obj/effect/portal/permanent/teleport(atom/movable/M, force = FALSE) + set_linked() // update portal links + . = ..() + +/obj/effect/portal/permanent/one_way // doesn't have a return portal, can have multiple exits, /obj/effect/landmark/portal_exit to mark them + name = "one-way portal" + desc = "You get the feeling that this might not be the safest thing you've ever done." + +/obj/effect/portal/permanent/one_way/set_linked() + if(!id) + return + var/list/possible_turfs = list() + for(var/obj/effect/landmark/portal_exit/PE in GLOB.landmarks_list) + if(PE.id == id) + var/turf/T = get_turf(PE) + if(T) + possible_turfs |= T + if(possible_turfs.len) + hard_target = pick(possible_turfs) + +/obj/effect/portal/permanent/one_way/one_use + name = "one-use portal" + desc = "This is probably the worst decision you'll ever make in your life." + +/obj/effect/portal/permanent/one_way/one_use/teleport(atom/movable/M, force = FALSE) + . = ..() + qdel(src) diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 2cdf57bf70..9893e9c7d3 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -521,7 +521,7 @@ /obj/item/gun/ballistic/automatic/toy/pistol = 5, /obj/item/firing_pin = 5, /obj/item/grenade/empgrenade = 15, - /obj/item/clothing/gloves/combat = 10, + /obj/item/clothing/gloves/tackler/combat/insulated = 10, /obj/item/clothing/shoes/sneakers/noslip = 10 ) diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm index 01edd82ccb..80178c95c4 100644 --- a/code/game/objects/effects/step_triggers.dm +++ b/code/game/objects/effects/step_triggers.dm @@ -52,7 +52,7 @@ var/list/affecting = list() /obj/effect/step_trigger/thrower/Trigger(atom/A) - if(!A || !ismovableatom(A)) + if(!A || !ismovable(A)) return var/atom/movable/AM = A var/curtiles = 0 diff --git a/code/game/objects/empulse.dm b/code/game/objects/empulse.dm index d9f231b318..b63a126c5d 100644 --- a/code/game/objects/empulse.dm +++ b/code/game/objects/empulse.dm @@ -7,7 +7,7 @@ if(log) message_admins("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ") - log_game("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ") + log_game("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ") if(heavy_range >= 1) new /obj/effect/temp_visual/emp/pulse(epicenter) @@ -29,4 +29,4 @@ T.emp_act(EMP_LIGHT) else if(distance <= light_range) T.emp_act(EMP_LIGHT) - return 1 \ No newline at end of file + return 1 diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 5c80b81ba5..949ed050f5 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -132,6 +132,12 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/list/grind_results //A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only var/list/juice_results //A reagent list containing blah blah... but when JUICED in a grinder! + ///Skills vars + //list of skill PATHS exercised when using this item. An associated bitfield can be set to indicate additional ways the skill is used by this specific item. + var/list/datum/skill/used_skills + var/skill_difficulty = THRESHOLD_COMPETENT //how difficult it's to use this item in general. + var/skill_gain = DEF_SKILL_GAIN //base skill value gain from using this item. + /obj/item/Initialize() if (attack_verb) @@ -392,7 +398,8 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if(item_flags & DROPDEL) qdel(src) item_flags &= ~IN_INVENTORY - SEND_SIGNAL(src, COMSIG_ITEM_DROPPED,user) + if(SEND_SIGNAL(src, COMSIG_ITEM_DROPPED,user) & COMPONENT_DROPPED_RELOCATION) + . = ITEM_RELOCATED_BY_DROPPED user.update_equipment_speed_mods() // called just as an item is picked up (loc is not yet changed) @@ -433,11 +440,12 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) // for items that can be placed in multiple slots // note this isn't called during the initial dressing of a player /obj/item/proc/equipped(mob/user, slot) - SEND_SIGNAL(src, COMSIG_ITEM_EQUIPPED, user, slot) - for(var/X in actions) - var/datum/action/A = X - if(item_action_slot_check(slot, user, A)) //some items only give their actions buttons when in a specific slot. - A.Grant(user) + . = SEND_SIGNAL(src, COMSIG_ITEM_EQUIPPED, user, slot) + if(!(. & COMPONENT_NO_GRANT_ACTIONS)) + for(var/X in actions) + var/datum/action/A = X + if(item_action_slot_check(slot, user, A)) //some items only give their actions buttons when in a specific slot. + A.Grant(user) item_flags |= IN_INVENTORY user.update_equipment_speed_mods() @@ -781,7 +789,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) // Called when a mob tries to use the item as a tool. // Handles most checks. -/obj/item/proc/use_tool(atom/target, mob/living/user, delay, amount=0, volume=0, datum/callback/extra_checks) +/obj/item/proc/use_tool(atom/target, mob/living/user, delay, amount=0, volume=0, datum/callback/extra_checks, skill_gain_mult = 1, max_level = INFINITY) // No delay means there is no start message, and no reason to call tool_start_check before use_tool. // Run the start check here so we wouldn't have to call it manually. if(!delay && !tool_start_check(user, amount)) @@ -793,6 +801,9 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) play_tool_sound(target, volume) if(delay) + if(user.mind && used_skills) + delay = user.mind.skill_holder.item_action_skills_mod(src, delay, skill_difficulty, SKILL_USE_TOOL, NONE, FALSE) + // Create a callback with checks that would be called every tick by do_after. var/datum/callback/tool_check = CALLBACK(src, .proc/tool_check_callback, user, amount, extra_checks) @@ -817,6 +828,12 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if(delay >= MIN_TOOL_SOUND_DELAY) play_tool_sound(target, volume) + if(user.mind && used_skills && skill_gain_mult) + for(var/skill in used_skills) + if(!(used_skills[skill] & SKILL_TRAINING_TOOL)) + continue + user.mind.skill_holder.auto_gain_experience(skill, skill_gain*skill_gain_mult, GET_STANDARD_LVL(max_level)) + return TRUE // Called before use_tool if there is a delay, or by use_tool if there isn't. diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index 2daf6f0c0b..6648db46c4 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -6,17 +6,42 @@ icon_state = "cutout_basic" w_class = WEIGHT_CLASS_BULKY resistance_flags = FLAMMABLE - // Possible restyles for the cutout; - // add an entry in change_appearance() if you add to here - var/list/possible_appearances = list("Assistant", "Clown", "Mime", - "Traitor", "Nuke Op", "Cultist", "Brass Cultist", "Clockwork Cultist", - "Revolutionary", "Wizard", "Shadowling", "Xenomorph", "Xenomorph Maid", "Swarmer", - "Ash Walker", "Deathsquad Officer", "Ian", "Slaughter Demon", - "Laughter Demon", "Private Security Officer", "Securitron", "Gondola", "Monkey") - var/pushed_over = FALSE //If the cutout is pushed over and has to be righted - var/deceptive = FALSE //If the cutout actually appears as what it portray and not a discolored version + /// Possible restyles for the cutout, add an entry in change_appearance() if you add to here + var/static/list/possible_appearances + /// If the cutout is pushed over and has to be righted + var/pushed_over = FALSE + /// If the cutout actually appears as what it portray and not a discolored version + var/deceptive = FALSE - var/lastattacker = null +/obj/item/cardboard_cutout/Initialize() + . = ..() + if(possible_appearances) + return + possible_appearances = sortList(list( + "Assistant" = image(icon = src.icon, icon_state = "cutout_greytide"), + "Clown" = image(icon = src.icon, icon_state = "cutout_clown"), + "Mime" = image(icon = src.icon, icon_state = "cutout_mime"), + "Traitor" = image(icon = src.icon, icon_state = "cutout_traitor"), + "Nuke Op" = image(icon = src.icon, icon_state = "cutout_fluke"), + "Cultist" = image(icon = src.icon, icon_state = "cutout_cultist"), + "Brass Cultist" = image(icon = src.icon, icon_state = "cutout_servant"), + "Clockwork Cultist" = image(icon = src.icon, icon_state = "cutout_new_servant"), + "Revolutionary" = image(icon = src.icon, icon_state = "cutout_viva"), + "Wizard" = image(icon = src.icon, icon_state = "cutout_wizard"), + "Shadowling" = image(icon = src.icon, icon_state = "cutout_shadowling"), + "Xenomorph" = image(icon = src.icon, icon_state = "cutout_fukken_xeno"), + "Xenomorph Maid" = image(icon = src.icon, icon_state = "cutout_lusty"), + "Swarmer" = image(icon = src.icon, icon_state = "cutout_swarmer"), + "Ash Walker" = image(icon = src.icon, icon_state = "cutout_free_antag"), + "Deathsquad Officer" = image(icon = src.icon, icon_state = "cutout_deathsquad"), + "Ian" = image(icon = src.icon, icon_state = "cutout_ian"), + "Slaughter Demon" = image(icon = 'icons/mob/mob.dmi', icon_state = "daemon"), + "Laughter Demon" = image(icon = 'icons/mob/mob.dmi', icon_state = "bowmon"), + "Private Security Officer" = image(icon = src.icon, icon_state = "cutout_ntsec"), + "Securitron" = image(icon = src.icon, icon_state = "cutout_law"), + "Gondola" = image(icon = src.icon, icon_state = "cutout_gondola"), + "Monkey" = image(icon = src.icon, icon_state = "cutout_monky"), + )) //ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/cardboard_cutout/attack_hand(mob/living/user) @@ -76,22 +101,21 @@ push_over() return BULLET_ACT_HIT +/** + * change_appearance: Changes a skin of the cardboard cutout based on a user's choice + * + * Arguments: + * * crayon The crayon used to change and recolor the cardboard cutout + * * user The mob choosing a skin of the cardboard cutout + */ /obj/item/cardboard_cutout/proc/change_appearance(obj/item/toy/crayon/crayon, mob/living/user) - if(!crayon || !user) - return - if(pushed_over) - to_chat(user, "Right [src] first!") - return - if(crayon.check_empty(user)) - return - if(crayon.is_capped) - to_chat(user, "Take the cap off first!") - return - var/new_appearance = input(user, "Choose a new appearance for [src].", "26th Century Deception") as null|anything in possible_appearances - if(!new_appearance || !crayon || !user.canUseTopic(src)) + var/new_appearance = show_radial_menu(user, src, possible_appearances, custom_check = CALLBACK(src, .proc/check_menu, user, crayon), radius = 36, require_near = TRUE) + if(!new_appearance) return if(!do_after(user, 10, FALSE, src, TRUE)) - return + return FALSE + if(!check_menu(user, crayon)) + return FALSE user.visible_message("[user] gives [src] a new look.", "Voila! You give [src] a new look.") crayon.use_charges(1) crayon.check_empty(user) @@ -196,7 +220,33 @@ name = "monkey ([rand(1, 999)])" desc = "A cardboard cutout of a monkey." icon_state = "cutout_monky" - return 1 + else + return FALSE + return TRUE + +/** + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + * * crayon The crayon used to interact with a menu + */ +/obj/item/cardboard_cutout/proc/check_menu(mob/living/user, obj/item/toy/crayon/crayon) + if(!istype(user)) + return FALSE + if(user.incapacitated()) + return FALSE + if(pushed_over) + to_chat(user, "Right [src] first!") + return FALSE + if(!crayon || !user.is_holding(crayon)) + return FALSE + if(crayon.check_empty(user)) + return FALSE + if(crayon.is_capped) + to_chat(user, "Take the cap off first!") + return FALSE + return TRUE /obj/item/cardboard_cutout/setDir(newdir) dir = SOUTH diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 20e0b09d26..c23bc2bd5b 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -258,6 +258,8 @@ update_label("John Doe", "Clowny") chameleon_action.chameleon_type = /obj/item/card/id chameleon_action.chameleon_name = "ID Card" chameleon_action.initialize_disguises() + if(!anyone) + AddComponent(/datum/component/identification/syndicate, ID_COMPONENT_DEL_ON_IDENTIFY, ID_COMPONENT_EFFECT_NO_ACTIONS, NONE) //no deconstructive analyzer usage. /obj/item/card/id/syndicate/afterattack(obj/item/O, mob/user, proximity) if(!proximity) diff --git a/code/game/objects/items/chrono_eraser.dm b/code/game/objects/items/chrono_eraser.dm index 6b3428698b..c3b6c0312f 100644 --- a/code/game/objects/items/chrono_eraser.dm +++ b/code/game/objects/items/chrono_eraser.dm @@ -193,7 +193,7 @@ /obj/effect/chrono_field/update_icon() var/ttk_frame = 1 - (tickstokill / initial(tickstokill)) - ttk_frame = CLAMP(CEILING(ttk_frame * CHRONO_FRAME_COUNT, 1), 1, CHRONO_FRAME_COUNT) + ttk_frame = clamp(CEILING(ttk_frame * CHRONO_FRAME_COUNT, 1), 1, CHRONO_FRAME_COUNT) if(ttk_frame != RPpos) RPpos = ttk_frame mob_underlay.icon_state = "frame[RPpos]" diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index aaa87bbf01..b788c3fcba 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -308,6 +308,13 @@ /obj/item/stock_parts/manipulator = 1, /obj/item/stock_parts/micro_laser = 1, /obj/item/stack/sheet/glass = 1) + var/offstation_security_levels = TRUE + +/obj/item/circuitboard/machine/mechfab/offstation + offstation_security_levels = FALSE + +/obj/item/circuitboard/machine/mechfab/rnd_crafted(obj/machinery/rnd/production/P) + offstation_security_levels = P.offstation_security_levels /obj/item/circuitboard/machine/cryo_tube name = "Cryotube (Machine Board)" @@ -759,6 +766,13 @@ /obj/item/stock_parts/matter_bin = 1, /obj/item/stock_parts/manipulator = 1, /obj/item/reagent_containers/glass/beaker = 2) + var/offstation_security_levels = TRUE + +/obj/item/circuitboard/machine/circuit_imprinter/offstation + offstation_security_levels = FALSE + +/obj/item/circuitboard/machine/mechfab/rnd_crafted(obj/machinery/rnd/production/P) + offstation_security_levels = P.offstation_security_levels /obj/item/circuitboard/machine/circuit_imprinter/department name = "Departmental Circuit Imprinter (Machine Board)" @@ -804,7 +818,7 @@ var/new_cloud = input("Set the public nanite chamber's Cloud ID (1-100).", "Cloud ID", cloud_id) as num|null if(new_cloud == null) return - cloud_id = CLAMP(round(new_cloud, 1), 1, 100) + cloud_id = clamp(round(new_cloud, 1), 1, 100) /obj/item/circuitboard/machine/public_nanite_chamber/examine(mob/user) . = ..() @@ -832,6 +846,13 @@ /obj/item/stock_parts/matter_bin = 2, /obj/item/stock_parts/manipulator = 2, /obj/item/reagent_containers/glass/beaker = 2) + var/offstation_security_levels = TRUE + +/obj/item/circuitboard/machine/protolathe/offstation + offstation_security_levels = FALSE + +/obj/item/circuitboard/machine/protolathe/rnd_crafted(obj/machinery/rnd/production/P) + offstation_security_levels = P.offstation_security_levels /obj/item/circuitboard/machine/protolathe/department name = "Departmental Protolathe (Machine Board)" @@ -1033,9 +1054,9 @@ build_path = /obj/machinery/vending/kink req_components = list(/obj/item/vending_refill/kink = 1) -/obj/item/circuitboard/machine/autoylathe +/obj/item/circuitboard/machine/autolathe/toy name = "Autoylathe (Machine Board)" - build_path = /obj/machinery/autoylathe + build_path = /obj/machinery/autolathe/toy req_components = list( /obj/item/stock_parts/matter_bin = 3, /obj/item/stock_parts/manipulator = 1, diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 5012170b4b..3fb2b820c3 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -59,7 +59,7 @@ var/edible = TRUE // That doesn't mean eating it is a good idea - var/list/reagent_contents = list(/datum/reagent/consumable/nutriment = 1) + var/list/reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1) // If the user can toggle the colour, a la vanilla spraycan var/can_change_colour = FALSE @@ -346,8 +346,8 @@ var/clicky if(click_params && click_params["icon-x"] && click_params["icon-y"]) - clickx = CLAMP(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2) - clicky = CLAMP(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) + clickx = clamp(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2) + clicky = clamp(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) if(!instant) to_chat(user, "You start drawing a [temp] on the [target.name]...") @@ -487,56 +487,56 @@ icon_state = "crayonred" paint_color = "#DA0000" crayon_color = "red" - reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/red = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/red = 0.9) dye_color = DYE_RED /obj/item/toy/crayon/orange icon_state = "crayonorange" paint_color = "#FF9300" crayon_color = "orange" - reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/orange = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/orange = 0.9) dye_color = DYE_ORANGE /obj/item/toy/crayon/yellow icon_state = "crayonyellow" paint_color = "#FFF200" crayon_color = "yellow" - reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/yellow = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/yellow = 0.9) dye_color = DYE_YELLOW /obj/item/toy/crayon/green icon_state = "crayongreen" paint_color = "#A8E61D" crayon_color = "green" - reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/green = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/green = 0.9) dye_color = DYE_GREEN /obj/item/toy/crayon/blue icon_state = "crayonblue" paint_color = "#00B7EF" crayon_color = "blue" - reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/blue = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/blue = 0.9) dye_color = DYE_BLUE /obj/item/toy/crayon/purple icon_state = "crayonpurple" paint_color = "#DA00FF" crayon_color = "purple" - reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/purple = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/purple = 0.9) dye_color = DYE_PURPLE /obj/item/toy/crayon/black icon_state = "crayonblack" paint_color = "#1C1C1C" //Not completely black because total black looks bad. So Mostly Black. crayon_color = "black" - reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/black = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/black = 0.9) dye_color = DYE_BLACK /obj/item/toy/crayon/white icon_state = "crayonwhite" paint_color = "#FFFFFF" crayon_color = "white" - reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/white = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/white = 0.9) dye_color = DYE_WHITE /obj/item/toy/crayon/mime @@ -544,7 +544,7 @@ desc = "A very sad-looking crayon." paint_color = "#FFFFFF" crayon_color = "mime" - reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/invisible = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent/crayonpowder/invisible = 0.9) charges = -1 dye_color = DYE_MIME @@ -552,10 +552,9 @@ icon_state = "crayonrainbow" paint_color = "#FFF000" crayon_color = "rainbow" - reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/colorful_reagent = 0.9) drawtype = RANDOM_ANY // just the default starter. dye_color = DYE_RAINBOW - charges = -1 /obj/item/toy/crayon/rainbow/afterattack(atom/target, mob/user, proximity, params) @@ -727,13 +726,12 @@ to_chat(usr, "A color that dark on an object like this? Surely not...") return FALSE - target.add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY) if(istype(target, /obj/structure/window)) - if(color_hex2num(paint_color) < 255) - target.set_opacity(255) - else - target.set_opacity(initial(target.opacity)) + var/obj/structure/window/W = target + W.spraycan_paint(paint_color) + else + target.add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY) . = use_charges(user, 2) var/fraction = min(1, . / reagents.maximum_volume) diff --git a/code/game/objects/items/devices/desynchronizer.dm b/code/game/objects/items/devices/desynchronizer.dm index e5dcfc0075..e3385dc13f 100644 --- a/code/game/objects/items/devices/desynchronizer.dm +++ b/code/game/objects/items/devices/desynchronizer.dm @@ -39,7 +39,7 @@ var/new_duration = input(user, "Set the duration (5-300):", "Desynchronizer", duration / 10) as null|num if(new_duration) new_duration = new_duration SECONDS - new_duration = CLAMP(new_duration, 50, max_duration) + new_duration = clamp(new_duration, 50, max_duration) duration = new_duration to_chat(user, "You set the duration to [DisplayTimeText(duration)].") return TRUE diff --git a/code/game/objects/items/devices/electrochromatic_kit.dm b/code/game/objects/items/devices/electrochromatic_kit.dm new file mode 100644 index 0000000000..d582eab00e --- /dev/null +++ b/code/game/objects/items/devices/electrochromatic_kit.dm @@ -0,0 +1,14 @@ +/obj/item/electronics/electrochromatic_kit + name = "electrochromatic kit" + desc = "A kit for upgrading a window into an electrochromatic one." + /// Electrochromatic ID + var/id + +/obj/item/electronics/electrochromatic_kit/attack_self(mob/user) + . = ..() + if(.) + return + var/new_id = input(user, "Set this kit's electrochromatic ID", "Set ID", id) as text|null + if(isnull(new_id)) + return + id = new_id diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 29a31122bf..7329db0679 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -351,6 +351,12 @@ light_color = "#FFAA44" flashlight_power = 0.8 +/obj/item/flashlight/lantern/jade + name = "jade lantern" + desc = "An ornate, green lantern." + color = LIGHT_COLOR_GREEN + light_color = LIGHT_COLOR_GREEN + /obj/item/flashlight/slime gender = PLURAL name = "glowing slime extract" diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index 9a09be093d..981a811bc3 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -75,7 +75,7 @@ GLOBAL_LIST_EMPTY(GPS_list) if(!ui) // Variable window height, depending on how many GPS units there are // to show, clamped to relatively safe range. - var/gps_window_height = CLAMP(325 + GLOB.GPS_list.len * 14, 325, 700) + var/gps_window_height = clamp(325 + GLOB.GPS_list.len * 14, 325, 700) ui = new(user, src, ui_key, "gps", "Global Positioning System", 470, gps_window_height, master_ui, state) //width, height ui.open() diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index bee59b254c..9ab6115634 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -171,7 +171,7 @@ // Negative numbers will subtract /obj/item/lightreplacer/proc/AddUses(amount = 1) - uses = CLAMP(uses + amount, 0, max_uses) + uses = clamp(uses + amount, 0, max_uses) /obj/item/lightreplacer/proc/AddShards(amount = 1, user) bulb_shards += amount diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index 63092b5a13..4d0ed362fc 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -68,10 +68,9 @@ update_icon() /obj/item/multitool/update_icon_state() + icon_state = initial(icon_state) if(selected_io) - icon_state = "multitool_red" - else - icon_state = "multitool" + icon_state += "_red" /obj/item/multitool/proc/wire(var/datum/integrated_io/io, mob/user) if(!io.holder.assembly) diff --git a/code/game/objects/items/devices/pressureplates.dm b/code/game/objects/items/devices/pressureplates.dm index 8520571d22..2b5c8d873b 100644 --- a/code/game/objects/items/devices/pressureplates.dm +++ b/code/game/objects/items/devices/pressureplates.dm @@ -8,6 +8,7 @@ level = 1 var/trigger_mob = TRUE var/trigger_item = FALSE + var/specific_item = null var/trigger_silent = FALSE var/sound/trigger_sound = 'sound/effects/pressureplate.ogg' var/obj/item/assembly/signaler/sigdev = null @@ -35,6 +36,8 @@ . = ..() if(!can_trigger || !active) return + if(trigger_item && !istype(AM, specific_item)) + return if(trigger_mob && isliving(AM)) var/mob/living/L = AM to_chat(L, "You feel something click beneath you!") diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index c364d1eb48..47542eb495 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -84,7 +84,7 @@ if(!usr.canUseTopic(src, BE_CLOSE)) return new_code = round(new_code) - new_code = CLAMP(new_code, 1, 100) + new_code = clamp(new_code, 1, 100) code = new_code if(href_list["set"] == "power") diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index ae705168a9..97fce0f096 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -199,7 +199,7 @@ if(!spans) spans = list(M.speech_span) if(!language) - language = M.get_default_language() + language = M.get_selected_language() INVOKE_ASYNC(src, .proc/talk_into_impl, M, message, channel, spans.Copy(), language) return ITALICS | REDUCE_RANGE diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index f48b9e2a0f..4d255fd339 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -240,7 +240,7 @@ effective or pretty fucking useless. charge = max(0,charge - 25)//Quick decrease in light else charge = min(max_charge,charge + 50) //Charge in the dark - animate(user,alpha = CLAMP(255 - charge,0,255),time = 10) + animate(user,alpha = clamp(255 - charge,0,255),time = 10) /obj/item/jammer diff --git a/code/game/objects/items/dice.dm b/code/game/objects/items/dice.dm index f572d0a841..4fdb862288 100644 --- a/code/game/objects/items/dice.dm +++ b/code/game/objects/items/dice.dm @@ -170,7 +170,7 @@ /obj/item/dice/proc/diceroll(mob/user) result = roll(sides) if(rigged && result != rigged) - if(prob(CLAMP(1/(sides - 1) * 100, 25, 80))) + if(prob(clamp(1/(sides - 1) * 100, 25, 80))) result = rigged var/fake_result = roll(sides)//Daredevil isn't as good as he used to be var/comment = "" diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index 9749bae313..0a705df91c 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -57,6 +57,35 @@ on_reading_finished(user) reading = FALSE return TRUE +///TRAITS/// + +/obj/item/book/granter/trait + var/granted_trait + var/traitname = "being cool" + +/obj/item/book/granter/trait/already_known(mob/user) + if(!granted_trait) + return TRUE + if(HAS_TRAIT(user, granted_trait)) + to_chat(user, "You already have all the insight you need about [traitname].") + return TRUE + return FALSE + +/obj/item/book/granter/trait/on_reading_start(mob/user) + to_chat(user, "You start reading about [traitname]...") + +/obj/item/book/granter/trait/on_reading_finished(mob/user) + to_chat(user, "You feel like you've got a good handle on [traitname]!") + ADD_TRAIT(user, granted_trait, BOOK_TRAIT) + +/obj/item/book/granter/trait/rifleman + name = "\proper the Neo-Russian Rifleman\'s Primer" + desc = "A book with stains of vodka and...blood? The back is hard to read, but says something about bolt-actions. Or pump-actions. Both, maybe." + oneuse = FALSE + granted_trait = TRAIT_FAST_PUMP + traitname = "riflery" + icon_state = "book1" + remarks = list("One smooth motion...", "Palm the bolt...", "Push up, rotate back, push forward, down...", "Don't slap yourself with the bolt...", "Wait, what's this about pumping?", "Who just scribbled \"Z\" and \"LMB\" on this page?") ///ACTION BUTTONS/// diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index acd71c57ac..91dde2899d 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -97,8 +97,7 @@ to_chat(user, "You add [A] to the [initial(name)] assembly.") else if(stage == EMPTY && istype(I, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = I - if (C.use(1)) + if (I.use_tool(src, user, 0, 1, max_level = JOB_SKILL_BASIC)) det_time = 50 // In case the cable_coil was removed and readded. stage_change(WIRED) to_chat(user, "You rig the [initial(name)] assembly.") diff --git a/code/game/objects/items/grenades/plastic.dm b/code/game/objects/items/grenades/plastic.dm index eaecae5a92..66869d6f04 100644 --- a/code/game/objects/items/grenades/plastic.dm +++ b/code/game/objects/items/grenades/plastic.dm @@ -94,7 +94,7 @@ return var/newtime = input(usr, "Please set the timer.", "Timer", 10) as num if(user.get_active_held_item() == src) - newtime = CLAMP(newtime, 10, 60000) + newtime = clamp(newtime, 10, 60000) det_time = newtime to_chat(user, "Timer set for [det_time] seconds.") diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 1e0a6ce6dc..c7c9fa37a9 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -118,7 +118,7 @@ righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' custom_materials = list(/datum/material/iron=150, /datum/material/glass=75) breakouttime = 300 //Deciseconds = 30s - cuffsound = 'sound/weapons/cablecuff.ogg' + cuffsound = 'sound/weapons/cablecuff.ogg' /obj/item/restraints/handcuffs/cable/attack_self(mob/user) to_chat(user, "You start unwinding the cable restraints back into coil") @@ -130,7 +130,7 @@ user.put_in_hands(coil) coil.color = color to_chat(user, "You unwind the cable restraints back into coil") - + /obj/item/restraints/handcuffs/cable/red color = "#ff0000" @@ -225,7 +225,6 @@ /obj/item/restraints/handcuffs/fake/kinky name = "kinky handcuffs" desc = "Fake handcuffs meant for erotic roleplay." - icon = 'modular_citadel/icons/obj/items_and_weapons.dmi' icon_state = "handcuffgag" item_state = "kinkycuff" @@ -252,7 +251,7 @@ throw_range = 1 icon_state = "beartrap" desc = "A trap used to catch bears and other legged creatures." - var/armed = 0 + var/armed = FALSE var/trap_damage = 20 /obj/item/restraints/legcuffs/beartrap/Initialize() @@ -275,14 +274,14 @@ if(armed && isturf(src.loc)) if(isliving(AM)) var/mob/living/L = AM - var/snap = 0 + var/snap = FALSE var/def_zone = BODY_ZONE_CHEST if(iscarbon(L)) var/mob/living/carbon/C = L - snap = 1 if(!C.lying) def_zone = pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) if(!C.legcuffed && C.get_num_legs(FALSE) >= 2) //beartrap can't cuff your leg if there's already a beartrap or legcuffs, or you don't have two legs. + snap = TRUE C.legcuffed = src forceMove(C) C.update_equipment_speed_mods() @@ -291,21 +290,21 @@ else if(isanimal(L)) var/mob/living/simple_animal/SA = L if(SA.mob_size > MOB_SIZE_TINY) - snap = 1 - if(L.movement_type & FLYING) - snap = 0 + snap = TRUE + if(L.movement_type & (FLYING | FLOATING)) + snap = FALSE if(snap) - armed = 0 + armed = FALSE icon_state = "[initial(icon_state)][armed]" playsound(src.loc, 'sound/effects/snap.ogg', 50, 1) L.visible_message("[L] triggers \the [src].", \ "You trigger \the [src]!") - L.apply_damage(trap_damage,BRUTE, def_zone) + L.apply_damage(trap_damage, BRUTE, def_zone) ..() /obj/item/restraints/legcuffs/beartrap/energy name = "energy snare" - armed = 1 + armed = TRUE icon_state = "e_snare" trap_damage = 0 item_flags = DROPDEL diff --git a/code/game/objects/items/his_grace.dm b/code/game/objects/items/his_grace.dm index c961134244..6e270b6374 100644 --- a/code/game/objects/items/his_grace.dm +++ b/code/game/objects/items/his_grace.dm @@ -197,9 +197,9 @@ /obj/item/his_grace/proc/adjust_bloodthirst(amt) prev_bloodthirst = bloodthirst if(prev_bloodthirst < HIS_GRACE_CONSUME_OWNER && !ascended) - bloodthirst = CLAMP(bloodthirst + amt, HIS_GRACE_SATIATED, HIS_GRACE_CONSUME_OWNER) + bloodthirst = clamp(bloodthirst + amt, HIS_GRACE_SATIATED, HIS_GRACE_CONSUME_OWNER) else if(!ascended) - bloodthirst = CLAMP(bloodthirst + amt, HIS_GRACE_CONSUME_OWNER, HIS_GRACE_FALL_ASLEEP) + bloodthirst = clamp(bloodthirst + amt, HIS_GRACE_CONSUME_OWNER, HIS_GRACE_FALL_ASLEEP) update_stats() /obj/item/his_grace/proc/update_stats() diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index 171b5a465a..381257721e 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -519,7 +519,9 @@ S.name = name S.ckey = C.ckey S.status_flags |= GODMODE - S.language_holder = user.language_holder.copy(S) + S.copy_languages(user, LANGUAGE_MASTER) //Make sure the sword can understand and communicate with the user. + S.update_atom_languages() + grant_all_languages(FALSE, FALSE, TRUE) //Grants omnitongue S.AddElement(/datum/element/ghost_role_eligibility,penalize_on_ghost = TRUE) START_PROCESSING(SSprocessing,src) var/input = stripped_input(S,"What are you named?", ,"", MAX_NAME_LEN) diff --git a/code/game/objects/items/hot_potato.dm b/code/game/objects/items/hot_potato.dm index 5f74830c99..347ec118fd 100644 --- a/code/game/objects/items/hot_potato.dm +++ b/code/game/objects/items/hot_potato.dm @@ -74,7 +74,7 @@ L.SetAllImmobility(0) L.SetSleeping(0) L.SetUnconscious(0) - L.reagents.add_reagent(/datum/reagent/medicine/muscle_stimulant, CLAMP(5 - L.reagents.get_reagent_amount(/datum/reagent/medicine/muscle_stimulant), 0, 5)) //If you don't have legs or get bola'd, tough luck! + L.reagents.add_reagent(/datum/reagent/medicine/muscle_stimulant, clamp(5 - L.reagents.get_reagent_amount(/datum/reagent/medicine/muscle_stimulant), 0, 5)) //If you don't have legs or get bola'd, tough luck! colorize(L) /obj/item/hot_potato/examine(mob/user) diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index 502930bf65..f6e52181ef 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -3,6 +3,7 @@ * Fork * Kitchen knives * Ritual Knife + * Bloodletter * Butcher's cleaver * Combat Knife * Rolling Pins @@ -97,6 +98,28 @@ righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' w_class = WEIGHT_CLASS_NORMAL +/obj/item/kitchen/knife/bloodletter + name = "bloodletter" + desc = "An occult looking dagger that is cold to the touch. Somehow, the flawless orb on the pommel is made entirely of liquid blood." + icon = 'icons/obj/ice_moon/artifacts.dmi' + icon_state = "bloodletter" + w_class = WEIGHT_CLASS_NORMAL + /// Bleed stacks applied when an organic mob target is hit + var/bleed_stacks_per_hit = 3 + +/obj/item/kitchen/knife/bloodletter/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + . = ..() + if(!isliving(target) || !proximity_flag) + return + var/mob/living/M = target + if(!(M.mob_biotypes & MOB_ORGANIC)) + return + var/datum/status_effect/stacking/saw_bleed/bloodletting/B = M.has_status_effect(/datum/status_effect/stacking/saw_bleed/bloodletting) + if(!B) + M.apply_status_effect(/datum/status_effect/stacking/saw_bleed/bloodletting, bleed_stacks_per_hit) + else + B.add_stacks(bleed_stacks_per_hit) + /obj/item/kitchen/knife/butcher name = "butcher's cleaver" icon_state = "butch" diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 011837d48b..71437d4706 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -304,7 +304,7 @@ return else if(cooldown_check < world.time) - if(target.run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user) & BLOCK_SUCCESS) + if(target.mob_run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user, null, null) & BLOCK_SUCCESS) playsound(target, 'sound/weapons/genhit.ogg', 50, 1) return if(ishuman(target)) @@ -325,7 +325,7 @@ else target.LAssailant = WEAKREF(user) cooldown_check = world.time + cooldown - user.adjustStaminaLossBuffered(getweight())//CIT CHANGE - makes swinging batons cost stamina + user.adjustStaminaLossBuffered(getweight(user, STAM_COST_BATON_MOB_MULT)) else var/wait_desc = get_wait_description() if(wait_desc) @@ -648,7 +648,7 @@ item_state = "mace_greyscale" lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Material type changes the prefix as well as the color. + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS //Material type changes the prefix as well as the color. custom_materials = list(/datum/material/iron = 12000) //Defaults to an Iron Mace. slot_flags = ITEM_SLOT_BELT force = 14 diff --git a/code/game/objects/items/miscellaneous.dm b/code/game/objects/items/miscellaneous.dm index c6bb350929..c4bb8c594c 100644 --- a/code/game/objects/items/miscellaneous.dm +++ b/code/game/objects/items/miscellaneous.dm @@ -123,11 +123,3 @@ w_class = WEIGHT_CLASS_BULKY attack_verb = list("skubbed") -/obj/item/supermatterspray - name = "supermatter spray" - desc = "A spray bottle containing some kind of magical spray to fix the SM. \"Do not inhale.\" is written on the side. Unless aimed at the supermatter, it does nothing." - icon = 'icons/obj/supermatter.dmi' - icon_state = "supermatterspray" - w_class = WEIGHT_CLASS_SMALL - var/usesleft = 2 - diff --git a/code/game/objects/items/paint.dm b/code/game/objects/items/paint.dm index bdf9ab4270..cd65149f5d 100644 --- a/code/game/objects/items/paint.dm +++ b/code/game/objects/items/paint.dm @@ -112,7 +112,7 @@ . = ..() if(!proximity) return - if(!isturf(target) || !isobj(target)) + if(!isturf(target) && !isobj(target)) return if(target.color != initial(target.color)) target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) diff --git a/code/game/objects/items/pneumaticCannon.dm b/code/game/objects/items/pneumaticCannon.dm index 342f756ffc..23be8cbb9a 100644 --- a/code/game/objects/items/pneumaticCannon.dm +++ b/code/game/objects/items/pneumaticCannon.dm @@ -201,8 +201,8 @@ return target var/x_o = (target.x - starting.x) var/y_o = (target.y - starting.y) - var/new_x = CLAMP((starting.x + (x_o * range_multiplier)), 0, world.maxx) - var/new_y = CLAMP((starting.y + (y_o * range_multiplier)), 0, world.maxy) + var/new_x = clamp((starting.x + (x_o * range_multiplier)), 0, world.maxx) + var/new_y = clamp((starting.y + (y_o * range_multiplier)), 0, world.maxy) var/turf/newtarget = locate(new_x, new_y, starting.z) return newtarget diff --git a/code/game/objects/items/puzzle_pieces.dm b/code/game/objects/items/puzzle_pieces.dm new file mode 100644 index 0000000000..648ba27897 --- /dev/null +++ b/code/game/objects/items/puzzle_pieces.dm @@ -0,0 +1,146 @@ +//************** +//*****Keys******************* +//************** ** ** +/obj/item/keycard + name = "security keycard" + desc = "This feels like it belongs to a door." + icon = 'icons/obj/puzzle_small.dmi' + icon_state = "keycard" + force = 0 + throwforce = 0 + w_class = WEIGHT_CLASS_TINY + throw_speed = 1 + throw_range = 7 + resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF | LAVA_PROOF + var/puzzle_id = null + +//Two test keys for use alongside the two test doors. +/obj/item/keycard/cheese + name = "cheese keycard" + desc = "Look, I still don't understand the reference. What the heck is a keyzza?" + color = "#f0da12" + puzzle_id = "cheese" + +/obj/item/keycard/swordfish + name = "titanic keycard" + desc = "Smells like it was at the bottom of a harbor." + color = "#3bbbdb" + puzzle_id = "swordfish" + +//*************** +//*****Doors***** +//*************** + +/obj/machinery/door/keycard + name = "locked door" + desc = "This door only opens when a keycard is swiped. It looks virtually indestructable." + icon = 'icons/obj/doors/puzzledoor/default.dmi' + icon_state = "door_closed" + explosion_block = 3 + heat_proof = TRUE + max_integrity = 600 + armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) + resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF | LAVA_PROOF + damage_deflection = 70 + /// Make sure that the key has the same puzzle_id as the keycard door! + var/puzzle_id = null + /// Message that occurs when the door is opened + var/open_message = "The door beeps, and slides opens." + +//Standard Expressions to make keycard doors basically un-cheeseable +/obj/machinery/door/keycard/Bumped(atom/movable/AM) + return !density && ..() + +/obj/machinery/door/keycard/emp_act(severity) + return + +/obj/machinery/door/keycard/ex_act(severity, target) + return + +/obj/machinery/door/keycard/try_to_activate_door(mob/user) + add_fingerprint(user) + if(operating) + return + +/obj/machinery/door/keycard/attackby(obj/item/I, mob/user, params) + . = ..() + if(istype(I,/obj/item/keycard)) + var/obj/item/keycard/key = I + if((!puzzle_id || puzzle_id == key.puzzle_id) && density) + if(open_message) + to_chat(user, "[open_message]") + open() + return + else if(puzzle_id != key.puzzle_id) + to_chat(user, "[src] buzzes. This must not be the right key.") + return + else + to_chat(user, "This door doesn't appear to close.") + return + +//Test doors. Gives admins a few doors to use quickly should they so choose. +/obj/machinery/door/keycard/cheese + name = "blue airlock" + desc = "Smells like... pizza?" + puzzle_id = "cheese" + +/obj/machinery/door/keycard/swordfish + name = "blue airlock" + desc = "If nautical nonsense be something you wish." + puzzle_id = "swordfish" + +//************************* +//***Box Pushing Puzzles*** +//************************* +//We're working off a subtype of pressureplates, which should work just a BIT better now. +/obj/structure/holobox + name = "holobox" + desc = "A hard-light box, containing a secure decryption key." + icon = 'icons/obj/puzzle_small.dmi' + icon_state = "laserbox" + density = TRUE + resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF | LAVA_PROOF + +//Uses the pressure_plate settings for a pretty basic custom pattern that waits for a specific item to trigger. Easy enough to retool for mapping purposes or subtypes. +/obj/item/pressure_plate/hologrid + name = "hologrid" + desc = "A high power, electronic input port for a holobox, which can unlock the hologrid's storage compartment. Safe to stand on." + icon = 'icons/obj/puzzle_small.dmi' + icon_state = "lasergrid" + anchored = TRUE + trigger_mob = FALSE + trigger_item = TRUE + specific_item = /obj/structure/holobox + removable_signaller = FALSE //Being a pressure plate subtype, this can also use signals. + roundstart_signaller_freq = FREQ_HOLOGRID_SOLUTION //Frequency is kept on it's own default channel however. + active = TRUE + trigger_delay = 10 + resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF | LAVA_PROOF + var/reward = /obj/item/reagent_containers/food/snacks/cookie + var/claimed = FALSE + +/obj/item/pressure_plate/hologrid/examine(mob/user) + . = ..() + if(claimed) + . += "This one appears to be spent already." + +/obj/item/pressure_plate/hologrid/trigger() + if(!claimed) + new reward(loc) + flick("lasergrid_a",src) + icon_state = "lasergrid_full" + claimed = TRUE + +/obj/item/pressure_plate/hologrid/Crossed(atom/movable/AM) + . = ..() + if(trigger_item && istype(AM, specific_item) && !claimed) + AM.anchored = TRUE + flick("laserbox_burn", AM) + trigger() + sleep(15) + qdel(AM) + +// snowflake code until undertile elements +/obj/item/pressure_plate/hologrid/hide() + . = ..() + anchored = TRUE diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 318753e4ad..a5ed113e4c 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -11,7 +11,7 @@ var/charge_cost = 30 /obj/item/borg/stun/attack(mob/living/M, mob/living/user) - if(M.run_block(src, 0, "[M]'s [name]", ATTACK_TYPE_MELEE, 0, user, ran_zone(user.zone_selected)) & BLOCK_SUCCESS) + if(M.mob_run_block(src, 0, "[M]'s [name]", ATTACK_TYPE_MELEE, 0, user, ran_zone(user.zone_selected), null) & BLOCK_SUCCESS) playsound(M, 'sound/weapons/genhit.ogg', 50, 1) return FALSE if(iscyborg(user)) @@ -649,7 +649,7 @@ continue usage += projectile_tick_speed_ecost usage += (tracked[I] * projectile_damage_tick_ecost_coefficient) - energy = CLAMP(energy - usage, 0, maxenergy) + energy = clamp(energy - usage, 0, maxenergy) if(energy <= 0) deactivate_field() visible_message("[src] blinks \"ENERGY DEPLETED\".") @@ -659,7 +659,7 @@ if(iscyborg(host.loc)) host = host.loc else - energy = CLAMP(energy + energy_recharge, 0, maxenergy) + energy = clamp(energy + energy_recharge, 0, maxenergy) return if(host.cell && (host.cell.charge >= (host.cell.maxcharge * cyborg_cell_critical_percentage)) && (energy < maxenergy)) host.cell.use(energy_recharge*energy_recharge_cyborg_drain_coefficient) diff --git a/code/game/objects/items/sharpener.dm b/code/game/objects/items/sharpener.dm index 93056adc99..014d4cb159 100644 --- a/code/game/objects/items/sharpener.dm +++ b/code/game/objects/items/sharpener.dm @@ -35,14 +35,14 @@ if(TH.force_wielded > initial(TH.force_wielded)) to_chat(user, "[TH] has already been refined before. It cannot be sharpened further!") return - TH.force_wielded = CLAMP(TH.force_wielded + increment, 0, max)//wieldforce is increased since normal force wont stay + TH.force_wielded = clamp(TH.force_wielded + increment, 0, max)//wieldforce is increased since normal force wont stay if(I.force > initial(I.force)) to_chat(user, "[I] has already been refined before. It cannot be sharpened further!") return user.visible_message("[user] sharpens [I] with [src]!", "You sharpen [I], making it much more deadly than before.") I.sharpness = IS_SHARP_ACCURATE - I.force = CLAMP(I.force + increment, 0, max) - I.throwforce = CLAMP(I.throwforce + increment, 0, max) + I.force = clamp(I.force + increment, 0, max) + I.throwforce = clamp(I.throwforce + increment, 0, max) I.name = "[prefix] [I.name]" name = "worn out [name]" desc = "[desc] At least, it used to." diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index 6d8e582c29..fc7b196bd2 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -33,11 +33,11 @@ return TRUE /obj/item/shield/alt_pre_attack(atom/A, mob/living/user, params) - user_shieldbash(user, A, user.a_intent != INTENT_HARM) + user_shieldbash(user, A, user.a_intent == INTENT_HARM) return TRUE /obj/item/shield/altafterattack(atom/target, mob/user, proximity_flag, click_parameters) - user_shieldbash(user, target, user.a_intent != INTENT_HARM) + user_shieldbash(user, target, user.a_intent == INTENT_HARM) return TRUE /obj/item/shield/proc/do_shieldbash_effect(mob/living/user, dir, harmful) @@ -52,13 +52,13 @@ px = 12 if(WEST) px = -12 - var/oldpx = user.pixel_x - var/oldpy = user.pixel_y - animate(user, pixel_x = px, pixel_y = py, time = 3, easing = SINE_EASING | EASE_OUT, flags = ANIMATION_END_NOW) - animate(user, pixel_x = oldpx, pixel_y = oldpy, time = 3) - user.visible_message("[user] [harmful? "charges forwards with" : "sweeps"] [src]!") var/obj/effect/temp_visual/dir_setting/shield_bash/effect = new(user.loc, dir) - animate(effect, alpha = 0, pixel_x = px + 4, pixel_y = py + 4, time = 3) + effect.pixel_x = user.pixel_x - 32 //96x96 effect, -32. + effect.pixel_y = user.pixel_y - 32 + user.visible_message("[user] [harmful? "charges forwards with" : "sweeps"] [src]!") + animate(user, pixel_x = px, pixel_y = py, time = 3, easing = SINE_EASING | EASE_OUT, flags = ANIMATION_PARALLEL | ANIMATION_RELATIVE) + animate(user, pixel_x = -px, pixel_y = -py, time = 3, flags = ANIMATION_RELATIVE) + animate(effect, alpha = 0, pixel_x = px * 1.5, pixel_y = py * 1.5, time = 3, flags = ANIMATION_PARALLEL | ANIMATION_RELATIVE) /obj/item/shield/proc/bash_target(mob/living/user, mob/living/target, bashdir, harmful) if(!(target.status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE)) // should probably add stun absorption check at some point I guess.. @@ -76,7 +76,7 @@ "[user] shoves you with [src]!") for(var/i in 1 to harmful? shieldbash_knockback : shieldbash_push_distance) var/turf/new_turf = get_step(target, bashdir) - var/mob/living/carbon/human/H = locate() in new_turf + var/mob/living/carbon/human/H = locate() in (new_turf.contents - target) if(H && harmful) H.visible_message("[target] is sent crashing into [H]!", "[target] is sent crashing into you!") @@ -107,13 +107,19 @@ return TRUE /obj/item/shield/proc/user_shieldbash(mob/living/user, atom/target, harmful) + if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) //Combat mode has to be enabled for shield bashing + return FALSE if(!(shield_flags & SHIELD_CAN_BASH)) to_chat(user, "[src] can't be used to shield bash!") return FALSE + if(!CHECK_MOBILITY(user, MOBILITY_STAND)) + to_chat(user, "You can't bash with [src] while on the ground!") + return FALSE if(world.time < last_shieldbash + shieldbash_cooldown) to_chat(user, "You can't bash with [src] again so soon!") return FALSE - if(isliving(target)) //GROUND SLAAAM + var/mob/living/livingtarget = target //only access after an isliving check! + if(isliving(target) && !CHECK_MOBILITY(livingtarget, MOBILITY_STAND)) //GROUND SLAAAM if(!(shield_flags & SHIELD_BASH_GROUND_SLAM)) to_chat(user, "You can't ground slam with [src]!") return FALSE @@ -122,7 +128,7 @@ playsound(src, harmful? "swing_hit" : 'sound/weapons/thudswoosh.ogg', 75, 1) last_shieldbash = world.time user.adjustStaminaLossBuffered(shieldbash_stamcost) - return 1 + return TRUE // Directional sweep! last_shieldbash = world.time user.adjustStaminaLossBuffered(shieldbash_stamcost) @@ -164,11 +170,12 @@ attack_verb = list("shoved", "bashed") var/cooldown = 0 //shield bash cooldown. based on world.time var/repair_material = /obj/item/stack/sheet/mineral/titanium + var/can_shatter = TRUE shield_flags = SHIELD_FLAGS_DEFAULT | SHIELD_TRANSPARENT max_integrity = 75 /obj/item/shield/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(ismovableatom(object)) + if(ismovable(object)) var/atom/movable/AM = object if(CHECK_BITFIELD(shield_flags, SHIELD_TRANSPARENT) && (AM.pass_flags & PASSGLASS)) return BLOCK_NONE @@ -213,7 +220,7 @@ new /obj/item/shard((get_turf(src))) /obj/item/shield/riot/on_shield_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(obj_integrity <= damage) + if(can_shatter && (obj_integrity <= damage)) var/turf/T = get_turf(owner) T.visible_message("[attack_text] destroys [src]!") shatter(owner) @@ -324,7 +331,6 @@ obj/item/shield/riot/bullet_proof armor = list("melee" = 25, "bullet" = 25, "laser" = 5, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 80) lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi' - icon = 'icons/obj/items_and_weapons.dmi' item_state = "metal" icon_state = "makeshift_shield" custom_materials = list(/datum/material/iron = 18000) @@ -340,7 +346,6 @@ obj/item/shield/riot/bullet_proof armor = list("melee" = 95, "bullet" = 95, "laser" = 75, "energy" = 60, "bomb" = 90, "bio" = 90, "rad" = 0, "fire" = 90, "acid" = 10) //Armor for the item, dosnt transfer to user item_state = "metal" icon_state = "metal" - icon = 'icons/obj/items_and_weapons.dmi' block_chance = 75 //1/4 shots will hit* force = 16 slowdown = 2 @@ -356,20 +361,47 @@ obj/item/shield/riot/bullet_proof block_chance = 50 /obj/item/shield/riot/implant - name = "riot tower shield" - desc = "A massive shield that can block a lot of attacks and can take a lot of abuse before breaking." //It cant break unless it is removed from the implant + name = "telescoping shield implant" + desc = "A compact, arm-mounted telescopic shield. While nigh-indestructible when powered by a host user, it will eventually overload from damage. Recharges while inside its implant." item_state = "metal" icon_state = "metal" - block_chance = 30 //May be big but hard to move around to block. + block_chance = 50 slowdown = 1 shield_flags = SHIELD_FLAGS_DEFAULT + max_integrity = 60 + obj_integrity = 60 + can_shatter = FALSE item_flags = SLOWS_WHILE_IN_HAND + var/recharge_timerid + var/recharge_delay = 15 SECONDS -/obj/item/shield/riot/implant/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(attack_type & ATTACK_TYPE_PROJECTILE) - final_block_chance = 60 //Massive shield - return ..() +/// Entirely overriden take_damage. This shouldn't exist outside of an implant (other than maybe christmas). +/obj/item/shield/riot/implant/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir, armour_penetration = 0) + obj_integrity -= damage_amount + if(obj_integrity < 0) + obj_integrity = 0 + if(obj_integrity == 0) + if(ismob(loc)) + var/mob/living/L = loc + playsound(src, 'sound/effects/glassbr3.ogg', 100) + L.visible_message("[src] overloads from the damage sustained!") + L.dropItemToGround(src) //implant component catch hook will grab it. +/obj/item/shield/riot/implant/Moved() + . = ..() + if(istype(loc, /obj/item/organ/cyberimp/arm/shield)) + recharge_timerid = addtimer(CALLBACK(src, .proc/recharge), recharge_delay, flags = TIMER_STOPPABLE) + else //extending + if(recharge_timerid) + deltimer(recharge_timerid) + recharge_timerid = null + +/obj/item/shield/riot/implant/proc/recharge() + if(obj_integrity == max_integrity) + return + obj_integrity = max_integrity + if(ismob(loc.loc)) //cyberimplant.user + to_chat(loc, "[src] has recharged its reinforcement matrix and is ready for use!") /obj/item/shield/energy name = "energy combat shield" diff --git a/code/game/objects/items/singularityhammer.dm b/code/game/objects/items/singularityhammer.dm index 4c64ed9dd4..dc761ee3bf 100644 --- a/code/game/objects/items/singularityhammer.dm +++ b/code/game/objects/items/singularityhammer.dm @@ -37,7 +37,7 @@ /obj/item/twohanded/singularityhammer/proc/vortex(turf/pull, mob/wielder) for(var/atom/X in orange(5,pull)) - if(ismovableatom(X)) + if(ismovable(X)) var/atom/movable/A = X if(A == wielder) continue diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 50e9b94e97..19c15b309b 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -59,6 +59,9 @@ self_delay = 20 grind_results = list(/datum/reagent/medicine/styptic_powder = 10) +/obj/item/stack/medical/bruise_pack/one + amount = 1 + /obj/item/stack/medical/bruise_pack/heal(mob/living/M, mob/user) if(M.stat == DEAD) to_chat(user, " [M] is dead. You can not help [M.p_them()]!") @@ -100,6 +103,7 @@ if(!H.bleedsuppress && H.bleed_rate) //so you can't stack bleed suppression H.suppress_bloodloss(stop_bleeding) to_chat(user, "You stop the bleeding of [M]!") + H.adjustBruteLoss(-(heal_brute)) return TRUE to_chat(user, "You can not use \the [src] on [M]!") @@ -127,6 +131,15 @@ stop_bleeding = 900 heal_brute = 0 +/obj/item/stack/medical/gauze/adv + name = "sterilized medical gauze" + desc = "A roll of elastic sterilized cloth that is extremely effective at stopping bleeding, heals minor wounds and cleans them." + singular_name = "sterilized medical gauze" + self_delay = 5 + +/obj/item/stack/medical/gauze/adv/one + amount = 1 + /obj/item/stack/medical/gauze/cyborg custom_materials = null is_cyborg = 1 @@ -144,6 +157,9 @@ self_delay = 20 grind_results = list(/datum/reagent/medicine/silver_sulfadiazine = 10) +/obj/item/stack/medical/ointment/one + amount = 1 + /obj/item/stack/medical/ointment/heal(mob/living/M, mob/user) if(M.stat == DEAD) to_chat(user, " [M] is dead. You can not help [M.p_them()]!") diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index c8ee6b05c7..c34ad44d5c 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -69,7 +69,7 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ if (get_amount() < 1 || CC.get_amount() < 5) to_chat(user, "You attach wire to the [name].") var/obj/item/stack/light_w/new_tile = new(user.loc) @@ -109,7 +109,6 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \ merge_type = /obj/item/stack/sheet/plasmaglass grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10) tableVariant = /obj/structure/table/plasmaglass - material_flags = MATERIAL_NO_EFFECTS shard_type = /obj/item/shard/plasma /obj/item/stack/sheet/plasmaglass/fifty @@ -209,7 +208,6 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \ custom_materials = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT, /datum/material/iron=MINERAL_MATERIAL_AMOUNT * 0.5,) armor = list("melee" = 20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) resistance_flags = ACID_PROOF - material_flags = MATERIAL_NO_EFFECTS merge_type = /obj/item/stack/sheet/plasmarglass grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10, /datum/reagent/iron = 10) point_value = 23 @@ -259,7 +257,6 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( item_state = "sheet-plastitaniumglass" custom_materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/plasma=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT) armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) - material_flags = MATERIAL_NO_EFFECTS resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/plastitaniumglass shard_type = /obj/item/shard diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index 65931db2f5..f655e831d8 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -178,6 +178,11 @@ GLOBAL_LIST_INIT(leather_recipes, list ( \ icon_state = "sinew" novariants = TRUE +/obj/item/stack/sheet/sinew/wolf + name = "wolf sinew" + desc = "Long stringy filaments which came from the insides of a wolf." + singular_name = "wolf sinew" + GLOBAL_LIST_INIT(sinew_recipes, list ( \ new/datum/stack_recipe("sinew restraints", /obj/item/restraints/handcuffs/sinew, 1), \ @@ -202,6 +207,11 @@ GLOBAL_LIST_INIT(sinew_recipes, list ( \ w_class = WEIGHT_CLASS_NORMAL layer = MOB_LAYER +/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide + name = "polar bear hides" + desc = "Pieces of a polar bear's fur, these might be able to make your suit a bit more durable to attack from the local fauna." + icon_state = "polar_bear_hide" + singular_name = "polar bear hide" /obj/item/stack/sheet/animalhide/ashdrake name = "ash drake hide" diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 4a7156db72..d28ae52b52 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -324,7 +324,6 @@ GLOBAL_LIST_INIT(titanium_recipes, list ( \ custom_materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT, /datum/material/plasma=MINERAL_MATERIAL_AMOUNT) point_value = 45 merge_type = /obj/item/stack/sheet/mineral/plastitanium - material_flags = MATERIAL_NO_EFFECTS /obj/item/stack/sheet/mineral/plastitanium/fifty amount = 50 diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index b658502808..835dd8b548 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -215,7 +215,6 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ grind_results = list(/datum/reagent/iron = 20, /datum/reagent/toxin/plasma = 20) point_value = 23 tableVariant = /obj/structure/table/reinforced - material_flags = MATERIAL_NO_EFFECTS /obj/item/stack/sheet/plasteel/get_main_recipes() . = ..() diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 70b00c72ec..add9ebd6b2 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -71,9 +71,9 @@ /obj/item/stack/proc/update_weight() if(amount <= (max_amount * (1/3))) - w_class = CLAMP(full_w_class-2, WEIGHT_CLASS_TINY, full_w_class) + w_class = clamp(full_w_class-2, WEIGHT_CLASS_TINY, full_w_class) else if (amount <= (max_amount * (2/3))) - w_class = CLAMP(full_w_class-1, WEIGHT_CLASS_TINY, full_w_class) + w_class = clamp(full_w_class-1, WEIGHT_CLASS_TINY, full_w_class) else w_class = full_w_class diff --git a/code/game/objects/items/stacks/tiles/tile_mineral.dm b/code/game/objects/items/stacks/tiles/tile_mineral.dm index 50edc9d15a..1bcd8d72ca 100644 --- a/code/game/objects/items/stacks/tiles/tile_mineral.dm +++ b/code/game/objects/items/stacks/tiles/tile_mineral.dm @@ -78,4 +78,3 @@ turf_type = /turf/open/floor/mineral/plastitanium mineralType = "plastitanium" custom_materials = list(/datum/material/titanium=250, /datum/material/plasma=250) - material_flags = MATERIAL_NO_EFFECTS \ No newline at end of file diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 103dabdeec..52802fa3df 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -412,7 +412,7 @@ STR.max_combined_w_class = 200 STR.max_items = 25 STR.insert_preposition = "in" - STR.can_hold = typecacheof(list(/obj/item/slime_extract, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/blood, /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/food/snacks/deadmouse, /obj/item/reagent_containers/food/snacks/monkeycube, /obj/item/organ, /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/bodypart)) + STR.can_hold = typecacheof(list(/obj/item/slime_extract, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/blood, /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/food/snacks/deadmouse, /obj/item/reagent_containers/food/snacks/cube, /obj/item/organ, /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/bodypart)) STR.cant_hold = typecacheof(list(/obj/item/organ/brain, /obj/item/organ/liver/cybernetic, /obj/item/organ/heart/cybernetic, /obj/item/organ/lungs/cybernetic, /obj/item/organ/tongue/cybernetic, /obj/item/organ/ears/cybernetic, /obj/item/organ/eyes/robotic, /obj/item/organ/cyberimp)) /obj/item/storage/bag/bio/holding diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index dc6f5f701e..97b7ee8a38 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -695,7 +695,10 @@ /obj/item/gun/ballistic/revolver, /obj/item/ammo_box, /obj/item/toy/gun, - /obj/item/gun/energy/e_gun/mini + /obj/item/gun/energy/e_gun/mini, + /obj/item/gun/ballistic/automatic/magrifle/pistol, + /obj/item/gun/energy/disabler, + /obj/item/gun/energy/taser )) /obj/item/storage/belt/holster/full/PopulateContents() diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 515c39ffcb..9dbbb35862 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -454,11 +454,11 @@ . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.max_items = 7 - STR.can_hold = typecacheof(list(/obj/item/reagent_containers/food/snacks/monkeycube)) + STR.can_hold = typecacheof(list(/obj/item/reagent_containers/food/snacks/cube/monkey)) /obj/item/storage/box/monkeycubes/PopulateContents() for(var/i in 1 to 5) - new /obj/item/reagent_containers/food/snacks/monkeycube(src) + new /obj/item/reagent_containers/food/snacks/cube/monkey(src) /obj/item/storage/box/ids name = "box of spare IDs" @@ -850,12 +850,6 @@ -#define NODESIGN "None" -#define NANOTRASEN "NanotrasenStandard" -#define SYNDI "SyndiSnacks" -#define HEART "Heart" -#define SMILEY "SmileyFace" - /obj/item/storage/box/papersack name = "paper sack" desc = "A sack neatly crafted out of paper." @@ -863,7 +857,18 @@ item_state = "paperbag_None" resistance_flags = FLAMMABLE foldable = null - var/design = NODESIGN + /// A list of all available papersack reskins + var/list/papersack_designs = list() + +/obj/item/storage/box/papersack/Initialize(mapload) + . = ..() + papersack_designs = sortList(list( + "None" = image(icon = src.icon, icon_state = "paperbag_None"), + "NanotrasenStandard" = image(icon = src.icon, icon_state = "paperbag_NanotrasenStandard"), + "SyndiSnacks" = image(icon = src.icon, icon_state = "paperbag_SyndiSnacks"), + "Heart" = image(icon = src.icon, icon_state = "paperbag_Heart"), + "SmileyFace" = image(icon = src.icon, icon_state = "paperbag_SmileyFace") + )) /obj/item/storage/box/papersack/update_icon_state() if(contents.len == 0) @@ -871,55 +876,64 @@ else icon_state = "[item_state]_closed" + /obj/item/storage/box/papersack/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/pen)) - //if a pen is used on the sack, dialogue to change its design appears - if(contents.len) - to_chat(user, "You can't modify [src] with items still inside!") - return - var/list/designs = list(NODESIGN, NANOTRASEN, SYNDI, HEART, SMILEY, "Cancel") - var/switchDesign = input("Select a Design:", "Paper Sack Design", designs[1]) in designs - if(get_dist(usr, src) > 1) - to_chat(usr, "You have moved too far away!") - return - var/choice = designs.Find(switchDesign) - if(design == designs[choice] || designs[choice] == "Cancel") - return 0 - to_chat(usr, "You make some modifications to [src] using your pen.") - design = designs[choice] - icon_state = "paperbag_[design]" - item_state = "paperbag_[design]" - switch(designs[choice]) - if(NODESIGN) + var/choice = show_radial_menu(user, src , papersack_designs, custom_check = CALLBACK(src, .proc/check_menu, user, W), radius = 36, require_near = TRUE) + if(!choice) + return FALSE + if(icon_state == "paperbag_[choice]") + return FALSE + switch(choice) + if("None") desc = "A sack neatly crafted out of paper." - if(NANOTRASEN) + if("NanotrasenStandard") desc = "A standard Nanotrasen paper lunch sack for loyal employees on the go." - if(SYNDI) + if("SyndiSnacks") desc = "The design on this paper sack is a remnant of the notorious 'SyndieSnacks' program." - if(HEART) + if("Heart") desc = "A paper sack with a heart etched onto the side." - if(SMILEY) + if("SmileyFace") desc = "A paper sack with a crude smile etched onto the side." - return 0 + else + return FALSE + to_chat(user, "You make some modifications to [src] using your pen.") + icon_state = "paperbag_[choice]" + item_state = "paperbag_[choice]" + return FALSE else if(W.get_sharpness()) if(!contents.len) if(item_state == "paperbag_None") user.show_message("You cut eyeholes into [src].", MSG_VISUAL) new /obj/item/clothing/head/papersack(user.loc) qdel(src) - return 0 + return FALSE else if(item_state == "paperbag_SmileyFace") user.show_message("You cut eyeholes into [src] and modify the design.", MSG_VISUAL) new /obj/item/clothing/head/papersack/smiley(user.loc) qdel(src) - return 0 + return FALSE return ..() -#undef NODESIGN -#undef NANOTRASEN -#undef SYNDI -#undef HEART -#undef SMILEY +/** + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + * * P The pen used to interact with a menu + */ +/obj/item/storage/box/papersack/proc/check_menu(mob/user, obj/item/pen/P) + if(!istype(user)) + return FALSE + if(user.incapacitated()) + return FALSE + if(contents.len) + to_chat(user, "You can't modify [src] with items still inside!") + return FALSE + if(!P || !user.is_holding(P)) + to_chat(user, "You need a pen to modify [src]!") + return FALSE + return TRUE /obj/item/storage/box/ingredients //This box is for the randomly chosen version the chef spawns with, it shouldn't actually exist. name = "ingredients box" @@ -1117,9 +1131,9 @@ desc = "A box containing a gift for worthy golems." /obj/item/storage/box/rndboards/PopulateContents() - new /obj/item/circuitboard/machine/protolathe(src) + new /obj/item/circuitboard/machine/protolathe/offstation(src) new /obj/item/circuitboard/machine/destructive_analyzer(src) - new /obj/item/circuitboard/machine/circuit_imprinter(src) + new /obj/item/circuitboard/machine/circuit_imprinter/offstation(src) new /obj/item/circuitboard/computer/rdconsole(src) /obj/item/storage/box/silver_sulf diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 50620b90fe..64e0a6b492 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -138,7 +138,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) new /obj/item/crowbar/red(src) new /obj/item/wirecutters(src, "red") new /obj/item/multitool(src) - new /obj/item/clothing/gloves/combat(src) + new /obj/item/clothing/gloves/tackler/combat/insulated(src) /obj/item/storage/toolbox/drone name = "mechanical toolbox" @@ -311,7 +311,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) new /obj/item/crowbar/red(src) new /obj/item/wirecutters(src, "red") new /obj/item/multitool/ai_detect(src) - new /obj/item/clothing/gloves/combat(src) + new /obj/item/clothing/gloves/tackler/combat/insulated(src) /obj/item/storage/toolbox/gold_real/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 874c858b3f..ffa3d83304 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -294,18 +294,18 @@ name = "chameleon kit" /obj/item/storage/box/syndie_kit/chameleon/PopulateContents() - new /obj/item/clothing/under/chameleon(src) - new /obj/item/clothing/suit/chameleon(src) - new /obj/item/clothing/gloves/chameleon(src) - new /obj/item/clothing/shoes/chameleon(src) - new /obj/item/clothing/glasses/chameleon(src) - new /obj/item/clothing/head/chameleon(src) - new /obj/item/clothing/mask/chameleon(src) - new /obj/item/storage/backpack/chameleon(src) - new /obj/item/radio/headset/chameleon(src) - new /obj/item/stamp/chameleon(src) - new /obj/item/pda/chameleon(src) - new /obj/item/clothing/neck/cloak/chameleon(src) + new /obj/item/clothing/under/chameleon/syndicate(src) + new /obj/item/clothing/suit/chameleon/syndicate(src) + new /obj/item/clothing/gloves/chameleon/insulated/syndicate(src) + new /obj/item/clothing/shoes/chameleon/syndicate(src) + new /obj/item/clothing/glasses/chameleon/syndicate(src) + new /obj/item/clothing/head/chameleon/syndicate(src) + new /obj/item/clothing/mask/chameleon/syndicate(src) + new /obj/item/storage/backpack/chameleon/syndicate(src) + new /obj/item/radio/headset/chameleon/syndicate(src) + new /obj/item/stamp/chameleon/syndicate(src) + new /obj/item/pda/chameleon/syndicate(src) + new /obj/item/clothing/neck/cloak/chameleon/syndicate(src) //5*(2*4) = 5*8 = 45, 45 damage if you hit one person with all 5 stars. //Not counting the damage it will do while embedded (2*4 = 8, at 15% chance) @@ -501,3 +501,13 @@ new item2(src) new item3(src) new /obj/item/paper/contractor_guide(src) //Paper guide + +/obj/item/storage/box/syndie_kit/northstar + +/obj/item/storage/box/syndie_kit/northstar/PopulateContents() + new /obj/item/clothing/gloves/fingerless/pugilist/rapid(src) + new /obj/item/clothing/accessory/padding(src) + new /obj/item/clothing/under/chameleon(src) + new /obj/item/storage/fancy/cigarettes/cigpack_syndicate(src) + new /obj/item/lighter(src) + diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 0fc47f649a..634537e5a2 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -163,14 +163,14 @@ if(status) if(baton_stun(M, user, disarming)) user.do_attack_animation(M) - user.adjustStaminaLossBuffered(getweight()) //CIT CHANGE - makes stunbatonning others cost stamina + user.adjustStaminaLossBuffered(getweight(user, STAM_COST_BATON_MOB_MULT)) else if(user.a_intent != INTENT_HARM) //they'll try to bash in the last proc. M.visible_message("[user] has prodded [M] with [src]. Luckily it was off.", \ "[user] has prodded you with [src]. Luckily it was off") return disarming || (user.a_intent != INTENT_HARM) /obj/item/melee/baton/proc/baton_stun(mob/living/L, mob/user, disarming = FALSE) - if(L.run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user) & BLOCK_SUCCESS) //No message; check_shields() handles that + if(L.mob_run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user, null, null) & BLOCK_SUCCESS) //No message; check_shields() handles that playsound(L, 'sound/weapons/genhit.ogg', 50, 1) return FALSE var/stunpwr = stamforce @@ -232,11 +232,8 @@ /obj/item/melee/baton/stunsword name = "stunsword" desc = "not actually sharp, this sword is functionally identical to a stunbaton" - icon = 'modular_citadel/icons/obj/stunsword.dmi' icon_state = "stunsword" item_state = "sword" - lefthand_file = 'modular_citadel/icons/mob/inhands/stunsword_left.dmi' - righthand_file = 'modular_citadel/icons/mob/inhands/stunsword_right.dmi' /obj/item/melee/baton/stunsword/get_belt_overlay() if(istype(loc, /obj/item/storage/belt/sabre)) diff --git a/code/game/objects/items/tanks/jetpack.dm b/code/game/objects/items/tanks/jetpack.dm index f592055338..e81294ceea 100644 --- a/code/game/objects/items/tanks/jetpack.dm +++ b/code/game/objects/items/tanks/jetpack.dm @@ -52,7 +52,7 @@ ion_trail.start() RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/move_react) if(full_speed) - user.add_movespeed_modifier(MOVESPEED_ID_JETPACK, priority=100, multiplicative_slowdown=-2, movetypes=FLOATING, conflict=MOVE_CONFLICT_JETPACK) + user.add_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed) /obj/item/tank/jetpack/proc/turn_off(mob/user) on = FALSE @@ -60,7 +60,7 @@ icon_state = initial(icon_state) ion_trail.stop() UnregisterSignal(user, COMSIG_MOVABLE_MOVED) - user.remove_movespeed_modifier(MOVESPEED_ID_JETPACK) + user.remove_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed) /obj/item/tank/jetpack/proc/move_react(mob/user) allow_thrust(0.01, user) diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm index c76977947f..0877f56725 100644 --- a/code/game/objects/items/tanks/tanks.dm +++ b/code/game/objects/items/tanks/tanks.dm @@ -204,7 +204,7 @@ pressure = text2num(pressure) . = TRUE if(.) - distribute_pressure = CLAMP(round(pressure), TANK_MIN_RELEASE_PRESSURE, TANK_MAX_RELEASE_PRESSURE) + distribute_pressure = clamp(round(pressure), TANK_MIN_RELEASE_PRESSURE, TANK_MAX_RELEASE_PRESSURE) /obj/item/tank/remove_air(amount) return air_contents.remove(amount) diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm index 6fbf9316ed..08390e1607 100644 --- a/code/game/objects/items/theft_tools.dm +++ b/code/game/objects/items/theft_tools.dm @@ -256,7 +256,7 @@ . = ..() if(!sliver) return - if(proximity && ismovableatom(O) && O != sliver) + if(proximity && ismovable(O) && O != sliver) Consume(O, user) /obj/item/hemostat/supermatter/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) // no instakill supermatter javelins diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 9291b72467..ff59b85332 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -241,11 +241,13 @@ playsound(user, activation_sound, transform_volume, 1) w_class = WEIGHT_CLASS_BULKY AddElement(/datum/element/sword_point) + total_mass = total_mass_on else to_chat(user, "[deactivation_message]") playsound(user, deactivation_sound, transform_volume, 1) w_class = WEIGHT_CLASS_SMALL RemoveElement(/datum/element/sword_point) + total_mass = initial(total_mass) update_icon() add_fingerprint(user) @@ -287,9 +289,6 @@ else return ..() -/obj/item/toy/sword/getweight() - return (active ? total_mass_on : total_mass) || w_class *1.25 - /obj/item/toy/sword/cx name = "\improper DX Non-Euplastic LightSword" desc = "A deluxe toy replica of an energy sword. Realistic visuals and sounds! Ages 8 and up." @@ -903,79 +902,57 @@ name = "hand of cards" desc = "A number of cards not in a deck, customarily held in ones hand." icon = 'icons/obj/toy.dmi' - icon_state = "nanotrasen_hand2" + icon_state = "none" w_class = WEIGHT_CLASS_TINY var/list/currenthand = list() var/choice = null - /obj/item/toy/cards/cardhand/attack_self(mob/user) - user.set_machine(src) + var/list/handradial = list() interact(user) -/obj/item/toy/cards/cardhand/ui_interact(mob/user) - . = ..() - var/dat = "You have:
    " for(var/t in currenthand) - dat += "A [t].
    " - dat += "Which card will you remove next?" - var/datum/browser/popup = new(user, "cardhand", "Hand of Cards", 400, 240) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.set_content(dat) - popup.open() + handradial[t] = image(icon = src.icon, icon_state = "sc_[t]_[deckstyle]") - -/obj/item/toy/cards/cardhand/Topic(href, href_list) - if(..()) - return if(usr.stat || !ishuman(usr)) return var/mob/living/carbon/human/cardUser = usr - var/O = src - if(href_list["pick"]) - if (cardUser.is_holding(src)) - var/choice = href_list["pick"] - var/obj/item/toy/cards/singlecard/C = new/obj/item/toy/cards/singlecard(cardUser.loc) - src.currenthand -= choice - C.parentdeck = src.parentdeck - C.cardname = choice - C.apply_card_vars(C,O) - C.pickup(cardUser) - cardUser.put_in_hands(C) - cardUser.visible_message("[cardUser] draws a card from [cardUser.p_their()] hand.", "You take the [C.cardname] from your hand.") - - interact(cardUser) - if(src.currenthand.len < 3) - src.icon_state = "[deckstyle]_hand2" - else if(src.currenthand.len < 4) - src.icon_state = "[deckstyle]_hand3" - else if(src.currenthand.len < 5) - src.icon_state = "[deckstyle]_hand4" - if(src.currenthand.len == 1) - var/obj/item/toy/cards/singlecard/N = new/obj/item/toy/cards/singlecard(src.loc) - N.parentdeck = src.parentdeck - N.cardname = src.currenthand[1] - N.apply_card_vars(N,O) - qdel(src) - N.pickup(cardUser) - cardUser.put_in_hands(N) - to_chat(cardUser, "You also take [currenthand[1]] and hold it.") - cardUser << browse(null, "window=cardhand") + if(!(cardUser.mobility_flags & MOBILITY_USE)) return + var/O = src + var/choice = show_radial_menu(usr,src, handradial, custom_check = CALLBACK(src, .proc/check_menu, user), radius = 36, require_near = TRUE) + if(!choice) + return FALSE + var/obj/item/toy/cards/singlecard/C = new/obj/item/toy/cards/singlecard(cardUser.loc) + currenthand -= choice + handradial -= choice + C.parentdeck = parentdeck + C.cardname = choice + C.apply_card_vars(C,O) + C.pickup(cardUser) + cardUser.put_in_hands(C) + cardUser.visible_message("[cardUser] draws a card from [cardUser.p_their()] hand.", "You take the [C.cardname] from your hand.") + + interact(cardUser) + update_sprite() + if(length(currenthand) == 1) + var/obj/item/toy/cards/singlecard/N = new/obj/item/toy/cards/singlecard(loc) + N.parentdeck = parentdeck + N.cardname = currenthand[1] + N.apply_card_vars(N,O) + qdel(src) + N.pickup(cardUser) + cardUser.put_in_hands(N) + to_chat(cardUser, "You also take [currenthand[1]] and hold it.") /obj/item/toy/cards/cardhand/attackby(obj/item/toy/cards/singlecard/C, mob/living/user, params) if(istype(C)) if(C.parentdeck == src.parentdeck) src.currenthand += C.cardname - user.visible_message("[user] adds a card to [user.p_their()] hand.", "You add the [C.cardname] to your hand.") + user.visible_message("[user] adds a card to [user.p_their()] hand.", "You add the [C.cardname] to your hand.") qdel(C) interact(user) - if(currenthand.len > 4) - src.icon_state = "[deckstyle]_hand5" - else if(currenthand.len > 3) - src.icon_state = "[deckstyle]_hand4" - else if(currenthand.len > 2) - src.icon_state = "[deckstyle]_hand3" + update_sprite(src) else to_chat(user, "You can't mix cards from other decks!") else @@ -984,7 +961,7 @@ /obj/item/toy/cards/cardhand/apply_card_vars(obj/item/toy/cards/newobj,obj/item/toy/cards/sourceobj) ..() newobj.deckstyle = sourceobj.deckstyle - newobj.icon_state = "[deckstyle]_hand2" // Another dumb hack, without this the hand is invisible (or has the default deckstyle) until another card is added. + update_sprite() newobj.card_hitsound = sourceobj.card_hitsound newobj.card_force = sourceobj.card_force newobj.card_throwforce = sourceobj.card_throwforce @@ -993,6 +970,31 @@ newobj.card_attack_verb = sourceobj.card_attack_verb newobj.resistance_flags = sourceobj.resistance_flags +/** + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + */ +/obj/item/toy/cards/cardhand/proc/check_menu(mob/living/user) + if(!istype(user)) + return FALSE + if(user.incapacitated()) + return FALSE + return TRUE + +/** + * This proc updates the sprite for when you create a hand of cards + */ +/obj/item/toy/cards/cardhand/proc/update_sprite() + cut_overlays() + var/overlay_cards = currenthand.len + + var/k = overlay_cards == 2 ? 1 : overlay_cards - 2 + for(var/i = k; i <= overlay_cards; i++) + var/card_overlay = image(icon=src.icon,icon_state="sc_[currenthand[i]]_[deckstyle]",pixel_x=(1-i+k)*3,pixel_y=(1-i+k)*3) + add_overlay(card_overlay) + /obj/item/toy/cards/singlecard name = "card" desc = "a card" diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index 2b6a91eb51..acfc9a6e85 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -1182,7 +1182,7 @@ if(iscyborg(target)) ..() return - if(target.run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user) & BLOCK_SUCCESS) //No message; run_block() handles that + if(target.mob_run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user, null, null) & BLOCK_SUCCESS) //No message; run_block() handles that playsound(target, 'sound/weapons/genhit.ogg', 50, 1) return FALSE if(user.a_intent != INTENT_HARM) diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 8496a8a216..2d132e4eef 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -303,7 +303,6 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 custom_materials = list(/datum/material/iron=500, /datum/material/glass=500) resistance_flags = FIRE_PROOF - /obj/item/switchblade name = "switchblade" icon_state = "switchblade" @@ -639,6 +638,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 w_class = WEIGHT_CLASS_SMALL //Things in this list will be instantly splatted. Flyman weakness is handled in the flyman species weakness proc. var/list/strong_against + var/list/spider_panic /obj/item/melee/flyswatter/Initialize() . = ..() @@ -648,7 +648,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /mob/living/simple_animal/cockroach, /obj/item/queen_bee )) - + spider_panic = typecacheof(list( + /mob/living/simple_animal/banana_spider, + /mob/living/simple_animal/hostile/poison/giant_spider, + )) /obj/item/melee/flyswatter/afterattack(atom/target, mob/user, proximity_flag) . = ..() @@ -659,6 +662,11 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 if(istype(target, /mob/living/)) var/mob/living/bug = target bug.death(1) + if(is_type_in_typecache(target, spider_panic)) + to_chat(user, "You easily land a critical blow on the [target].") + if(istype(target, /mob/living/)) + var/mob/living/bug = target + bug.adjustBruteLoss(-35) //What kinda mad man would go into melee with a spider?! else qdel(target) diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index e582aa7e67..8dac972d04 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -31,7 +31,7 @@ if(damage_flag) armor_protection = armor.getRating(damage_flag) if(armor_protection) //Only apply weak-against-armor/hollowpoint effects if there actually IS armor. - armor_protection = CLAMP(armor_protection - armour_penetration, 0, 100) + armor_protection = clamp(armor_protection - armour_penetration, 0, 100) return round(damage_amount * (100 - armor_protection)*0.01, DAMAGE_PRECISION) //the sound played when the obj is damaged. @@ -213,7 +213,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e if(T.intact && level == 1) //fire can't damage things hidden below the floor. return if(exposed_temperature && !(resistance_flags & FIRE_PROOF)) - take_damage(CLAMP(0.02 * exposed_temperature, 0, 20), BURN, "fire", 0) + take_damage(clamp(0.02 * exposed_temperature, 0, 20), BURN, "fire", 0) if(!(resistance_flags & ON_FIRE) && (resistance_flags & FLAMMABLE)) resistance_flags |= ON_FIRE SSfire_burning.processing[src] = src @@ -244,7 +244,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e if(has_buckled_mobs()) for(var/m in buckled_mobs) var/mob/living/buckled_mob = m - buckled_mob.electrocute_act((CLAMP(round(strength/400), 10, 90) + rand(-5, 5)), src, flags = SHOCK_TESLA) + buckled_mob.electrocute_act((clamp(round(strength/400), 10, 90) + rand(-5, 5)), src, flags = SHOCK_TESLA) /obj/proc/reset_shocked() obj_flags &= ~BEING_SHOCKED diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index d2d72193b7..199f0c51e2 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -3,6 +3,7 @@ var/crit_fail = FALSE animate_movement = 2 speech_span = SPAN_ROBOT + vis_flags = VIS_INHERIT_PLANE //when this be added to vis_contents of something it inherit something.plane, important for visualisation of obj in openspace. var/obj_flags = CAN_BE_HIT var/set_obj_flags // ONLY FOR MAPPING: Sets flags from a string list, handled in Initialize. Usage: set_obj_flags = "EMAGGED;!CAN_BE_HIT" to set EMAGGED and clear CAN_BE_HIT. @@ -314,3 +315,11 @@ current_skin = choice icon_state = unique_reskin[choice] to_chat(M, "[src] is now skinned as '[choice]'.") + +//Called when the object is constructed by an autolathe +//Has a reference to the autolathe so you can do !!FUN!! things with hacked lathes +/obj/proc/autolathe_crafted(obj/machinery/autolathe/A) + return + +/obj/proc/rnd_crafted(obj/machinery/rnd/production/P) + return diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm index 3e35c12314..1090bae9f8 100644 --- a/code/game/objects/structures/ai_core.dm +++ b/code/game/objects/structures/ai_core.dm @@ -131,7 +131,7 @@ if(C.get_amount() >= 5) playsound(loc, 'sound/items/deconstruct.ogg', 50, 1) to_chat(user, "You start to add cables to the frame...") - if(do_after(user, 20, target = src) && state == SCREWED_CORE && C.use(5)) + if(do_after(user, 20, target = src) && state == SCREWED_CORE && C.use_tool(src, user, 0, 5)) to_chat(user, "You add cables to the frame.") state = CABLED_CORE update_icon() diff --git a/code/game/objects/structures/barsigns.dm b/code/game/objects/structures/barsigns.dm index d2fff9649d..821409c26b 100644 --- a/code/game/objects/structures/barsigns.dm +++ b/code/game/objects/structures/barsigns.dm @@ -84,7 +84,6 @@ panel_open = FALSE else if(istype(I, /obj/item/stack/cable_coil) && panel_open) - var/obj/item/stack/cable_coil/C = I if(obj_flags & EMAGGED) //Emagged, not broken by EMP to_chat(user, "Sign has been damaged beyond repair!") return @@ -92,7 +91,7 @@ to_chat(user, "This sign is functioning properly!") return - if(C.use(2)) + if(I.use_tool(src, user, 0, 2)) to_chat(user, "You replace the burnt wiring.") broken = FALSE else diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index c593451c24..d3e8ecf0a6 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -153,7 +153,7 @@ ///Material chair /obj/structure/chair/greyscale icon_state = "chair_greyscale" - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS item_chair = /obj/item/chair/greyscale buildstacktype = null //Custom mats handle this @@ -382,7 +382,7 @@ /obj/item/chair/greyscale icon_state = "chair_greyscale_toppled" item_state = "chair_greyscale" - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS origin_type = /obj/structure/chair/greyscale /obj/item/chair/stool diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index a40314c7ad..5da04a6686 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -505,7 +505,7 @@ /obj/structure/closet/container_resist(mob/living/user) if(opened) return - if(ismovableatom(loc)) + if(ismovable(loc)) user.changeNext_move(CLICK_CD_BREAKOUT) user.last_special = world.time + CLICK_CD_BREAKOUT var/atom/movable/AM = loc diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm index 83827b56b6..0da502283b 100644 --- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm +++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm @@ -37,8 +37,8 @@ ..() new /obj/item/clothing/glasses/eyepatch(src) new /obj/item/clothing/glasses/sunglasses(src) - new /obj/item/clothing/gloves/combat(src) - new /obj/item/clothing/gloves/combat(src) + new /obj/item/clothing/gloves/tackler/combat(src) + new /obj/item/clothing/gloves/tackler/combat(src) new /obj/item/clothing/head/helmet/swat(src) new /obj/item/clothing/head/helmet/swat(src) new /obj/item/clothing/mask/gas/sechailer/swat(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 58d72e6ee0..05798df953 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -77,6 +77,7 @@ new /obj/item/clothing/mask/gas(src) new /obj/item/clothing/glasses/meson/engine(src) new /obj/item/storage/box/emptysandbags(src) + new /obj/item/cartridge/engineering(src) /obj/structure/closet/secure_closet/atmospherics name = "\proper atmospheric technician's locker" @@ -97,6 +98,7 @@ new /obj/item/clothing/head/hardhat/atmos(src) new /obj/item/clothing/glasses/meson/engine/tray(src) new /obj/item/extinguisher/advanced(src) + new /obj/item/cartridge/atmos(src) /* * Empty lockers diff --git a/code/game/objects/structures/fireplace.dm b/code/game/objects/structures/fireplace.dm index ee8f285230..ca66dbd8de 100644 --- a/code/game/objects/structures/fireplace.dm +++ b/code/game/objects/structures/fireplace.dm @@ -130,7 +130,7 @@ if(burn_time_remaining() < MAXIMUM_BURN_TIMER) flame_expiry_timer = world.time + MAXIMUM_BURN_TIMER else - fuel_added = CLAMP(fuel_added + amount, 0, MAXIMUM_BURN_TIMER) + fuel_added = clamp(fuel_added + amount, 0, MAXIMUM_BURN_TIMER) /obj/structure/fireplace/proc/burn_time_remaining() if(lit) diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index 261dae1ea2..c0ee7bb987 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -350,11 +350,28 @@ icon = 'icons/obj/flora/rocks.dmi' resistance_flags = FIRE_PROOF density = TRUE + /// Itemstack that is dropped when a rock is mined with a pickaxe + var/obj/item/stack/mineResult = /obj/item/stack/ore/glass/basalt + /// Amount of the itemstack to drop + var/mineAmount = 20 /obj/structure/flora/rock/Initialize() . = ..() icon_state = "[icon_state][rand(1,3)]" +/obj/structure/flora/rock/attackby(obj/item/W, mob/user, params) + if(!mineResult || W.tool_behaviour != TOOL_MINING) + return ..() + if(flags_1 & NODECONSTRUCT_1) + return ..() + to_chat(user, "You start mining...") + if(W.use_tool(src, user, 40, volume=50)) + to_chat(user, "You finish mining the rock.") + if(mineResult && mineAmount) + new mineResult(get_turf(src), mineAmount) + SSblackbox.record_feedback("tally", "pick_used_mining", 1, W.type) + qdel(src) + /obj/structure/flora/rock/pile icon_state = "lavarocks" desc = "A pile of rocks." diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index c918e7b867..082c4bd723 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -32,6 +32,7 @@ new_spawn.undershirt = "Nude" //changing underwear/shirt/socks doesn't seem to function correctly right now because of some bug elsewhere? new_spawn.socks = "Nude" new_spawn.update_body(TRUE) + new_spawn.language_holder.selected_language = /datum/language/sylvan //Ash walker eggs: Spawns in ash walker dens in lavaland. Ghosts become unbreathing lizards that worship the Necropolis and are advised to retrieve corpses to create more ash walkers. @@ -63,10 +64,6 @@ else to_chat(new_spawn, "You have been born outside of your natural home! Whether you decide to return home, or make due with your new home is your own decision.") - new_spawn.grant_language(/datum/language/draconic) - var/datum/language_holder/holder = new_spawn.get_language_holder() - holder.selected_default_language = /datum/language/draconic - //Ash walkers on birth understand how to make bone bows, bone arrows and ashen arrows new_spawn.mind.teach_crafting_recipe(/datum/crafting_recipe/bone_arrow) @@ -453,7 +450,7 @@ name = "Syndicate Operative Empty" uniform = /obj/item/clothing/under/syndicate shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat + gloves = /obj/item/clothing/gloves/tackler/combat/insulated ears = /obj/item/radio/headset/syndicate/alt back = /obj/item/storage/backpack implants = list(/obj/item/implant/weapons_auth) diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 7c373f2734..fd62ffd368 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -294,7 +294,7 @@ /obj/structure/girder/CanAStarPass(ID, dir, caller) . = !density - if(ismovableatom(caller)) + if(ismovable(caller)) var/atom/movable/mover = caller . = . || (mover.pass_flags & PASSGRILLE) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 61983dcb4f..54e08db210 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -129,7 +129,7 @@ /obj/structure/grille/CanAStarPass(ID, dir, caller) . = !density - if(ismovableatom(caller)) + if(ismovable(caller)) var/atom/movable/mover = caller . = . || (mover.pass_flags & PASSGRILLE) diff --git a/code/game/objects/structures/icemoon/cave_entrance.dm b/code/game/objects/structures/icemoon/cave_entrance.dm new file mode 100644 index 0000000000..e68918c764 --- /dev/null +++ b/code/game/objects/structures/icemoon/cave_entrance.dm @@ -0,0 +1,179 @@ +GLOBAL_LIST_INIT(ore_probability, list(/obj/item/stack/ore/uranium = 50, + /obj/item/stack/ore/iron = 100, + /obj/item/stack/ore/plasma = 75, + /obj/item/stack/ore/silver = 50, + /obj/item/stack/ore/gold = 50, + /obj/item/stack/ore/diamond = 25, + /obj/item/stack/ore/bananium = 5, + /obj/item/stack/ore/titanium = 75)) + +/obj/structure/spawner/ice_moon + name = "cave entrance" + desc = "A hole in the ground, filled with monsters ready to defend it." + icon = 'icons/mob/nest.dmi' + icon_state = "hole" + faction = list("mining") + max_mobs = 3 + max_integrity = 250 + mob_types = list(/mob/living/simple_animal/hostile/asteroid/wolf) + move_resist = INFINITY + anchored = TRUE + +/obj/structure/spawner/ice_moon/Initialize() + . = ..() + clear_rock() + +/** + * Clears rocks around the spawner when it is created + * + */ +/obj/structure/spawner/ice_moon/proc/clear_rock() + for(var/turf/F in RANGE_TURFS(2, src)) + if(abs(src.x - F.x) + abs(src.y - F.y) > 3) + continue + if(ismineralturf(F)) + var/turf/closed/mineral/M = F + M.ScrapeAway(null, CHANGETURF_IGNORE_AIR) + +/obj/structure/spawner/ice_moon/deconstruct(disassembled) + destroy_effect() + drop_loot() + return ..() + +/** + * Effects and messages created when the spawner is destroyed + * + */ +/obj/structure/spawner/ice_moon/proc/destroy_effect() + playsound(loc,'sound/effects/explosionfar.ogg', 200, TRUE) + visible_message("[src] collapses, sealing everything inside!\nOres fall out of the cave as it is destroyed!") + +/** + * Drops items after the spawner is destroyed + * + */ +/obj/structure/spawner/ice_moon/proc/drop_loot() + for(var/type in GLOB.ore_probability) + var/chance = GLOB.ore_probability[type] + if(!prob(chance)) + continue + new type(loc, rand(5, 10)) + +/obj/structure/spawner/ice_moon/polarbear + max_mobs = 1 + spawn_time = 60 SECONDS + mob_types = list(/mob/living/simple_animal/hostile/asteroid/polarbear) + +/obj/structure/spawner/ice_moon/polarbear/clear_rock() + for(var/turf/F in RANGE_TURFS(1, src)) + if(ismineralturf(F)) + var/turf/closed/mineral/M = F + M.ScrapeAway(null, CHANGETURF_IGNORE_AIR) + +/obj/structure/spawner/ice_moon/demonic_portal + name = "demonic portal" + desc = "A portal that goes to another world, normal creatures couldn't survive there." + icon_state = "nether" + mob_types = list(/mob/living/simple_animal/hostile/asteroid/ice_demon) + light_range = 1 + light_color = LIGHT_COLOR_RED + +/obj/structure/spawner/ice_moon/demonic_portal/clear_rock() + for(var/turf/F in RANGE_TURFS(3, src)) + if(abs(src.x - F.x) + abs(src.y - F.y) > 5) + continue + if(ismineralturf(F)) + var/turf/closed/mineral/M = F + M.ScrapeAway(null, CHANGETURF_IGNORE_AIR) + +/obj/structure/spawner/ice_moon/demonic_portal/destroy_effect() + new /obj/effect/collapsing_demonic_portal(loc) + +/obj/structure/spawner/ice_moon/demonic_portal/drop_loot() + return + +/obj/structure/spawner/ice_moon/demonic_portal/ice_whelp + mob_types = list(/mob/living/simple_animal/hostile/asteroid/ice_whelp) + +/obj/structure/spawner/ice_moon/demonic_portal/snowlegion + mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/tendril) + +/obj/effect/collapsing_demonic_portal + name = "collapsing demonic portal" + desc = "It's slowly fading!" + layer = TABLE_LAYER + icon = 'icons/mob/nest.dmi' + icon_state = "nether" + anchored = TRUE + density = TRUE + +/obj/effect/collapsing_demonic_portal/Initialize() + . = ..() + playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, FALSE, 50, TRUE, TRUE) + visible_message("[src] begins to collapse, cutting it off from this world!") + animate(src, transform = matrix().Scale(0, 1), alpha = 50, time = 5 SECONDS) + addtimer(CALLBACK(src, .proc/collapse), 5 SECONDS) + +/obj/effect/collapsing_demonic_portal/proc/collapse() + visible_message("Something slips out of [src]!") + var/loot = rand(1, 28) + switch(loot) + if(1) + new /obj/item/clothing/suit/space/hardsuit/cult(loc) + if(2) + new /obj/item/clothing/glasses/godeye(loc) + if(3) + new /obj/item/reagent_containers/glass/bottle/potion/flight(loc) + if(4) + new /obj/item/organ/heart/cursed/wizard(loc) + if(5) + new /obj/item/jacobs_ladder(loc) + if(6) + new /obj/item/rod_of_asclepius(loc) + if(7) + new /obj/item/warp_cube/red(loc) + if(8) + new /obj/item/wisp_lantern(loc) + if(9) + new /obj/item/immortality_talisman(loc) + if(10) + new /obj/item/book/granter/spell/summonitem(loc) + if(11) + new /obj/item/clothing/neck/necklace/memento_mori(loc) + if(12) + new /obj/item/borg/upgrade/modkit/lifesteal(loc) + new /obj/item/bedsheet/cult(loc) + if(13) + new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(loc) + if(14) + new /obj/item/disk/design_disk/modkit_disc/bounty(loc) + if(15) + new /obj/item/ship_in_a_bottle(loc) + new /obj/item/oar(loc) + if(16) + new /obj/item/seeds/gatfruit(loc) + if(17) + new /obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola(loc) + if(18) + new /obj/item/assembly/signaler/anomaly/bluespace(loc) + if(19) + new /obj/item/disk/design_disk/modkit_disc/resonator_blast(loc) + if(20) + new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(loc) + if(21) + new /obj/item/slimepotion/transference(loc) + if(22) + new /obj/item/slime_extract/adamantine(loc) + if(23) + new /obj/item/weldingtool/abductor(loc) + if(24) + new /obj/structure/elite_tumor(loc) + if(25) + new /mob/living/simple_animal/hostile/retaliate/clown/clownhulk(loc) + if(26) + new /obj/item/clothing/shoes/winterboots/ice_boots(loc) + if(27) + new /obj/item/book/granter/spell/sacredflame(loc) + if(28) + new /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/doom(loc) + qdel(src) diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index b10ca8002c..38133d9089 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -32,7 +32,6 @@ /obj/structure/janitorialcart/proc/put_in_cart(obj/item/I, mob/user) if(!user.transferItemToLoc(I, src)) return - updateUsrDialog() to_chat(user, "You put [I] into [src].") return @@ -96,70 +95,82 @@ . = ..() if(.) return - user.set_machine(src) - var/dat + + var/list/items = list() if(mybag) - dat += "[mybag.name]
    " + items += list("Trash bag" = image(icon = mybag.icon, icon_state = mybag.icon_state)) if(mymop) - dat += "[mymop.name]
    " + items += list("Mop" = image(icon = mymop.icon, icon_state = mymop.icon_state)) if(mybroom) - dat += "[mybroom.name]
    " + items += list("Broom" = image(icon = mybroom.icon, icon_state = mybroom.icon_state)) if(myspray) - dat += "[myspray.name]
    " + items += list("Spray bottle" = image(icon = myspray.icon, icon_state = myspray.icon_state)) if(myreplacer) - dat += "[myreplacer.name]
    " - if(signs) - dat += "[signs] sign\s
    " - var/datum/browser/popup = new(user, "janicart", name, 240, 160) - popup.set_content(dat) - popup.open() + items += list("Light replacer" = image(icon = myreplacer.icon, icon_state = myreplacer.icon_state)) + var/obj/item/caution/sign = locate() in src + if(sign) + items += list("Sign" = image(icon = sign.icon, icon_state = sign.icon_state)) - -/obj/structure/janitorialcart/Topic(href, href_list) - if(!in_range(src, usr)) + if(!length(items)) return - if(!isliving(usr)) + items = sortList(items) + var/pick = show_radial_menu(user, src, items, custom_check = CALLBACK(src, .proc/check_menu, user), radius = 38, require_near = TRUE) + if(!pick) return - var/mob/living/user = usr - if(href_list["garbage"]) - if(mybag) + switch(pick) + if("Trash bag") + if(!mybag) + return user.put_in_hands(mybag) to_chat(user, "You take [mybag] from [src].") mybag = null - if(href_list["mop"]) - if(mymop) + if("Mop") + if(!mymop) + return user.put_in_hands(mymop) to_chat(user, "You take [mymop] from [src].") mymop = null - if(href_list["broom"]) - if(mybroom) + if("Broom") + if(!mybroom) + return user.put_in_hands(mybroom) to_chat(user, "You take [mybroom] from [src].") mybroom = null - if(href_list["spray"]) - if(myspray) + if("Spray bottle") + if(!myspray) + return user.put_in_hands(myspray) to_chat(user, "You take [myspray] from [src].") myspray = null - if(href_list["replacer"]) - if(myreplacer) + if("Light replacer") + if(!myreplacer) + return user.put_in_hands(myreplacer) to_chat(user, "You take [myreplacer] from [src].") myreplacer = null - if(href_list["sign"]) - if(signs) - var/obj/item/caution/Sign = locate() in src - if(Sign) - user.put_in_hands(Sign) - to_chat(user, "You take \a [Sign] from [src].") - signs-- - else - WARNING("Signs ([signs]) didn't match contents") - signs = 0 + if("Sign") + if(signs <= 0) + return + user.put_in_hands(sign) + to_chat(user, "You take \a [sign] from [src].") + signs-- + else + return update_icon() - updateUsrDialog() +/** + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + */ +/obj/structure/janitorialcart/proc/check_menu(mob/living/user) + if(!istype(user)) + return FALSE + if(user.incapacitated()) + return FALSE + return TRUE /obj/structure/janitorialcart/update_overlays() . = ..() diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm index 53a1f609d1..f321498bfd 100644 --- a/code/game/objects/structures/ladders.dm +++ b/code/game/objects/structures/ladders.dm @@ -91,8 +91,13 @@ if (!is_ghost && !in_range(src, user)) return + var/list/tool_list = list( + "Up" = image(icon = 'icons/testing/turf_analysis.dmi', icon_state = "red_arrow", dir = NORTH), + "Down" = image(icon = 'icons/testing/turf_analysis.dmi', icon_state = "red_arrow", dir = SOUTH) + ) + if (up && down) - var/result = alert("Go up or down [src]?", "Ladder", "Up", "Down", "Cancel") + var/result = show_radial_menu(user, src, tool_list, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) if (!is_ghost && !in_range(src, user)) return // nice try switch(result) @@ -112,6 +117,11 @@ if(!is_ghost) add_fingerprint(user) +/obj/structure/ladder/proc/check_menu(mob/user) + if(user.incapacitated() || !user.Adjacent(src)) + return FALSE + return TRUE + /obj/structure/ladder/attack_hand(mob/user) . = ..() if(.) diff --git a/code/game/objects/structures/lavaland/geyser.dm b/code/game/objects/structures/lavaland/geyser.dm new file mode 100644 index 0000000000..4f6256e9c4 --- /dev/null +++ b/code/game/objects/structures/lavaland/geyser.dm @@ -0,0 +1,86 @@ +//If you look at the "geyser_soup" overlay icon_state, you'll see that the first frame has 25 ticks. +//That's because the first 18~ ticks are completely skipped for some ungodly weird fucking byond reason + +/obj/structure/geyser + name = "geyser" + icon = 'icons/obj/lavaland/terrain.dmi' + icon_state = "geyser" + anchored = TRUE + + var/erupting_state = null //set to null to get it greyscaled from "[icon_state]_soup". Not very usable with the whole random thing, but more types can be added if you change the spawn prob + var/activated = FALSE //whether we are active and generating chems + var/reagent_id = /datum/reagent/fuel/oil + var/potency = 2 //how much reagents we add every process (2 seconds) + var/max_volume = 500 + var/start_volume = 50 + +/obj/structure/geyser/proc/start_chemming() + activated = TRUE + create_reagents(max_volume, DRAINABLE) + reagents.add_reagent(reagent_id, start_volume) + START_PROCESSING(SSfluids, src) //It's main function is to be plumbed, so use SSfluids + if(erupting_state) + icon_state = erupting_state + else + var/mutable_appearance/I = mutable_appearance('icons/obj/lavaland/terrain.dmi', "[icon_state]_soup") + I.color = mix_color_from_reagents(reagents.reagent_list) + add_overlay(I) + +/obj/structure/geyser/process() + if(activated && reagents.total_volume <= reagents.maximum_volume) //this is also evaluated in add_reagent, but from my understanding proc calls are expensive + reagents.add_reagent(reagent_id, potency) + +/obj/structure/geyser/plunger_act(obj/item/plunger/P, mob/living/user, _reinforced) + if(!_reinforced) + to_chat(user, "The [P.name] isn't strong enough!") + return + if(activated) + to_chat(user, "The [name] is already active!") + return + + to_chat(user, "You start vigorously plunging [src]!") + if(do_after(user, 50 * P.plunge_mod, target = src) && !activated) + start_chemming() + +/obj/structure/geyser/random + erupting_state = null + var/list/options = list(/datum/reagent/clf3 = 10, /datum/reagent/water/hollowwater = 10, /datum/reagent/medicine/omnizine/protozine = 6, /datum/reagent/wittel = 1) + +/obj/structure/geyser/random/Initialize() + . = ..() + reagent_id = pickweight(options) + +/obj/item/plunger + name = "plunger" + desc = "It's a plunger for plunging." + icon = 'icons/obj/watercloset.dmi' + icon_state = "plunger" + + slot_flags = ITEM_SLOT_MASK + + var/plunge_mod = 1 //time*plunge_mod = total time we take to plunge an object + var/reinforced = FALSE //whether we do heavy duty stuff like geysers + +/obj/item/plunger/attack_obj(obj/O, mob/living/user) + if(!O.plunger_act(src, user, reinforced)) + return ..() + +/obj/item/plunger/throw_impact(atom/hit_atom, datum/thrownthing/tt) + . = ..() + if(tt.target_zone != BODY_ZONE_HEAD) + return + if(iscarbon(hit_atom)) + var/mob/living/carbon/H = hit_atom + if(!H.wear_mask) + H.equip_to_slot_if_possible(src, ITEM_SLOT_MASK) + H.visible_message("The plunger slams into [H]'s face!", "The plunger suctions to your face!") + +/obj/item/plunger/reinforced + name = "reinforced plunger" + desc = "It's an M. 7 Reinforced Plunger© for heavy duty plunging." + icon_state = "reinforced_plunger" + + reinforced = TRUE + plunge_mod = 0.8 + + custom_premium_price = 1200 diff --git a/code/game/objects/structures/lavaland/necropolis_tendril.dm b/code/game/objects/structures/lavaland/necropolis_tendril.dm index 6ce0228f54..2911babd83 100644 --- a/code/game/objects/structures/lavaland/necropolis_tendril.dm +++ b/code/game/objects/structures/lavaland/necropolis_tendril.dm @@ -25,6 +25,9 @@ /obj/structure/spawner/lavaland/legion mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril) +/obj/structure/spawner/lavaland/icewatcher + mob_types = list(/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing) + GLOBAL_LIST_INIT(tendrils, list()) /obj/structure/spawner/lavaland/Initialize() . = ..() @@ -94,4 +97,4 @@ GLOBAL_LIST_INIT(tendrils, list()) for(var/turf/T in range(2,src)) if(!T.density) T.TerraformTurf(/turf/open/chasm/lavaland, /turf/open/chasm/lavaland, flags = CHANGETURF_INHERIT_AIR) - qdel(src) \ No newline at end of file + qdel(src) diff --git a/code/game/objects/structures/loom.dm b/code/game/objects/structures/loom.dm index 2244742f3a..ad128b01c2 100644 --- a/code/game/objects/structures/loom.dm +++ b/code/game/objects/structures/loom.dm @@ -38,7 +38,4 @@ user.show_message("You weave \the [S.name] into a workable fabric.", MSG_VISUAL) return TRUE -/obj/structure/loom/unanchored - anchored = FALSE - #undef FABRIC_PER_SHEET \ No newline at end of file diff --git a/code/game/objects/structures/loot_pile.dm b/code/game/objects/structures/loot_pile.dm new file mode 100644 index 0000000000..b6249ec1e4 --- /dev/null +++ b/code/game/objects/structures/loot_pile.dm @@ -0,0 +1,66 @@ + /* + * Loot piles structures, somewhat inspired from Polaris 13 ones but without the one search per pile ckey/mind restriction + * because the actual code is located its own element and has enough variables already. the piles themselves merely cosmetical. + */ +/obj/structure/loot_pile + name = "pile of junk" + desc = "Lots of junk lying around. They say one man's trash is another man's treasure." + icon = 'icons/obj/loot_piles.dmi' + icon_state = "randompile" + density = FALSE + anchored = TRUE + var/loot_amount = 5 + var/delete_on_depletion = FALSE + var/can_use_hands = TRUE + var/scavenge_time = 12 SECONDS + var/allowed_tools = list(TOOL_SHOVEL = 0.6) //list of tool_behaviours with associated speed multipliers (lower is better) + var/icon_states_to_use = list("junk_pile1", "junk_pile2", "junk_pile3", "junk_pile4", "junk_pile5") + var/list/loot + + /* + * Associated values in this list are not weights but numbers of times the kery can be rolled + * before being removed from ALL piles with same kind. This is why I wanted 'scavenging' to be an element and not a component. + */ + var/list/unique_loot + + /* + * used for restrictions such as "one per mind", "one per ckey". Depending on the setting, these can be either limited to + * the current pile or shared throughout all atoms attached to this element. + */ + var/loot_restriction = NO_LOOT_RESTRICTION + var/maximum_loot_per_player = 1 + +/obj/structure/loot_pile/Initialize() + . = ..() + icon_state = pick(icon_states_to_use) + +/obj/structure/loot_pile/ComponentInitialize() + . = ..() + if(loot) + AddElement(/datum/element/scavenging, loot_amount, loot, unique_loot, scavenge_time, can_use_hands, allowed_tools, null, delete_on_depletion, loot_restriction, maximum_loot_per_player) + +//uses the maintenance_loot global list, mostly boring stuff and mices. +/obj/structure/loot_pile/maint + name = "trash pile" + desc = "A heap of garbage, but maybe there's something interesting inside?" + density = TRUE + layer = TABLE_LAYER + climbable = TRUE + pass_flags = LETPASSTHROW + loot = list( + SCAVENGING_FOUND_NOTHING = 50, + SCAVENGING_SPAWN_MOUSE = 10, + SCAVENGING_SPAWN_MICE = 5, + SCAVENGING_SPAWN_TOM = 1, + /obj/item/clothing/gloves/color/yellow = 0.5) + unique_loot = list(/obj/item/clothing/gloves/color/yellow = 5, SCAVENGING_SPAWN_TOM = 1) + +/obj/structure/loot_pile/maint/ComponentInitialize() + var/static/safe_maint_items + if(!safe_maint_items) + safe_maint_items = list() + for(var/A in GLOB.maintenance_loot) + if(ispath(A, /obj/item)) + safe_maint_items[A] = GLOB.maintenance_loot[A] + loot += safe_maint_items + return ..() diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index be783f387e..e32def727a 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -159,7 +159,7 @@ if(H.dna.species.use_skintones) var/list/choices = GLOB.skin_tones - if(CONFIG_GET(number/allow_custom_skintones)) + if(CONFIG_GET(flag/allow_custom_skintones)) choices += "custom" var/new_s_tone = input(H, "Choose your skin tone:", "Race change") as null|anything in choices if(new_s_tone) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 6d9e30b25f..19106f5fc4 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -341,7 +341,7 @@ GLOBAL_LIST_EMPTY(crematoriums) to_chat(user, "That's not connected to anything!") /obj/structure/tray/MouseDrop_T(atom/movable/O as mob|obj, mob/user) - if(!ismovableatom(O) || O.anchored || !Adjacent(user) || !user.Adjacent(O) || O.loc == user) + if(!ismovable(O) || O.anchored || !Adjacent(user) || !user.Adjacent(O) || O.loc == user) return if(!ismob(O)) if(!istype(O, /obj/structure/closet/body_bag)) @@ -383,6 +383,6 @@ GLOBAL_LIST_EMPTY(crematoriums) /obj/structure/tray/m_tray/CanAStarPass(ID, dir, caller) . = !density - if(ismovableatom(caller)) + if(ismovable(caller)) var/atom/movable/mover = caller . = . || (mover.pass_flags & PASSTABLE) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 550c0216c6..30e451aa14 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -103,7 +103,7 @@ /obj/structure/table/CanAStarPass(ID, dir, caller) . = !density - if(ismovableatom(caller)) + if(ismovable(caller)) var/atom/movable/mover = caller . = . || (mover.pass_flags & PASSTABLE) @@ -175,8 +175,8 @@ if(!click_params || !click_params["icon-x"] || !click_params["icon-y"]) return //Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the table turf) - I.pixel_x = CLAMP(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2) - I.pixel_y = CLAMP(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) + I.pixel_x = clamp(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2) + I.pixel_y = clamp(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) return 1 else return ..() @@ -211,7 +211,7 @@ /obj/structure/table/greyscale icon = 'icons/obj/smooth_structures/table_greyscale.dmi' icon_state = "table" - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS buildstack = null //No buildstack, so generate from mat datums /* @@ -610,7 +610,7 @@ /obj/structure/rack/CanAStarPass(ID, dir, caller) . = !density - if(ismovableatom(caller)) + if(ismovable(caller)) var/atom/movable/mover = caller . = . || (mover.pass_flags & PASSTABLE) diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm index 17ca178cd9..c3b388fc29 100644 --- a/code/game/objects/structures/transit_tubes/station.dm +++ b/code/game/objects/structures/transit_tubes/station.dm @@ -152,8 +152,8 @@ pod_moving = 0 if(!QDELETED(pod)) var/datum/gas_mixture/floor_mixture = loc.return_air() - ARCHIVE_TEMPERATURE(floor_mixture) - ARCHIVE_TEMPERATURE(pod.air_contents) + ARCHIVE(floor_mixture) + ARCHIVE(pod.air_contents) pod.air_contents.share(floor_mixture, 1) //mix the pod's gas mixture with the tile it's on air_update_turf() diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index 04c3909696..4544cab3da 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -169,8 +169,7 @@ if(do_after(user, 40, target = src)) if(!src || !anchored || src.state != "01") return - var/obj/item/stack/cable_coil/CC = W - if(!CC.use(1)) + if(!W.use_tool(src, user, 0, 1)) to_chat(user, "You need more cable to do this!") return to_chat(user, "You wire the windoor.") diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 5dd4e7d987..e4d93ea8de 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -1,3 +1,18 @@ +#define NOT_ELECTROCHROMATIC 0 +#define ELECTROCHROMATIC_OFF 1 +#define ELECTROCHROMATIC_DIMMED 2 + +GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) + +/proc/do_electrochromatic_toggle(new_status, id) + var/list/windows = GLOB.electrochromatic_window_lookup["[id]"] + if(!windows) + return + var/obj/structure/window/W //define outside for performance because obviously this matters. + for(var/i in windows) + W = i + new_status? W.electrochromatic_dim() : W.electrochromatic_off() + /obj/structure/window name = "window" desc = "A window." @@ -28,8 +43,15 @@ rad_insulation = RAD_VERY_LIGHT_INSULATION rad_flags = RAD_PROTECT_CONTENTS + /// Electrochromatic status + var/electrochromatic_status = NOT_ELECTROCHROMATIC + /// Electrochromatic ID. Set the first character to ! to replace with a SSmapping generated pseudorandom obfuscated ID for mapping purposes. + var/electrochromatic_id + /obj/structure/window/examine(mob/user) . = ..() + if(electrochromatic_status != NOT_ELECTROCHROMATIC) + . += "The window has electrochromatic circuitry on it." if(reinf) if(anchored && state == WINDOW_SCREWED_TO_FRAME) . += "The window is screwed to the frame." @@ -52,6 +74,10 @@ if(reinf && anchored) state = WINDOW_SCREWED_TO_FRAME + if(mapload && electrochromatic_id) + if(copytext(electrochromatic_id, 1, 2) == "!") + electrochromatic_id = SSmapping.get_obfuscated_id(electrochromatic_id) + ini_dir = dir air_update_turf(1) @@ -62,6 +88,12 @@ real_explosion_block = explosion_block explosion_block = EXPLOSION_BLOCK_PROC + if(electrochromatic_status != NOT_ELECTROCHROMATIC) + var/old = electrochromatic_status + make_electrochromatic() + if(old == ELECTROCHROMATIC_DIMMED) + electrochromatic_dim() + /obj/structure/window/ComponentInitialize() . = ..() AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, .proc/can_be_rotated),CALLBACK(src,.proc/after_rotation)) @@ -177,6 +209,24 @@ to_chat(user, "[src] is already in good condition!") return + if(istype(I, /obj/item/electronics/electrochromatic_kit) && user.a_intent == INTENT_HELP) + var/obj/item/electronics/electrochromatic_kit/K = I + if(electrochromatic_status != NOT_ELECTROCHROMATIC) + to_chat(user, "[src] is already electrochromatic!") + return + if(anchored) + to_chat(user, "[src] must not be attached to the floor!") + return + if(!K.id) + to_chat(user, "[K] has no ID set!") + return + if(!user.temporarilyRemoveItemFromInventory(K)) + to_chat(user, "[K] is stuck to your hand!") + return + user.visible_message("[user] upgrades [src] with [I].", "You upgrade [src] with [I].") + make_electrochromatic(K.id) + qdel(K) + if(!(flags_1&NODECONSTRUCT_1)) if(istype(I, /obj/item/screwdriver)) I.play_tool_sound(src, 75) @@ -224,6 +274,91 @@ air_update_turf(TRUE) update_nearby_icons() +/obj/structure/window/proc/spraycan_paint(paint_color) + if(color_hex2num(paint_color) < 255) + set_opacity(255) + else + set_opacity(initial(opacity)) + add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY) + +/obj/structure/window/proc/electrochromatic_dim() + if(electrochromatic_status == ELECTROCHROMATIC_DIMMED) + return + electrochromatic_status = ELECTROCHROMATIC_DIMMED + animate(src, color = "#222222", time = 2) + set_opacity(TRUE) + +/obj/structure/window/proc/electrochromatic_off() + if(electrochromatic_status == ELECTROCHROMATIC_OFF) + return + electrochromatic_status = ELECTROCHROMATIC_OFF + var/current = color + update_atom_colour() + var/newcolor = color + color = current + animate(src, color = newcolor, time = 2) + +/obj/structure/window/proc/remove_electrochromatic() + electrochromatic_off() + electrochromatic_status = NOT_ELECTROCHROMATIC + if(!electrochromatic_id) + return + var/list/L = GLOB.electrochromatic_window_lookup["[electrochromatic_id]"] + if(L) + L -= src + electrochromatic_id = null + +/obj/structure/window/vv_edit_var(var_name, var_value) + var/check_status + if(var_name == NAMEOF(src, electrochromatic_id)) + if(electrochromatic_id && GLOB.electrochromatic_window_lookup["[electrochromatic_id]"]) + GLOB.electrochromatic_window_lookup[electrochromatic_id] -= src + if(var_name == NAMEOF(src, electrochromatic_status)) + check_status = TRUE + . = ..() //do this first incase it runtimes. + if(var_name == NAMEOF(src, electrochromatic_id)) + if((electrochromatic_status != NOT_ELECTROCHROMATIC) && electrochromatic_id) + LAZYINITLIST(GLOB.electrochromatic_window_lookup[electrochromatic_id]) + GLOB.electrochromatic_window_lookup[electrochromatic_id] += src + if(check_status) + if(electrochromatic_status == NOT_ELECTROCHROMATIC) + remove_electrochromatic() + return + else if(electrochromatic_status == ELECTROCHROMATIC_OFF) + if(!electrochromatic_id) + return + else + make_electrochromatic() + electrochromatic_off() + return + else if(electrochromatic_status == ELECTROCHROMATIC_DIMMED) + if(!electrochromatic_id) + return + else + make_electrochromatic() + electrochromatic_dim() + return + else + remove_electrochromatic() + +/obj/structure/window/proc/make_electrochromatic(new_id = electrochromatic_id) + remove_electrochromatic() + if(!new_id) + CRASH("Attempted to make electrochromatic with null ID.") + electrochromatic_id = new_id + electrochromatic_status = ELECTROCHROMATIC_OFF + LAZYINITLIST(GLOB.electrochromatic_window_lookup["[electrochromatic_id]"]) + GLOB.electrochromatic_window_lookup[electrochromatic_id] |= src + +/obj/structure/window/update_atom_colour() + if((electrochromatic_status != ELECTROCHROMATIC_OFF) && (electrochromatic_status != ELECTROCHROMATIC_DIMMED)) + return FALSE + . = ..() + if(color && (color_hex2num(color) < 255)) + set_opacity(255) + else + set_opacity(FALSE) + /obj/structure/window/proc/check_state(checked_state) if(state == checked_state) return TRUE @@ -263,7 +398,6 @@ if(BURN) playsound(src, 'sound/items/Welder.ogg', 100, 1) - /obj/structure/window/deconstruct(disassembled = TRUE) if(QDELETED(src)) return @@ -272,6 +406,9 @@ if(!(flags_1 & NODECONSTRUCT_1)) for(var/obj/item/shard/debris in spawnDebris(drop_location())) transfer_fingerprints_to(debris) // transfer fingerprints to shards only + if(electrochromatic_status != NOT_ELECTROCHROMATIC) //eh fine keep your kit. + new /obj/item/electronics/electrochromatic_kit(drop_location()) + // Intentionally not setting the ID so you can't decon one to know all of the IDs. qdel(src) update_nearby_icons() @@ -315,9 +452,9 @@ density = FALSE air_update_turf(1) update_nearby_icons() + remove_electrochromatic() return ..() - /obj/structure/window/Move() var/turf/T = loc . = ..() @@ -731,7 +868,6 @@ set_opacity(TRUE) queue_smooth(src) - /obj/structure/window/paperframe/attackby(obj/item/W, mob/user) if(W.get_temperature()) fire_act(W.get_temperature()) @@ -749,3 +885,7 @@ return ..() update_icon() + +#undef NOT_ELECTROCHROMATIC +#undef ELECTROCHROMATIC_OFF +#undef ELECTROCHROMATIC_DIMMED diff --git a/code/game/say.dm b/code/game/say.dm index 85ae9f0681..187994f432 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -25,7 +25,7 @@ GLOBAL_LIST_INIT(freqtospan, list( return spans |= speech_span if(!language) - language = get_default_language() + language = get_selected_language() send_speech(message, 7, src, , spans, message_language=language) /atom/movable/proc/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode, atom/movable/source) @@ -96,21 +96,26 @@ GLOBAL_LIST_INIT(freqtospan, list( return "[say_mod(input, message_mode)][spanned ? ", \"[spanned]\"" : ""]" // Citadel edit [spanned ? ", \"[spanned]\"" : ""]" -/atom/movable/proc/lang_treat(atom/movable/speaker, datum/language/language, raw_message, list/spans, message_mode) +/// Quirky citadel proc for our custom sayverbs to strip the verb out. Snowflakey as hell, say rewrite 3.0 when? +/atom/movable/proc/quoteless_say_quote(input, list/spans = list(speech_span), message_mode) + var/pos = findtext(input, "*") + return pos? copytext(input, pos + 1) : input + +/atom/movable/proc/lang_treat(atom/movable/speaker, datum/language/language, raw_message, list/spans, message_mode, no_quote = FALSE) if(has_language(language)) var/atom/movable/AM = speaker.GetSource() if(AM) //Basically means "if the speaker is virtual" - return AM.say_quote(raw_message, spans, message_mode) + return no_quote ? AM.quoteless_say_quote(raw_message, spans, message_mode) : AM.say_quote(raw_message, spans, message_mode) else - return speaker.say_quote(raw_message, spans, message_mode) + return no_quote ? speaker.quoteless_say_quote(raw_message, spans, message_mode) : speaker.say_quote(raw_message, spans, message_mode) else if(language) var/atom/movable/AM = speaker.GetSource() var/datum/language/D = GLOB.language_datum_instances[language] raw_message = D.scramble(raw_message) if(AM) - return AM.say_quote(raw_message, spans, message_mode) + return no_quote ? AM.quoteless_say_quote(raw_message, spans, message_mode) : AM.say_quote(raw_message, spans, message_mode) else - return speaker.say_quote(raw_message, spans, message_mode) + return no_quote ? speaker.quoteless_say_quote(raw_message, spans, message_mode) : speaker.say_quote(raw_message, spans, message_mode) else return "makes a strange sound." diff --git a/code/game/turfs/change_turf.dm b/code/game/turfs/change_turf.dm index bc4cd8df33..3a719d05b9 100644 --- a/code/game/turfs/change_turf.dm +++ b/code/game/turfs/change_turf.dm @@ -256,9 +256,9 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( if(depth) var/list/target_baseturfs if(length(copytarget.baseturfs)) - // with default inputs this would be Copy(CLAMP(2, -INFINITY, baseturfs.len)) + // with default inputs this would be Copy(clamp(2, -INFINITY, baseturfs.len)) // Don't forget a lower index is lower in the baseturfs stack, the bottom is baseturfs[1] - target_baseturfs = copytarget.baseturfs.Copy(CLAMP(1 + ignore_bottom, 1 + copytarget.baseturfs.len - depth, copytarget.baseturfs.len)) + target_baseturfs = copytarget.baseturfs.Copy(clamp(1 + ignore_bottom, 1 + copytarget.baseturfs.len - depth, copytarget.baseturfs.len)) else if(!ignore_bottom) target_baseturfs = list(copytarget.baseturfs) if(target_baseturfs) diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index 9e593cafce..99c7ed8231 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -134,6 +134,15 @@ icon = 'icons/turf/walls.dmi' icon_state = "icerock" +/turf/closed/indestructible/rock/snow/ice/ore + icon = 'icons/turf/walls/icerock_wall.dmi' + icon_state = "icerock" + smooth = SMOOTH_MORE|SMOOTH_BORDER + canSmoothWith = list (/turf/closed) + pixel_x = -4 + pixel_y = -4 + + /turf/closed/indestructible/paper name = "thick paper wall" desc = "A wall layered with impenetrable sheets of paper." diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index d5b5cfc695..b81c5be44c 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -110,6 +110,9 @@ if(prob(12)) icon_state = "necro[rand(2,3)]" +/turf/open/indestructible/necropolis/ice + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + /turf/open/indestructible/necropolis/air initial_gas_mix = OPENTURF_DEFAULT_ATMOS diff --git a/code/game/turfs/openspace/openspace.dm b/code/game/turfs/openspace/openspace.dm index 66507e7053..90fab29611 100644 --- a/code/game/turfs/openspace/openspace.dm +++ b/code/game/turfs/openspace/openspace.dm @@ -1,7 +1,20 @@ +GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdrop, new) + +/atom/movable/openspace_backdrop + name = "openspace_backdrop" + + anchored = TRUE + + icon = 'icons/turf/floors.dmi' + icon_state = "grey" + plane = OPENSPACE_BACKDROP_PLANE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + layer = SPLASHSCREEN_LAYER + /turf/open/openspace name = "open space" desc = "Watch your step!" - icon_state = "grey" + icon_state = "transparent" baseturfs = /turf/open/openspace CanAtmosPassVertical = ATMOS_PASS_YES //mouse_opacity = MOUSE_OPACITY_TRANSPARENT @@ -14,8 +27,9 @@ /turf/open/openspace/Initialize() // handle plane and layer here so that they don't cover other obs/turfs in Dream Maker . = ..() - plane = FLOOR_OPENSPACE_PLANE + plane = OPENSPACE_PLANE layer = OPENSPACE_LAYER + vis_contents += GLOB.openspace_backdrop_one_for_all //Special grey square for projecting backdrop darkness filter on it. return INITIALIZE_HINT_LATELOAD /turf/open/openspace/LateInitialize() @@ -132,3 +146,13 @@ PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) return TRUE return FALSE + +/turf/open/openspace/icemoon + name = "ice chasm" + baseturfs = /turf/open/openspace/icemoon + can_cover_up = FALSE + can_build_on = FALSE + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + +/turf/open/openspace/icemoon/can_zFall(atom/movable/A, levels = 1, turf/target) + return TRUE diff --git a/code/game/turfs/simulated/chasm.dm b/code/game/turfs/simulated/chasm.dm index dab0c1c376..5e8f55feed 100644 --- a/code/game/turfs/simulated/chasm.dm +++ b/code/game/turfs/simulated/chasm.dm @@ -88,6 +88,15 @@ light_power = 0.65 //less bright, too light_color = LIGHT_COLOR_LAVA //let's just say you're falling into lava, that makes sense right +// Chasms for Ice moon, with planetary atmos and glow +/turf/open/chasm/icemoon + icon = 'icons/turf/floors/icechasms.dmi' + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + planetary_atmos = TRUE + baseturfs = /turf/open/chasm/icemoon + light_range = 1.9 + light_power = 0.65 + light_color = LIGHT_COLOR_PURPLE // Chasms for the jungle, with planetary atmos and a different icon /turf/open/chasm/jungle @@ -115,4 +124,4 @@ . = ..() var/turf/T = safepick(get_area_turfs(/area/fabric_of_reality)) if(T) - set_target(T) \ No newline at end of file + set_target(T) diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 720490942a..9f5ce679f9 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -48,7 +48,9 @@ "oldburning","light-on-r","light-on-y","light-on-g","light-on-b", "wood", "carpetsymbol", "carpetstar", "carpetcorner", "carpetside", "carpet", "ironsand1", "ironsand2", "ironsand3", "ironsand4", "ironsand5", "ironsand6", "ironsand7", "ironsand8", "ironsand9", "ironsand10", "ironsand11", - "ironsand12", "ironsand13", "ironsand14", "ironsand15") + "ironsand12", "ironsand13", "ironsand14", "ironsand15", + "snow", "snow0", "snow1", "snow2", "snow3", "snow4", "snow5", "snow6", "snow7", "snow8", "snow9", "snow10", "snow11", "snow12", "snow-ice", "snow_dug", + "unsmooth", "smooth", "1-i", "2-i", "3-i", "4-i", "1-n", "2-n", "3-s", "4-s", "1-w", "2-e", "3-w", "4-e", "1-nw", "2-ne", "3-sw", "4-se", "1-f", "2-f", "3-f", "4-f") if(broken || burnt || (icon_state in icons_to_ignore_at_floor_init)) //so damaged/burned tiles or plating icons aren't saved as the default icon_regular_floor = "floor" else diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm index 053b18d8d2..1fbeee7523 100644 --- a/code/game/turfs/simulated/floor/plating/asteroid.dm +++ b/code/game/turfs/simulated/floor/plating/asteroid.dm @@ -13,11 +13,15 @@ barefootstep = FOOTSTEP_SAND clawfootstep = FOOTSTEP_SAND heavyfootstep = FOOTSTEP_GENERIC_HEAVY + /// Environment type for the turf var/environment_type = "asteroid" + /// Base turf type to be created by the tunnel var/turf_type = /turf/open/floor/plating/asteroid //Because caves do whacky shit to revert to normal - var/floor_variance = 20 //probability floor has a different icon state + /// Probability the floor has a different icon state + var/floor_variance = 20 attachment_holes = FALSE var/obj/item/stack/digResult = /obj/item/stack/ore/glass/basalt + /// Whether the turf has been dug or not var/dug /turf/open/floor/plating/asteroid/Initialize() @@ -27,6 +31,7 @@ if(prob(floor_variance)) icon_state = "[environment_type][rand(0,12)]" +/// Drops itemstack when dug and changes icon /turf/open/floor/plating/asteroid/proc/getDug() new digResult(src, 5) if(postdig_icon_change) @@ -35,6 +40,7 @@ icon_state = "[environment_type]_dug" dug = TRUE +/// If the user can dig the turf /turf/open/floor/plating/asteroid/proc/can_dig(mob/user) if(!dug) return TRUE @@ -135,16 +141,30 @@ #define SPAWN_BUBBLEGUM 6 /turf/open/floor/plating/asteroid/airless/cave + /// Length of the tunnel var/length = 100 + /// Mobs that can spawn in the tunnel, weighted list var/list/mob_spawn_list + /// Megafauna that can spawn in the tunnel, weighted list var/list/megafauna_spawn_list + /// Flora that can spawn in the tunnel, weighted list var/list/flora_spawn_list + /// Turf type to choose when spawning in tunnel at 1% chance, weighted list + var/list/choose_turf_type + /// if the tunnel should keep being created var/sanity = 1 + /// Cave direction to move var/forward_cave_dir = 1 + /// Backwards cave direction for tracking var/backward_cave_dir = 2 + /// If the tunnel is moving backwards var/going_backwards = TRUE + /// If this is a cave creating type var/has_data = FALSE + /// The non-cave creating type var/data_having_type = /turf/open/floor/plating/asteroid/airless/cave/has_data + /// Option tunnel width, wegihted list + var/list/pick_tunnel_width turf_type = /turf/open/floor/plating/asteroid/airless /turf/open/floor/plating/asteroid/airless/cave/has_data //subtype for producing a tunnel with given data @@ -163,6 +183,46 @@ /turf/open/floor/plating/asteroid/airless/cave/volcanic/has_data //subtype for producing a tunnel with given data has_data = TRUE +/turf/open/floor/plating/asteroid/airless/cave/snow + gender = PLURAL + name = "snow" + desc = "Looks cold." + icon = 'icons/turf/snow.dmi' + baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon + icon_state = "snow" + icon_plating = "snow" + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + slowdown = 2 + environment_type = "snow" + flags_1 = NONE + planetary_atmos = TRUE + burnt_states = list("snow_dug") + bullet_sizzle = TRUE + bullet_bounce_sound = null + digResult = /obj/item/stack/sheet/mineral/snow + mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/wolf = 50, /obj/structure/spawner/ice_moon = 3, \ + /mob/living/simple_animal/hostile/asteroid/polarbear = 30, /obj/structure/spawner/ice_moon/polarbear = 3, \ + /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow = 50, /mob/living/simple_animal/hostile/asteroid/goldgrub = 10) + flora_spawn_list = list(/obj/structure/flora/tree/pine = 2, /obj/structure/flora/grass/both = 12, /obj/structure/flora/rock/icy = 6, /obj/structure/flora/rock/pile/icy = 6) + data_having_type = /turf/open/floor/plating/asteroid/airless/cave/snow/has_data + turf_type = /turf/open/floor/plating/asteroid/snow/icemoon + choose_turf_type = list(/turf/open/floor/plating/asteroid/snow/icemoon = 19, /turf/open/floor/plating/ice/icemoon = 1) + pick_tunnel_width = list("1" = 6, "2" = 1) + +/turf/open/floor/plating/asteroid/airless/cave/snow/underground + mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/ice_demon = 50, /obj/structure/spawner/ice_moon/demonic_portal = 3, \ + /mob/living/simple_animal/hostile/asteroid/ice_whelp = 30, /obj/structure/spawner/ice_moon/demonic_portal/ice_whelp = 3, \ + /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow = 50, /obj/structure/spawner/ice_moon/demonic_portal/snowlegion = 3) + flora_spawn_list = list(/obj/structure/flora/rock/icy = 6, /obj/structure/flora/rock/pile/icy = 6) + data_having_type = /turf/open/floor/plating/asteroid/airless/cave/snow/underground/has_data + choose_turf_type = null + +/turf/open/floor/plating/asteroid/airless/cave/snow/has_data //subtype for producing a tunnel with given data + has_data = TRUE + +/turf/open/floor/plating/asteroid/airless/cave/snow/underground/has_data //subtype for producing a tunnel with given data + has_data = TRUE + /turf/open/floor/plating/asteroid/airless/cave/Initialize() if (!mob_spawn_list) mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/goldgrub = 1, /mob/living/simple_animal/hostile/asteroid/goliath = 5, /mob/living/simple_animal/hostile/asteroid/basilisk = 4, /mob/living/simple_animal/hostile/asteroid/hivelord = 3) @@ -175,6 +235,7 @@ if(!has_data) produce_tunnel_from_data() +/// Sets the tunnel length and direction /turf/open/floor/plating/asteroid/airless/cave/proc/get_cave_data(set_length, exclude_dir = -1) // If set_length (arg1) isn't defined, get a random length; otherwise assign our length to the length arg. if(!set_length) @@ -187,6 +248,7 @@ // Get the opposite direction of our facing direction backward_cave_dir = angle2dir(dir2angle(forward_cave_dir) + 180) +/// Gets the tunnel length and direction then makes the tunnel /turf/open/floor/plating/asteroid/airless/cave/proc/produce_tunnel_from_data(tunnel_length, excluded_dir = -1) get_cave_data(tunnel_length, excluded_dir) // Make our tunnels @@ -196,10 +258,22 @@ // Kill ourselves by replacing ourselves with a normal floor. SpawnFloor(src) +/** + * Makes the tunnel and spawns things inside of it + * + * Picks a tunnel width for the tunnel and then starts spawning turfs in the direction it moves in + * Can randomly change directions of the tunnel, stops if it hits the edge of the map, or a no tunnel area + * Can randomly make new tunnels out of itself + * + */ /turf/open/floor/plating/asteroid/airless/cave/proc/make_tunnel(dir) var/turf/closed/mineral/tunnel = src var/next_angle = pick(45, -45) + var/tunnel_width = 1 + if(pick_tunnel_width) + tunnel_width = text2num(pickweight(pick_tunnel_width)) + for(var/i = 0; i < length; i++) if(!sanity) break @@ -210,9 +284,11 @@ // Expand the edges of our tunnel for(var/edge_angle in L) - var/turf/closed/mineral/edge = get_step(tunnel, angle2dir(dir2angle(dir) + edge_angle)) - if(istype(edge)) - SpawnFloor(edge) + var/turf/closed/mineral/edge = tunnel + for(var/current_tunnel_width = 1 to tunnel_width) + edge = get_step(edge, angle2dir(dir2angle(dir) + edge_angle)) + if(istype(edge)) + SpawnFloor(edge) if(!sanity) break @@ -223,9 +299,12 @@ if(istype(tunnel)) // Small chance to have forks in our tunnel; otherwise dig our tunnel. if(i > 3 && prob(20)) - if(istype(tunnel.loc, /area/mine/explored) || (istype(tunnel.loc, /area/lavaland/surface/outdoors) && !istype(tunnel.loc, /area/lavaland/surface/outdoors/unexplored))) - sanity = 0 - break + if(isarea(tunnel.loc)) + + var/area/A = tunnel.loc + if(!A.tunnel_allowed) + sanity = 0 + break var/turf/open/floor/plating/asteroid/airless/cave/C = tunnel.ChangeTurf(data_having_type, null, CHANGETURF_IGNORE_AIR) C.going_backwards = FALSE C.produce_tunnel_from_data(rand(10, 15), dir) @@ -241,26 +320,35 @@ setDir(angle2dir(dir2angle(dir) )+ next_angle) +/// Spawns the floor of the tunnel and any type of structure or mob it can have /turf/open/floor/plating/asteroid/airless/cave/proc/SpawnFloor(turf/T) - for(var/S in RANGE_TURFS(1, src)) - var/turf/NT = S - if(!NT || isspaceturf(NT) || istype(NT.loc, /area/mine/explored) || (istype(NT.loc, /area/lavaland/surface/outdoors) && !istype(NT.loc, /area/lavaland/surface/outdoors/unexplored))) - sanity = 0 - break - if(!sanity) + var/area/A = T.loc + if(!A.tunnel_allowed) + sanity = 0 return - SpawnFlora(T) - - SpawnMonster(T) + if(choose_turf_type) + turf_type = pickweight(choose_turf_type) + if(turf_type == initial(turf_type)) // Don't spawn different turf types under flora or terrain + var/spawned_flora = FALSE + if(is_mining_level(z)) + spawned_flora = SpawnFlora(T) + if(!spawned_flora) // no rocks beneath mob spawners / mobs. + SpawnMonster(T) T.ChangeTurf(turf_type, null, CHANGETURF_IGNORE_AIR) +/// Spawns a random mob or megafauna in the tunnel /turf/open/floor/plating/asteroid/airless/cave/proc/SpawnMonster(turf/T) + if(!isarea(loc)) + return + var/area/A = loc if(prob(30)) - if(istype(loc, /area/mine/explored) || !istype(loc, /area/lavaland/surface/outdoors/unexplored)) + if(!A.mob_spawn_allowed) return var/randumb = pickweight(mob_spawn_list) + if(!randumb) + return while(randumb == SPAWN_MEGAFAUNA) - if(istype(loc, /area/lavaland/surface/outdoors/unexplored/danger)) //this is danger. it's boss time. + if(A.megafauna_spawn_allowed && megafauna_spawn_list && megafauna_spawn_list.len) //this is danger. it's boss time. var/maybe_boss = pickweight(megafauna_spawn_list) if(megafauna_spawn_list[maybe_boss]) randumb = maybe_boss @@ -278,22 +366,26 @@ return //prevents tendrils spawning in each other's collapse range new randumb(T) - return + return TRUE #undef SPAWN_MEGAFAUNA #undef SPAWN_BUBBLEGUM +/// Spawns a random flora in the tunnel, can spawn clumps of them. /turf/open/floor/plating/asteroid/airless/cave/proc/SpawnFlora(turf/T) if(prob(12)) - if(istype(loc, /area/mine/explored) || istype(loc, /area/lavaland/surface/outdoors/explored)) - return + if(isarea(loc)) + var/area/A = loc + if(!A.flora_allowed) + return var/randumb = pickweight(flora_spawn_list) - for(var/obj/structure/flora/ash/F in range(4, T)) //Allows for growing patches, but not ridiculous stacks of flora + if(!randumb) + return + for(var/obj/structure/flora/F in range(4, T)) // Allows for growing patches, but not ridiculous stacks of flora if(!istype(F, randumb)) return new randumb(T) - - + return TRUE /turf/open/floor/plating/asteroid/snow gender = PLURAL @@ -322,6 +414,15 @@ return TRUE return FALSE +/turf/open/floor/plating/asteroid/snow/icemoon + baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + +/turf/open/lava/plasma/ice_moon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + baseturfs = /turf/open/lava/plasma/ice_moon + planetary_atmos = TRUE + /turf/open/floor/plating/asteroid/snow/ice name = "icy snow" desc = "Looks colder." @@ -336,6 +437,15 @@ clawfootstep = FOOTSTEP_HARD_CLAW heavyfootstep = FOOTSTEP_GENERIC_HEAVY +/turf/open/floor/plating/asteroid/snow/ice/icemoon + baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + planetary_atmos = TRUE + +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel + icon = 'icons/turf/floors.dmi' + icon_state = "solarpanel" + /turf/open/floor/plating/asteroid/snow/ice/burn_tile() return FALSE @@ -347,4 +457,4 @@ /turf/open/floor/plating/asteroid/snow/atmosphere initial_gas_mix = FROZEN_ATMOS - planetary_atmos = FALSE \ No newline at end of file + planetary_atmos = FALSE diff --git a/code/game/turfs/simulated/floor/plating/misc_plating.dm b/code/game/turfs/simulated/floor/plating/misc_plating.dm index 5c58d99e1a..23e32ebfe3 100644 --- a/code/game/turfs/simulated/floor/plating/misc_plating.dm +++ b/code/game/turfs/simulated/floor/plating/misc_plating.dm @@ -3,6 +3,10 @@ icon_state = "plating" initial_gas_mix = AIRLESS_ATMOS +/turf/open/floor/plating/icemoon + icon_state = "plating" + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + /turf/open/floor/plating/abductor name = "alien floor" icon_state = "alienpod1" @@ -209,6 +213,8 @@ /turf/open/floor/plating/ice/burn_tile() return +/turf/open/floor/plating/ice/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS /turf/open/floor/plating/snowed name = "snowed-over plating" @@ -240,4 +246,6 @@ /turf/open/floor/plating/snowed/temperatre temperature = 255.37 +/turf/open/floor/plating/snowed/smoothed/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index 7e1b39cb39..7d476d559e 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -147,6 +147,11 @@ var/mineralChance = 13 var/display_icon_state = "rock" +/turf/closed/mineral/random/more_caves + mineralSpawnChanceList = list(/turf/closed/mineral/uranium = 5, /turf/closed/mineral/diamond = 1, /turf/closed/mineral/gold = 10, + /turf/closed/mineral/silver = 12, /turf/closed/mineral/plasma = 20, /turf/closed/mineral/iron = 40, /turf/closed/mineral/titanium = 11, + /turf/closed/mineral/gibtonite = 4, /turf/open/floor/plating/asteroid/airless/cave = 15, /turf/closed/mineral/bscrystal = 1) + /turf/closed/mineral/random/Initialize() mineralSpawnChanceList = typelist("mineralSpawnChanceList", mineralSpawnChanceList) @@ -195,11 +200,27 @@ turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface initial_gas_mix = LAVALAND_DEFAULT_ATMOS - defer_change = 1 + defer_change = TRUE mineralSpawnChanceList = list( /turf/closed/mineral/uranium/volcanic = 35, /turf/closed/mineral/diamond/volcanic = 30, /turf/closed/mineral/gold/volcanic = 45, /turf/closed/mineral/titanium/volcanic = 45, /turf/closed/mineral/silver/volcanic = 50, /turf/closed/mineral/plasma/volcanic = 50, /turf/closed/mineral/bscrystal/volcanic = 20) +/turf/closed/mineral/random/high_chance/snow + name = "snowy mountainside" + icon = 'icons/turf/mining.dmi' + smooth_icon = 'icons/turf/walls/mountain_wall.dmi' + icon_state = "mountainrock" + smooth = SMOOTH_MORE|SMOOTH_BORDER + canSmoothWith = list (/turf/closed) + defer_change = TRUE + environment_type = "snow" + turf_type = /turf/open/floor/plating/asteroid/snow/icemoon + baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + mineralSpawnChanceList = list( + /turf/closed/mineral/uranium/ice/icemoon = 35, /turf/closed/mineral/diamond/ice/icemoon = 30, /turf/closed/mineral/gold/ice/icemoon = 45, /turf/closed/mineral/titanium/ice/icemoon = 45, + /turf/closed/mineral/silver/ice/icemoon = 50, /turf/closed/mineral/plasma/ice/icemoon = 50, /turf/closed/mineral/bscrystal/ice/icemoon = 20) + /turf/closed/mineral/random/high_chance/earth_like icon_state = "rock_highchance_oxy" turf_type = /turf/open/floor/plating/asteroid @@ -236,7 +257,7 @@ turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface initial_gas_mix = LAVALAND_DEFAULT_ATMOS - defer_change = 1 + defer_change = TRUE mineralChance = 10 mineralSpawnChanceList = list( @@ -244,6 +265,36 @@ /turf/closed/mineral/silver/volcanic = 12, /turf/closed/mineral/plasma/volcanic = 20, /turf/closed/mineral/iron/volcanic = 40, /turf/closed/mineral/gibtonite/volcanic = 4, /turf/open/floor/plating/asteroid/airless/cave/volcanic = 1, /turf/closed/mineral/bscrystal/volcanic = 1) +/turf/closed/mineral/random/volcanic/more_caves + mineralSpawnChanceList = list( + /turf/closed/mineral/uranium/volcanic = 5, /turf/closed/mineral/diamond/volcanic = 1, /turf/closed/mineral/gold/volcanic = 10, /turf/closed/mineral/titanium/volcanic = 11, + /turf/closed/mineral/silver/volcanic = 12, /turf/closed/mineral/plasma/volcanic = 20, /turf/closed/mineral/iron/volcanic = 40, + /turf/closed/mineral/gibtonite/volcanic = 4, /turf/open/floor/plating/asteroid/airless/cave/volcanic = 15, /turf/closed/mineral/bscrystal/volcanic = 1) + +/turf/closed/mineral/random/snow + name = "snowy mountainside" + icon = 'icons/turf/mining.dmi' + smooth_icon = 'icons/turf/walls/mountain_wall.dmi' + icon_state = "mountainrock" + smooth = SMOOTH_MORE|SMOOTH_BORDER + canSmoothWith = list (/turf/closed) + defer_change = TRUE + environment_type = "snow" + turf_type = /turf/open/floor/plating/asteroid/snow/icemoon + baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + + mineralChance = 10 + mineralSpawnChanceList = list( + /turf/closed/mineral/uranium/ice/icemoon = 5, /turf/closed/mineral/diamond/ice/icemoon = 1, /turf/closed/mineral/gold/ice/icemoon = 10, /turf/closed/mineral/titanium/ice/icemoon = 11, + /turf/closed/mineral/silver/ice/icemoon = 12, /turf/closed/mineral/plasma/ice/icemoon = 20, /turf/closed/mineral/iron/ice/icemoon = 40, + /turf/closed/mineral/gibtonite/ice/icemoon = 4, /turf/open/floor/plating/asteroid/airless/cave/snow = 1, /turf/closed/mineral/bscrystal/ice/icemoon = 1) + +/turf/closed/mineral/random/snow/no_caves + mineralSpawnChanceList = list( + /turf/closed/mineral/uranium/ice/icemoon = 5, /turf/closed/mineral/diamond/ice/icemoon = 1, /turf/closed/mineral/gold/ice/icemoon = 10, /turf/closed/mineral/titanium/ice/icemoon = 11, + /turf/closed/mineral/silver/ice/icemoon = 12, /turf/closed/mineral/plasma/ice/icemoon = 20, /turf/closed/mineral/iron/ice/icemoon = 40, + /turf/closed/mineral/gibtonite/ice/icemoon = 4, /turf/closed/mineral/bscrystal/ice/icemoon = 1) /turf/closed/mineral/random/labormineral mineralSpawnChanceList = list( @@ -252,18 +303,51 @@ /turf/closed/mineral/gibtonite = 2) icon_state = "rock_labor" +/turf/closed/mineral/random/snow/underground + mineralSpawnChanceList = list( + /turf/closed/mineral/uranium/ice/icemoon = 5, /turf/closed/mineral/diamond/ice/icemoon = 1, /turf/closed/mineral/gold/ice/icemoon = 10, /turf/closed/mineral/titanium/ice/icemoon = 11, + /turf/closed/mineral/silver/ice/icemoon = 12, /turf/closed/mineral/plasma/ice/icemoon = 20, /turf/closed/mineral/iron/ice/icemoon = 40, + /turf/closed/mineral/gibtonite/ice/icemoon = 4, /turf/open/floor/plating/asteroid/airless/cave/snow/underground = 1, /turf/closed/mineral/bscrystal/ice/icemoon = 1) + +/turf/closed/mineral/random/snow/more_caves + mineralSpawnChanceList = list( + /turf/closed/mineral/uranium/ice/icemoon = 5, /turf/closed/mineral/diamond/ice/icemoon = 1, /turf/closed/mineral/gold/ice/icemoon = 10, /turf/closed/mineral/titanium/ice/icemoon = 11, + /turf/closed/mineral/silver/ice/icemoon = 12, /turf/closed/mineral/plasma/ice/icemoon = 20, /turf/closed/mineral/iron/ice/icemoon = 40, + /turf/closed/mineral/gibtonite/ice/icemoon = 4, /turf/open/floor/plating/asteroid/airless/cave/snow = 15, /turf/closed/mineral/bscrystal/ice/icemoon = 1) + /turf/closed/mineral/random/labormineral/volcanic environment_type = "basalt" turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface initial_gas_mix = LAVALAND_DEFAULT_ATMOS - defer_change = 1 + defer_change = TRUE mineralSpawnChanceList = list( /turf/closed/mineral/uranium/volcanic = 3, /turf/closed/mineral/diamond/volcanic = 1, /turf/closed/mineral/gold/volcanic = 8, /turf/closed/mineral/titanium/volcanic = 8, /turf/closed/mineral/silver/volcanic = 20, /turf/closed/mineral/plasma/volcanic = 30, /turf/closed/mineral/bscrystal/volcanic = 1, /turf/closed/mineral/gibtonite/volcanic = 2, /turf/closed/mineral/iron/volcanic = 95) +//Subtypes for placing ores manually. +/turf/closed/mineral/random/labormineral/ice + name = "snowy mountainside" + icon = 'icons/turf/mining.dmi' + smooth_icon = 'icons/turf/walls/mountain_wall.dmi' + icon_state = "mountainrock" + smooth = SMOOTH_MORE|SMOOTH_BORDER + canSmoothWith = list (/turf/closed) + defer_change = TRUE + environment_type = "snow" + turf_type = /turf/open/floor/plating/asteroid/snow/icemoon + baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + + defer_change = TRUE + mineralSpawnChanceList = list( + /turf/closed/mineral/uranium/ice/icemoon = 3, /turf/closed/mineral/diamond/ice/icemoon = 1, /turf/closed/mineral/gold/ice/icemoon = 8, /turf/closed/mineral/titanium/ice/icemoon = 8, + /turf/closed/mineral/silver/ice/icemoon = 20, /turf/closed/mineral/plasma/ice/icemoon = 30, /turf/closed/mineral/bscrystal/ice/icemoon = 1, /turf/closed/mineral/gibtonite/ice/icemoon = 2, + /turf/closed/mineral/iron/ice/icemoon = 95) + + /turf/closed/mineral/iron mineralType = /obj/item/stack/ore/iron @@ -294,6 +378,11 @@ initial_gas_mix = FROZEN_ATMOS defer_change = TRUE +/turf/closed/mineral/iron/ice/icemoon + turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon + baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + /turf/closed/mineral/uranium mineralType = /obj/item/stack/ore/uranium @@ -306,7 +395,21 @@ turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface initial_gas_mix = LAVALAND_DEFAULT_ATMOS - defer_change = 1 + defer_change = TRUE + +/turf/closed/mineral/uranium/ice + environment_type = "snow_cavern" + icon_state = "icerock_Uranium" + smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + turf_type = /turf/open/floor/plating/asteroid/snow/ice + baseturfs = /turf/open/floor/plating/asteroid/snow/ice + initial_gas_mix = FROZEN_ATMOS + defer_change = TRUE + +/turf/closed/mineral/uranium/ice/icemoon + turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon + baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS /turf/closed/mineral/uranium/earth_like icon_state = "rock_oxy" @@ -327,7 +430,7 @@ turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface initial_gas_mix = LAVALAND_DEFAULT_ATMOS - defer_change = 1 + defer_change = TRUE /turf/closed/mineral/diamond/earth_like icon_state = "rock_oxy" @@ -345,6 +448,11 @@ initial_gas_mix = FROZEN_ATMOS defer_change = TRUE +/turf/closed/mineral/diamond/ice/icemoon + turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon + baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + /turf/closed/mineral/gold mineralType = /obj/item/stack/ore/gold @@ -357,7 +465,7 @@ turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface initial_gas_mix = LAVALAND_DEFAULT_ATMOS - defer_change = 1 + defer_change = TRUE /turf/closed/mineral/gold/earth_like icon_state = "rock_oxy" @@ -366,6 +474,19 @@ initial_gas_mix = OPENTURF_DEFAULT_ATMOS defer_change = TRUE +/turf/closed/mineral/gold/ice + environment_type = "snow_cavern" + icon_state = "icerock_gold" + smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + turf_type = /turf/open/floor/plating/asteroid/snow/ice + baseturfs = /turf/open/floor/plating/asteroid/snow/ice + initial_gas_mix = FROZEN_ATMOS + defer_change = TRUE + +/turf/closed/mineral/gold/ice/icemoon + turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon + baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS /turf/closed/mineral/silver mineralType = /obj/item/stack/ore/silver @@ -378,7 +499,7 @@ turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface initial_gas_mix = LAVALAND_DEFAULT_ATMOS - defer_change = 1 + defer_change = TRUE /turf/closed/mineral/silver/earth_like icon_state = "rock_oxy" @@ -387,6 +508,19 @@ initial_gas_mix = OPENTURF_DEFAULT_ATMOS defer_change = TRUE +/turf/closed/mineral/silver/ice + environment_type = "snow_cavern" + icon_state = "icerock_silver" + smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + turf_type = /turf/open/floor/plating/asteroid/snow/ice + baseturfs = /turf/open/floor/plating/asteroid/snow/ice + initial_gas_mix = FROZEN_ATMOS + defer_change = TRUE + +/turf/closed/mineral/silver/ice/icemoon + turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon + baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS /turf/closed/mineral/titanium mineralType = /obj/item/stack/ore/titanium @@ -399,7 +533,7 @@ turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface initial_gas_mix = LAVALAND_DEFAULT_ATMOS - defer_change = 1 + defer_change = TRUE /turf/closed/mineral/titanium/earth_like icon_state = "rock_oxy" @@ -408,6 +542,19 @@ initial_gas_mix = OPENTURF_DEFAULT_ATMOS defer_change = TRUE +/turf/closed/mineral/titanium/ice + environment_type = "snow_cavern" + icon_state = "icerock_titanium" + smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + turf_type = /turf/open/floor/plating/asteroid/snow/ice + baseturfs = /turf/open/floor/plating/asteroid/snow/ice + initial_gas_mix = FROZEN_ATMOS + defer_change = TRUE + +/turf/closed/mineral/titanium/ice/icemoon + turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon + baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS /turf/closed/mineral/plasma mineralType = /obj/item/stack/ore/plasma @@ -420,7 +567,7 @@ turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface initial_gas_mix = LAVALAND_DEFAULT_ATMOS - defer_change = 1 + defer_change = TRUE /turf/closed/mineral/plasma/earth_like icon_state = "rock_oxy" @@ -438,6 +585,10 @@ initial_gas_mix = FROZEN_ATMOS defer_change = TRUE +/turf/closed/mineral/plasma/ice/icemoon + turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon + baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS /turf/closed/mineral/bananium @@ -454,6 +605,21 @@ initial_gas_mix = OPENTURF_DEFAULT_ATMOS defer_change = TRUE +/turf/closed/mineral/bananium/ice + environment_type = "snow_cavern" + icon_state = "icerock_Bananium" + smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + turf_type = /turf/open/floor/plating/asteroid/snow/ice + baseturfs = /turf/open/floor/plating/asteroid/snow/ice + initial_gas_mix = FROZEN_ATMOS + defer_change = TRUE + +/turf/closed/mineral/bananium/ice/icemoon + turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon + baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + + /turf/closed/mineral/bscrystal mineralType = /obj/item/stack/ore/bluespace_crystal mineralAmt = 1 @@ -466,7 +632,7 @@ turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface initial_gas_mix = LAVALAND_DEFAULT_ATMOS - defer_change = 1 + defer_change = TRUE /turf/closed/mineral/bscrystal/earth_like icon_state = "rock_oxy" @@ -475,6 +641,19 @@ initial_gas_mix = OPENTURF_DEFAULT_ATMOS defer_change = TRUE +/turf/closed/mineral/bscrystal/ice + environment_type = "snow_cavern" + icon_state = "icerock_BScrystal" + smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + turf_type = /turf/open/floor/plating/asteroid/snow/ice + baseturfs = /turf/open/floor/plating/asteroid/snow/ice + initial_gas_mix = FROZEN_ATMOS + defer_change = TRUE + +/turf/closed/mineral/bscrystal/ice/icemoon + turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon + baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS /turf/closed/mineral/volcanic environment_type = "basalt" @@ -486,7 +665,7 @@ environment_type = "basalt" turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - defer_change = 1 + defer_change = TRUE /turf/closed/mineral/earth_like icon_state = "rock_oxy" @@ -506,7 +685,7 @@ initial_gas_mix = LAVALAND_DEFAULT_ATMOS environment_type = "waste" turf_type = /turf/open/floor/plating/ashplanet/rocky - defer_change = 1 + defer_change = TRUE /turf/closed/mineral/snowmountain name = "snowy mountainside" @@ -521,6 +700,11 @@ turf_type = /turf/open/floor/plating/asteroid/snow defer_change = TRUE +/turf/closed/mineral/snowmountain/icemoon + turf_type = /turf/open/floor/plating/asteroid/snow/icemoon + baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + /turf/closed/mineral/snowmountain/cavern name = "ice cavern rock" icon = 'icons/turf/mining.dmi' @@ -532,6 +716,11 @@ environment_type = "snow_cavern" turf_type = /turf/open/floor/plating/asteroid/snow/ice +/turf/closed/mineral/snowmountain/cavern/icemoon + baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon + turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + //GIBTONITE /turf/closed/mineral/gibtonite @@ -634,7 +823,7 @@ turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface initial_gas_mix = LAVALAND_DEFAULT_ATMOS - defer_change = 1 + defer_change = TRUE /turf/closed/mineral/gibtonite/earth_like icon_state = "rock_oxy" @@ -642,3 +831,18 @@ baseturfs = /turf/open/floor/plating/asteroid initial_gas_mix = OPENTURF_DEFAULT_ATMOS defer_change = TRUE + + +/turf/closed/mineral/gibtonite/ice + environment_type = "snow_cavern" + icon_state = "icerock_Gibtonite" + smooth_icon = 'icons/turf/walls/icerock_wall.dmi' + turf_type = /turf/open/floor/plating/asteroid/snow/ice + baseturfs = /turf/open/floor/plating/asteroid/snow/ice + initial_gas_mix = FROZEN_ATMOS + defer_change = TRUE + +/turf/closed/mineral/gibtonite/ice/icemoon + turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon + baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon + initial_gas_mix = ICEMOON_DEFAULT_ATMOS diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index f31649eaca..88f6dd6962 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -1,6 +1,8 @@ /turf icon = 'icons/turf/floors.dmi' level = 1 + vis_flags = VIS_INHERIT_PLANE|VIS_INHERIT_ID //when this be added to vis_contents of something it inherit something.plane and be associatet with something on clicking, + //important for visualisation of turf in openspace and interraction with openspace that show you turf. var/intact = 1 @@ -441,7 +443,7 @@ for(var/V in contents) var/atom/A = V if(!QDELETED(A) && A.level >= affecting_level) - if(ismovableatom(A)) + if(ismovable(A)) var/atom/movable/AM = A if(!AM.ex_check(explosion_id)) continue diff --git a/code/game/world.dm b/code/game/world.dm index ef0bc8b633..4ffa3292ee 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -8,11 +8,12 @@ GLOBAL_LIST(topic_status_cache) //This happens after the Master subsystem new(s) (it's a global datum) //So subsystems globals exist, but are not initialised /world/New() + var/extools = world.GetConfig("env", "EXTOOLS_DLL") || "./byond-extools.dll" + if (fexists(extools)) + call(extools, "maptick_initialize")() enable_debugger() -#if DM_VERSION >= 513 && DM_BUILD >= 1506 world.Profile(PROFILE_START) -#endif log_world("World loaded at [TIME_STAMP("hh:mm:ss", FALSE)]!") @@ -301,8 +302,8 @@ GLOBAL_LIST(topic_status_cache) if(SSmapping.config) // this just stops the runtime, honk. features += "[SSmapping.config.map_name]" //CIT CHANGE - makes the hub entry display the current map - if(get_security_level())//CIT CHANGE - makes the hub entry show the security level - features += "[get_security_level()] alert" + if(NUM2SECLEVEL(GLOB.security_level))//CIT CHANGE - makes the hub entry show the security level + features += "[NUM2SECLEVEL(GLOB.security_level)] alert" if (n > 1) features += "~[n] players" diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 4a7e818125..a2e2b3c122 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -429,6 +429,10 @@ for(var/datum/dynamic_ruleset/roundstart/rule in GLOB.dynamic_forced_roundstart_ruleset) dat += {"-> [rule.name] <-
    "} dat += "(Clear Rulesets)
    " + dat += "(Force Storyteller)
    " + if (GLOB.dynamic_forced_storyteller) + var/datum/dynamic_storyteller/S = GLOB.dynamic_forced_storyteller + dat += "-> [initial(S.name)] <-
    " dat += "(Dynamic mode options)
    " else if (SSticker.IsRoundInProgress()) dat += "(Force Next Latejoin Ruleset)
    " @@ -690,7 +694,7 @@ var/prev_dynamic_voting = CONFIG_GET(flag/dynamic_voting) CONFIG_SET(flag/dynamic_voting,!prev_dynamic_voting) if (!prev_dynamic_voting) - to_chat(world, "Vote is now a ranked choice of dynamic storytellers.") + to_chat(world, "Vote is now between dynamic storytellers.") else to_chat(world, "Vote is now between extended and secret.") log_admin("[key_name(usr)] [prev_dynamic_voting ? "disabled" : "enabled"] dynamic voting.") diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 3c4d8d764a..15c45c9b3e 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -81,7 +81,7 @@ GLOBAL_PROTECT(admin_verbs_admin) ) GLOBAL_LIST_INIT(admin_verbs_ban, list(/client/proc/unban_panel, /client/proc/DB_ban_panel, /client/proc/stickybanpanel)) GLOBAL_PROTECT(admin_verbs_ban) -GLOBAL_LIST_INIT(admin_verbs_sounds, list(/client/proc/play_local_sound, /client/proc/play_sound, /client/proc/set_round_end_sound)) +GLOBAL_LIST_INIT(admin_verbs_sounds, list(/client/proc/play_local_sound, /client/proc/play_sound, /client/proc/manual_play_web_sound, /client/proc/set_round_end_sound)) GLOBAL_PROTECT(admin_verbs_sounds) GLOBAL_LIST_INIT(admin_verbs_fun, list( /client/proc/cmd_admin_dress, @@ -364,7 +364,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) log_admin("[key_name(usr)] admin ghosted.") message_admins("[key_name_admin(usr)] admin ghosted.") var/mob/body = mob - body.ghostize(1) + body.ghostize(1, voluntary = TRUE) if(body && !body.key) body.key = "@[key]" //Haaaaaaaack. But the people have spoken. If it breaks; blame adminbus SSblackbox.record_feedback("tally", "admin_verb", 1, "Admin Ghost") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/callproc/callproc.dm b/code/modules/admin/callproc/callproc.dm index 3de5e39ff4..c13353b7cd 100644 --- a/code/modules/admin/callproc/callproc.dm +++ b/code/modules/admin/callproc/callproc.dm @@ -120,7 +120,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) //adv proc call this, ya nerds /world/proc/WrapAdminProcCall(datum/target, procname, list/arguments) if(target == GLOBAL_PROC) - return call(procname)(arglist(arguments)) + return call(text2path("/proc/[procname]"))(arglist(arguments)) else if(target != world) return call(target, procname)(arglist(arguments)) else diff --git a/code/modules/admin/sound_emitter.dm b/code/modules/admin/sound_emitter.dm index 702e2071bd..56c778dc85 100644 --- a/code/modules/admin/sound_emitter.dm +++ b/code/modules/admin/sound_emitter.dm @@ -95,7 +95,7 @@ var/new_volume = input(user, "Choose a volume.", "Sound Emitter", sound_volume) as null|num if(isnull(new_volume)) return - new_volume = CLAMP(new_volume, 0, 100) + new_volume = clamp(new_volume, 0, 100) sound_volume = new_volume to_chat(user, "Volume set to [sound_volume]%.") if(href_list["edit_mode"]) @@ -118,7 +118,7 @@ var/new_radius = input(user, "Choose a radius.", "Sound Emitter", sound_volume) as null|num if(isnull(new_radius)) return - new_radius = CLAMP(new_radius, 0, 127) + new_radius = clamp(new_radius, 0, 127) play_radius = new_radius to_chat(user, "Audible radius set to [play_radius].") if(href_list["play"]) diff --git a/code/modules/admin/sql_message_system.dm b/code/modules/admin/sql_message_system.dm index 7b59e72403..356746ddbc 100644 --- a/code/modules/admin/sql_message_system.dm +++ b/code/modules/admin/sql_message_system.dm @@ -393,7 +393,7 @@ var/nsd = CONFIG_GET(number/note_stale_days) var/nfd = CONFIG_GET(number/note_fresh_days) if (agegate && type == "note" && isnum(nsd) && isnum(nfd) && nsd > nfd) - var/alpha = CLAMP(100 - (age - nfd) * (85 / (nsd - nfd)), 15, 100) + var/alpha = clamp(100 - (age - nfd) * (85 / (nsd - nfd)), 15, 100) if (alpha < 100) if (alpha <= 15) if (skipped) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 62c2dc900c..042a6e0fe9 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1394,6 +1394,32 @@ log_admin("[key_name(usr)] removed [rule] from the forced roundstart rulesets.") message_admins("[key_name(usr)] removed [rule] from the forced roundstart rulesets.", 1) + else if(href_list["f_dynamic_storyteller"]) + if(!check_rights(R_ADMIN)) + return + if(SSticker && SSticker.mode) + return alert(usr, "The game has already started.", null, null, null, null) + if(GLOB.master_mode != "dynamic") + return alert(usr, "The game mode has to be dynamic mode.", null, null, null, null) + var/list/choices = list() + for(var/T in config.storyteller_cache) + var/datum/dynamic_storyteller/S = T + choices[initial(S.name)] = T + var/choice = choices[input("Select storyteller:", "Storyteller", "Classic") as null|anything in choices] + if(choice) + GLOB.dynamic_forced_storyteller = choice + log_admin("[key_name(usr)] forced the storyteller to [GLOB.dynamic_forced_storyteller].") + message_admins("[key_name(usr)] forced the storyteller to [GLOB.dynamic_forced_storyteller].") + Game() + + else if(href_list["f_dynamic_storyteller_clear"]) + if(!check_rights(R_ADMIN)) + return + GLOB.dynamic_forced_storyteller = null + Game() + log_admin("[key_name(usr)] cleared the forced storyteller. The mode will pick one as normal.") + message_admins("[key_name(usr)] cleared the forced storyteller. The mode will pick one as normal.", 1) + else if(href_list["f_dynamic_latejoin"]) if(!check_rights(R_ADMIN)) return @@ -2363,7 +2389,7 @@ return var/list/offset = splittext(href_list["offset"],",") - var/number = CLAMP(text2num(href_list["object_count"]), 1, 100) + var/number = clamp(text2num(href_list["object_count"]), 1, 100) var/X = offset.len > 0 ? text2num(offset[1]) : 0 var/Y = offset.len > 1 ? text2num(offset[2]) : 0 var/Z = offset.len > 2 ? text2num(offset[3]) : 0 diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index 14906bc83a..26736ddff1 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -764,7 +764,6 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null for(var/arg in arguments) new_args[++new_args.len] = SDQL_expression(source, arg) if(object == GLOB) // Global proc. - procname = "/proc/[procname]" return superuser? (call(procname)(new_args)) : (WrapAdminProcCall(GLOBAL_PROC, procname, new_args)) return superuser? (call(object, procname)(new_args)) : (WrapAdminProcCall(object, procname, new_args)) diff --git a/code/modules/admin/verbs/borgpanel.dm b/code/modules/admin/verbs/borgpanel.dm index beec54265e..35f4ddb3e5 100644 --- a/code/modules/admin/verbs/borgpanel.dm +++ b/code/modules/admin/verbs/borgpanel.dm @@ -85,7 +85,7 @@ if ("set_charge") var/newcharge = input("New charge (0-[borg.cell.maxcharge]):", borg.name, borg.cell.charge) as num|null if (newcharge) - borg.cell.charge = CLAMP(newcharge, 0, borg.cell.maxcharge) + borg.cell.charge = clamp(newcharge, 0, borg.cell.maxcharge) message_admins("[key_name_admin(user)] set the charge of [ADMIN_LOOKUPFLW(borg)] to [borg.cell.charge].") log_admin("[key_name(user)] set the charge of [key_name(borg)] to [borg.cell.charge].") if ("remove_cell") diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index e67176029a..8406248164 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -705,10 +705,17 @@ var/list/names = list() names += "---- Space Ruins ----" for(var/name in SSmapping.space_ruins_templates) - names[name] = list(SSmapping.space_ruins_templates[name], ZTRAIT_SPACE_RUINS, /area/space) + names[name] = list(SSmapping.space_ruins_templates[name], ZTRAIT_SPACE_RUINS, list(/area/space)) names += "---- Lava Ruins ----" for(var/name in SSmapping.lava_ruins_templates) names[name] = list(SSmapping.lava_ruins_templates[name], ZTRAIT_LAVA_RUINS, /area/lavaland/surface/outdoors/unexplored) + names[name] = list(SSmapping.lava_ruins_templates[name], ZTRAIT_LAVA_RUINS, list(/area/lavaland/surface/outdoors/unexplored)) + names += "---- Ice Ruins ----" + for(var/name in SSmapping.ice_ruins_templates) + names[name] = list(SSmapping.ice_ruins_templates[name], ZTRAIT_ICE_RUINS, list(/area/icemoon/surface/outdoors/unexplored, /area/icemoon/underground/unexplored)) + names += "---- Ice Underground Ruins ----" + for(var/name in SSmapping.ice_ruins_underground_templates) + names[name] = list(SSmapping.ice_ruins_underground_templates[name], ZTRAIT_ICE_RUINS_UNDERGROUND, list(/area/icemoon/underground/unexplored)) var/ruinname = input("Select ruin", "Spawn Ruin") as null|anything in names var/data = names[ruinname] diff --git a/code/modules/admin/verbs/map_template_loadverb.dm b/code/modules/admin/verbs/map_template_loadverb.dm index d71cdca991..e89c3ad5a6 100644 --- a/code/modules/admin/verbs/map_template_loadverb.dm +++ b/code/modules/admin/verbs/map_template_loadverb.dm @@ -18,9 +18,12 @@ var/image/item = image('icons/turf/overlays.dmi',S,"greenOverlay") item.plane = ABOVE_LIGHTING_PLANE preview += item + var/list/orientations = list("South" = SOUTH, "North" = NORTH, "East" = EAST, "West" = WEST) + var/choice = input(src, "Which orientation? Maps are normally facing SOUTH.", "Template Orientation", "South") as null|anything in orientations + var/orientation = orientations[choice] images += preview if(alert(src,"Confirm location.","Template Confirm","Yes","No") == "Yes") - if(template.load(T, centered = TRUE)) + if(template.load(T, centered = TRUE, orientation = orientation)) message_admins("[key_name_admin(src)] has placed a map template ([template.name]) at [ADMIN_COORDJMP(T)]") else to_chat(src, "Failed to place map") diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm index cbbec40f85..e7b9342645 100644 --- a/code/modules/admin/verbs/playsound.dm +++ b/code/modules/admin/verbs/playsound.dm @@ -10,7 +10,7 @@ var/freq = input(usr, "What frequency would you like the sound to play at?",, 1) as null|num if(!freq) freq = 1 - vol = CLAMP(vol, 1, 100) + vol = clamp(vol, 1, 100) var/sound/admin_sound = new() admin_sound.file = S @@ -138,6 +138,49 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Play Internet Sound") +/client/proc/manual_play_web_sound() + set category = "Fun" + set name = "Manual Play Internet Sound" + if(!check_rights(R_SOUNDS)) + return + + var/web_sound_input = input("Enter content stream URL (fetch this from local youtube-dl!)", "Play Internet Sound via direct URL") as text|null + if(istext(web_sound_input)) + if(!length(web_sound_input)) + log_admin("[key_name(src)] stopped web sound") + message_admins("[key_name(src)] stopped web sound") + var/mob/M + for(var/i in GLOB.player_list) + M = i + M?.client?.chatOutput?.stopMusic() + return + else + if(web_sound_input && !findtext(web_sound_input, GLOB.is_http_protocol)) + to_chat(src, "BLOCKED: Content URL not using http(s) protocol") + return + var/freq = input(usr, "What frequency would you like the sound to play at?",, 1) as null|num + if(isnull(freq)) + return + if(!freq) + freq = 1 + SSblackbox.record_feedback("nested tally", "played_url", 1, list("[ckey]", "[web_sound_input]")) + var/logstr = "[key_name(src)] played web sound at freq [freq]: [web_sound_input]" + log_admin(logstr) + message_admins(logstr) + var/mob/M + var/client/C + var/datum/chatOutput/O + for(var/i in GLOB.player_list) + M = i + C = M.client + if(!(C?.prefs?.toggles & SOUND_MIDI)) + continue + O = C.chatOutput + if(!O || O.broken || !O.loaded) + continue + O.sendMusic(web_sound_input, freq) + SSblackbox.record_feedback("tally", "admin_verb", 1, "Manual Play Internet Sound") + /client/proc/set_round_end_sound(S as sound) set category = "Fun" set name = "Set Round End Sound" diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index d27a654b95..9d27658074 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1372,3 +1372,47 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits else message_admins("[key_name_admin(usr)] has [newstate ? "activated" : "deactivated"] job exp exempt status on [key_name_admin(C)]") log_admin("[key_name(usr)] has [newstate ? "activated" : "deactivated"] job exp exempt status on [key_name(C)]") + +/// Allow admin to add or remove traits of datum +/datum/admins/proc/modify_traits(datum/D) + if(!D) + return + + var/add_or_remove = input("Remove/Add?", "Trait Remove/Add") as null|anything in list("Add","Remove") + if(!add_or_remove) + return + var/list/availible_traits = list() + + switch(add_or_remove) + if("Add") + for(var/key in GLOB.traits_by_type) + if(istype(D,key)) + availible_traits += GLOB.traits_by_type[key] + if("Remove") + if(!GLOB.trait_name_map) + GLOB.trait_name_map = generate_trait_name_map() + for(var/trait in D.status_traits) + var/name = GLOB.trait_name_map[trait] || trait + availible_traits[name] = trait + + var/chosen_trait = input("Select trait to modify", "Trait") as null|anything in sortList(availible_traits) + if(!chosen_trait) + return + chosen_trait = availible_traits[chosen_trait] + + var/source = "adminabuse" + switch(add_or_remove) + if("Add") //Not doing source choosing here intentionally to make this bit faster to use, you can always vv it. + ADD_TRAIT(D,chosen_trait,source) + if("Remove") + var/specific = input("All or specific source ?", "Trait Remove/Add") as null|anything in list("All","Specific") + if(!specific) + return + switch(specific) + if("All") + source = null + if("Specific") + source = input("Source to be removed","Trait Remove/Add") as null|anything in sortList(D.status_traits[chosen_trait]) + if(!source) + return + REMOVE_TRAIT(D,chosen_trait,source) diff --git a/code/modules/admin/view_variables/modify_variables.dm b/code/modules/admin/view_variables/modify_variables.dm index a4ed4d45bd..5f80b3a5e4 100644 --- a/code/modules/admin/view_variables/modify_variables.dm +++ b/code/modules/admin/view_variables/modify_variables.dm @@ -194,9 +194,10 @@ GLOBAL_PROTECT(VVpixelmovement) else variable = L[index] //EXPERIMENTAL - Keep old associated value while modifying key, if any - var/found = L[variable] - if(!isnull(found)) - old_assoc_value = found + if(IS_VALID_ASSOC_KEY(variable)) + var/found = L[variable] + if(!isnull(found)) + old_assoc_value = found // default = vv_get_class(objectvar, variable) diff --git a/code/modules/admin/view_variables/topic_basic.dm b/code/modules/admin/view_variables/topic_basic.dm index 2a0f3d7302..d6e4c2b944 100644 --- a/code/modules/admin/view_variables/topic_basic.dm +++ b/code/modules/admin/view_variables/topic_basic.dm @@ -47,5 +47,33 @@ usr.client.debug_variables(src) if(href_list[VV_HK_MARK]) usr.client.mark_datum(target) + if(href_list[VV_HK_ADDCOMPONENT]) + if(!check_rights(NONE)) + return + var/list/names = list() + var/list/componentsubtypes = subtypesof(/datum/component) + names += "---Components---" + names += componentsubtypes + names += "---Elements---" + names += subtypesof(/datum/element) + var/result = input(usr, "Choose a component/element to add","better know what ur fuckin doin pal") as null|anything in names + if(!usr || !result || result == "---Components---" || result == "---Elements---") + return + if(QDELETED(src)) + to_chat(usr, "That thing doesn't exist anymore!") + return + var/list/lst = get_callproc_args() + if(!lst) + return + var/datumname = "error" + lst.Insert(1, result) + if(result in componentsubtypes) + datumname = "component" + target._AddComponent(lst) + else + datumname = "element" + target._AddElement(lst) + log_admin("[key_name(usr)] has added [result] [datumname] to [key_name(src)].") + message_admins("[key_name_admin(usr)] has added [result] [datumname] to [key_name_admin(src)].") if(href_list[VV_HK_CALLPROC]) usr.client.callproc_datum(target) diff --git a/code/modules/antagonists/_common/antag_team.dm b/code/modules/antagonists/_common/antag_team.dm index 653853cfb5..9d138ed0b9 100644 --- a/code/modules/antagonists/_common/antag_team.dm +++ b/code/modules/antagonists/_common/antag_team.dm @@ -42,7 +42,7 @@ if(objective.completable) var/completion = objective.check_completion() if(completion >= 1) - report += "Objective #[objective_count]: [objective.explanation_text] Success!" + report += "Objective #[objective_count]: [objective.explanation_text] Success!" else if(completion <= 0) report += "Objective #[objective_count]: [objective.explanation_text] Fail." win = FALSE diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index 42e3f71037..b90389094f 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -492,7 +492,7 @@ user.do_attack_animation(L) - if(L.run_block(src, 0, "[user]'s [src]", ATTACK_TYPE_MELEE, 0, user, check_zone(user.zone_selected)) & BLOCK_SUCCESS) + if(L.mob_run_block(src, 0, "[user]'s [src]", ATTACK_TYPE_MELEE, 0, user, check_zone(user.zone_selected), null) & BLOCK_SUCCESS) playsound(L, 'sound/weapons/genhit.ogg', 50, TRUE) return FALSE diff --git a/code/modules/antagonists/abductor/equipment/gland.dm b/code/modules/antagonists/abductor/equipment/gland.dm index 0d30ebe992..d9ae678bb9 100644 --- a/code/modules/antagonists/abductor/equipment/gland.dm +++ b/code/modules/antagonists/abductor/equipment/gland.dm @@ -6,6 +6,7 @@ status = ORGAN_ROBOTIC beating = TRUE organ_flags = ORGAN_NO_SPOIL + no_pump = TRUE var/true_name = "baseline placebo referencer" var/cooldown_low = 300 var/cooldown_high = 300 @@ -92,6 +93,7 @@ update_gland_hud() /obj/item/organ/heart/gland/on_life() + . = ..() if(!beating) // alien glands are immune to stopping. beating = TRUE diff --git a/code/modules/antagonists/abductor/equipment/glands/slime.dm b/code/modules/antagonists/abductor/equipment/glands/slime.dm index 53b8133528..2df4a1fab9 100644 --- a/code/modules/antagonists/abductor/equipment/glands/slime.dm +++ b/code/modules/antagonists/abductor/equipment/glands/slime.dm @@ -10,7 +10,12 @@ /obj/item/organ/heart/gland/slime/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE) ..() owner.faction |= "slime" - owner.grant_language(/datum/language/slime) + owner.grant_language(/datum/language/slime, TRUE, TRUE, LANGUAGE_GLAND) + +/obj/item/organ/heart/gland/slime/Remove(mob/living/carbon/M, special = 0) + ..() + owner.faction -= "slime" + owner.remove_language(/datum/language/slime, TRUE, TRUE, LANGUAGE_GLAND) /obj/item/organ/heart/gland/slime/activate() to_chat(owner, "You feel nauseated!") diff --git a/code/modules/antagonists/abductor/equipment/glands/trauma.dm b/code/modules/antagonists/abductor/equipment/glands/trauma.dm index b6280ec017..103d09d444 100644 --- a/code/modules/antagonists/abductor/equipment/glands/trauma.dm +++ b/code/modules/antagonists/abductor/equipment/glands/trauma.dm @@ -10,9 +10,9 @@ /obj/item/organ/heart/gland/trauma/activate() to_chat(owner, "You feel a spike of pain in your head.") if(prob(33)) - owner.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, rand(TRAUMA_RESILIENCE_BASIC, TRAUMA_RESILIENCE_LOBOTOMY)) + owner.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, rand(TRAUMA_RESILIENCE_BASIC, TRAUMA_RESILIENCE_SURGERY)) else if(prob(20)) - owner.gain_trauma_type(BRAIN_TRAUMA_SEVERE, rand(TRAUMA_RESILIENCE_BASIC, TRAUMA_RESILIENCE_LOBOTOMY)) + owner.gain_trauma_type(BRAIN_TRAUMA_SEVERE, rand(TRAUMA_RESILIENCE_BASIC, TRAUMA_RESILIENCE_SURGERY)) else - owner.gain_trauma_type(BRAIN_TRAUMA_MILD, rand(TRAUMA_RESILIENCE_BASIC, TRAUMA_RESILIENCE_LOBOTOMY)) \ No newline at end of file + owner.gain_trauma_type(BRAIN_TRAUMA_MILD, rand(TRAUMA_RESILIENCE_BASIC, TRAUMA_RESILIENCE_SURGERY)) diff --git a/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm b/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm index 3757aecd02..fbdeea6b84 100644 --- a/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm +++ b/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm @@ -42,7 +42,7 @@ /mob/living/simple_animal/hostile/blob/fire_act(exposed_temperature, exposed_volume) ..() if(exposed_temperature) - adjustFireLoss(CLAMP(0.01 * exposed_temperature, 1, 5)) + adjustFireLoss(clamp(0.01 * exposed_temperature, 1, 5)) else adjustFireLoss(5) diff --git a/code/modules/antagonists/blob/blob/overmind.dm b/code/modules/antagonists/blob/blob/overmind.dm index aed64e4039..02be432045 100644 --- a/code/modules/antagonists/blob/blob/overmind.dm +++ b/code/modules/antagonists/blob/blob/overmind.dm @@ -203,7 +203,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) B.hud_used.blobpwrdisplay.maptext = "
    [round(blob_core.obj_integrity)]
    " /mob/camera/blob/proc/add_points(points) - blob_points = CLAMP(blob_points + points, 0, max_blob_points) + blob_points = clamp(blob_points + points, 0, max_blob_points) hud_used.blobpwrdisplay.maptext = "
    [round(blob_points)]
    " /mob/camera/blob/say(message, bubble_type, var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null) diff --git a/code/modules/antagonists/blob/blob/theblob.dm b/code/modules/antagonists/blob/blob/theblob.dm index 444b10684b..5717dc557d 100644 --- a/code/modules/antagonists/blob/blob/theblob.dm +++ b/code/modules/antagonists/blob/blob/theblob.dm @@ -77,7 +77,7 @@ /obj/structure/blob/CanAStarPass(ID, dir, caller) . = 0 - if(ismovableatom(caller)) + if(ismovable(caller)) var/atom/movable/mover = caller . = . || (mover.pass_flags & PASSBLOB) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index efccb5591e..1867be1594 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -14,10 +14,10 @@ set waitfor = FALSE // Don't make on_gain() wait for this function to finish. This lets this code run on the side. var/notice_healing while(owner && !AmFinalDeath()) // owner.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) == src - if(owner.current.stat == CONSCIOUS && !poweron_feed && !HAS_TRAIT(owner.current, TRAIT_DEATHCOMA)) // Deduct Blood + if(owner.current.stat == CONSCIOUS && !poweron_feed && !HAS_TRAIT(owner.current, TRAIT_FAKEDEATH)) // Deduct Blood AddBloodVolume(passive_blood_drain) // -.1 currently if(HandleHealing(1)) // Heal - if(notice_healing == FALSE && owner.current.blood_volume > 0) + if(!notice_healing && owner.current.blood_volume > 0) to_chat(owner, "The power of your blood begins knitting your wounds...") notice_healing = TRUE else if(notice_healing == TRUE) @@ -25,7 +25,7 @@ HandleStarving() // Death HandleDeath() // Standard Update update_hud()// Daytime Sleep in Coffin - if(SSticker.mode.is_daylight() && !HAS_TRAIT_FROM(owner.current, TRAIT_DEATHCOMA, "bloodsucker")) + if(SSticker.mode.is_daylight() && !HAS_TRAIT_FROM(owner.current, TRAIT_FAKEDEATH, "bloodsucker")) if(istype(owner.current.loc, /obj/structure/closet/crate/coffin)) Torpor_Begin() // Wait before next pass @@ -39,7 +39,7 @@ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /datum/antagonist/bloodsucker/proc/AddBloodVolume(value) - owner.current.blood_volume = CLAMP(owner.current.blood_volume + value, 0, max_blood_volume) + owner.current.blood_volume = clamp(owner.current.blood_volume + value, 0, max_blood_volume) update_hud() /datum/antagonist/bloodsucker/proc/HandleFeeding(mob/living/carbon/target, mult=1) @@ -83,7 +83,7 @@ // NOTE: Mult of 0 is just a TEST to see if we are injured and need to go into Torpor! //It is called from your coffin on close (by you only) var/actual_regen = regen_rate + additional_regen - if(poweron_masquerade == TRUE || owner.current.AmStaked()) + if(poweron_masquerade|| owner.current.AmStaked()) return FALSE if(owner.current.reagents.has_reagent(/datum/reagent/consumable/garlic)) return FALSE @@ -101,8 +101,8 @@ var/mob/living/carbon/C = owner.current var/costMult = 1 // Coffin makes it cheaper var/fireheal = 0 // BURN: Heal in Coffin while Fakedeath, or when damage above maxhealth (you can never fully heal fire) - var/amInCoffinWhileTorpor = istype(C.loc, /obj/structure/closet/crate/coffin) && (mult == 0 || HAS_TRAIT(C, TRAIT_FAKEDEATH)) // Check for mult 0 OR death coma. (mult 0 means we're testing from coffin) - if(amInCoffinWhileTorpor) + // Check for mult 0 OR death coma. (mult 0 means we're testing from coffin) + if(istype(C.loc, /obj/structure/closet/crate/coffin) && (mult == 0 || HAS_TRAIT(C, TRAIT_FAKEDEATH))) mult *= 4 // Increase multiplier if we're sleeping in a coffin. fireheal = min(C.getFireLoss(), regen_rate) // NOTE: Burn damage ONLY heals in torpor. C.ExtinguishMob() @@ -112,7 +112,10 @@ CheckVampOrgans() // Heart, Eyes if(check_limbs(costMult)) return TRUE - + else if(owner.current.stat >= UNCONSCIOUS) //Faster regeneration and slight burn healing while unconcious + mult *= 2 + fireheal = min(C.getFireLoss(), regen_rate * 0.2) + // BRUTE: Always Heal var/bruteheal = min(C.getBruteLoss(), actual_regen) var/toxinheal = min(C.getToxLoss(), actual_regen) @@ -120,8 +123,6 @@ if(bruteheal + fireheal + toxinheal > 0) // Just a check? Don't heal/spend, and return. if(mult == 0) return TRUE - if(owner.current.stat >= UNCONSCIOUS) //Faster regeneration while unconcious, so you dont have to wait all day - mult *= 2 // We have damage. Let's heal (one time) C.adjustBruteLoss(-bruteheal * mult, forced = TRUE)// Heal BRUTE / BURN in random portions throughout the body. C.adjustFireLoss(-fireheal * mult, forced = TRUE) @@ -129,7 +130,7 @@ //C.heal_overall_damage(bruteheal * mult, fireheal * mult) // REMOVED: We need to FORCE this, because otherwise, vamps won't heal EVER. Swapped to above. AddBloodVolume((bruteheal * -0.5 + fireheal * -1 + toxinheal * -0.2) / mult * costMult) // Costs blood to heal return TRUE // Healed! Done for this tick. - + /datum/antagonist/bloodsucker/proc/check_limbs(costMult) @@ -137,7 +138,7 @@ var/mob/living/carbon/C = owner.current var/list/missing = C.get_missing_limbs() if(missing.len && C.blood_volume < limb_regen_cost + 5) - return FALSE + return FALSE for(var/targetLimbZone in missing) // 1) Find ONE Limb and regenerate it. C.regenerate_limb(targetLimbZone, FALSE) // regenerate_limbs() <--- If you want to EXCLUDE certain parts, do it like this ----> regenerate_limbs(0, list("head")) AddBloodVolume(50) @@ -146,12 +147,6 @@ to_chat(C, "Your flesh knits as it regrows your [L]!") playsound(C, 'sound/magic/demon_consume.ogg', 50, TRUE) return TRUE - /*for(var/obj/item/bodypart/BP in C.bodyparts) - if(!istype(BP) && !BP.status == 2) - return FALSE - to_chat(C, "Your body expels the [BP]!") - BP.drop_limb() - return TRUE */ /datum/antagonist/bloodsucker/proc/CureDisabilities() var/mob/living/carbon/C = owner.current @@ -176,14 +171,14 @@ // EMPTY: Frenzy! // BLOOD_VOLUME_GOOD: [336] Pale (handled in bloodsucker_integration.dm // BLOOD_VOLUME_BAD: [224] Jitter - if(owner.current.blood_volume < BLOOD_VOLUME_BAD && !prob(0.5)) + if(owner.current.blood_volume < BLOOD_VOLUME_BAD && !prob(0.5 && HAS_TRAIT(owner, TRAIT_FAKEDEATH)) && !poweron_masquerade) owner.current.Jitter(3) // BLOOD_VOLUME_SURVIVE: [122] Blur Vision if(owner.current.blood_volume < BLOOD_VOLUME_BAD / 2) owner.current.blur_eyes(8 - 8 * (owner.current.blood_volume / BLOOD_VOLUME_BAD)) // Nutrition owner.current.nutrition = clamp(owner.current.blood_volume, 545, 0) //The amount of blood is how full we are. - //A bit higher regeneration based on blood volume + //A bit higher regeneration based on blood volume if(owner.current.blood_volume < 700) additional_regen = 0.4 else if(owner.current.blood_volume < BLOOD_VOLUME_NORMAL) @@ -230,16 +225,16 @@ Torpor_Begin() to_chat(owner, "Your immortal body will not yet relinquish your soul to the abyss. You enter Torpor.") sleep(30) //To avoid spam - if(poweron_masquerade == TRUE) + if(poweron_masquerade) to_chat(owner, "Your wounds will not heal until you disable the Masquerade power.") // End Torpor: else // No damage, OR toxin healed AND brute healed and NOT in coffin (since you cannot heal burn) if(total_damage <= 0 || total_toxloss <= 0 && total_brute <= 0 && !istype(owner.current.loc, /obj/structure/closet/crate/coffin)) - // Not Daytime, Not in Torpor - if(!SSticker.mode.is_daylight() && HAS_TRAIT_FROM(owner.current, TRAIT_FAKEDEATH, "bloodsucker")) + // Not Daytime, Not in Torpor, enough health to not die the moment you end torpor + if(!SSticker.mode.is_daylight() && HAS_TRAIT_FROM(owner.current, TRAIT_FAKEDEATH, "bloodsucker") && total_damage < owner.current.getMaxHealth()) Torpor_End() // Fake Unconscious - if(poweron_masquerade == TRUE && total_damage >= owner.current.getMaxHealth() - HEALTH_THRESHOLD_FULLCRIT) + if(poweron_masquerade && total_damage >= owner.current.getMaxHealth() - HEALTH_THRESHOLD_FULLCRIT) owner.current.Unconscious(20, 1) /datum/antagonist/bloodsucker/proc/Torpor_Begin(amInCoffin = FALSE) @@ -249,6 +244,7 @@ ADD_TRAIT(owner.current, TRAIT_NODEATH, "bloodsucker") // Without this, you'll just keep dying while you recover. ADD_TRAIT(owner.current, TRAIT_RESISTHIGHPRESSURE, "bloodsucker") // So you can heal in space. Otherwise you just...heal forever. ADD_TRAIT(owner.current, TRAIT_RESISTLOWPRESSURE, "bloodsucker") + owner.current.Jitter(0) // Visuals owner.current.update_sight() owner.current.reload_fullscreen() @@ -256,6 +252,9 @@ for(var/datum/action/bloodsucker/power in powers) if(power.active && !power.can_use_in_torpor) power.DeactivatePower() + if(owner.current.suiciding) + owner.current.suiciding = FALSE //Youll die but not for long. + to_chat(owner.current, "Your body keeps you going, even as you try to end yourself.") /datum/antagonist/bloodsucker/proc/Torpor_End() owner.current.stat = SOFT_CRIT @@ -369,8 +368,8 @@ //Puke blood only if puke_blood is true, and loose some blood, else just puke normally. if(puke_blood) C.blood_volume = max(0, C.blood_volume - foodInGut * 2) - C.vomit(foodInGut * 4, foodInGut * 2, 0) - else + C.vomit(foodInGut * 4, foodInGut * 2, 0) + else C.vomit(foodInGut * 4, FALSE, 0) C.Stun(30) //C.Dizzy(50) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_objectives.dm b/code/modules/antagonists/bloodsucker/bloodsucker_objectives.dm index 0c80ce0dee..7043c2f429 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_objectives.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_objectives.dm @@ -87,7 +87,7 @@ // Heads? if (target_role == "HEAD") target_amount = rand(1, round(SSticker.mode.num_players() / 20)) - target_amount = CLAMP(target_amount,1,3) + target_amount = clamp(target_amount,1,3) // Department? else switch(target_role) @@ -100,7 +100,7 @@ if("Quartermaster") department_string = "Cargo" target_amount = rand(round(SSticker.mode.num_players() / 20), round(SSticker.mode.num_players() / 10)) - target_amount = CLAMP(target_amount, 2, 4) + target_amount = clamp(target_amount, 2, 4) ..() // EXPLANATION diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_sunlight.dm b/code/modules/antagonists/bloodsucker/bloodsucker_sunlight.dm index b7d98c6783..43163f6a70 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_sunlight.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_sunlight.dm @@ -45,15 +45,15 @@ // (FINAL LIL WARNING) while(time_til_cycle > 5) sleep(10) - if (cancel_me) + if(cancel_me) return //sleep(TIME_BLOODSUCKER_DAY_FINAL_WARN - 50) warn_daylight(3,"Seek cover, for Sol rises!") // Part 3: Night Ending - while (time_til_cycle > 0) + while(time_til_cycle > 0) sleep(10) - if (cancel_me) + if(cancel_me) return //sleep(50) warn_daylight(4,"Solar flares bombard the station with deadly UV light!
    Stay in cover for the next [TIME_BLOODSUCKER_DAY / 60] minutes or risk Final Death!",\ @@ -69,11 +69,11 @@ while(time_til_cycle > 0) punish_vamps() sleep(TIME_BLOODSUCKER_BURN_INTERVAL) - if (cancel_me) + if(cancel_me) return //daylight_time -= TIME_BLOODSUCKER_BURN_INTERVAL // Issue Level Up! - if(!issued_XP && time_til_cycle <= 15) + if(!issued_XP && time_til_cycle <= 5) issued_XP = TRUE vamps_rank_up() diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm index 946be31ed6..0feb6dfa7e 100644 --- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm +++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm @@ -20,7 +20,7 @@ var/poweron_feed = FALSE // Am I feeding? var/poweron_masquerade = FALSE // STATS - var/bloodsucker_level + var/bloodsucker_level var/bloodsucker_level_unspent = 1 var/regen_rate = 0.3 // How fast do I regenerate? var/additional_regen // How much additional blood regen we gain from bonuses such as high blood. @@ -209,7 +209,7 @@ // Physiology CheckVampOrgans() // Heart, Eyes // Language - owner.current.grant_language(/datum/language/vampiric) + owner.current.grant_language(/datum/language/vampiric, TRUE, TRUE, LANGUAGE_BLOODSUCKER) owner.hasSoul = FALSE // If false, renders the character unable to sell their soul. owner.isholy = FALSE // is this person a chaplain or admin role allowed to use bibles // Disabilities @@ -227,7 +227,7 @@ // Traits for(var/T in defaultTraits) REMOVE_TRAIT(owner.current, T, BLOODSUCKER_TRAIT) - if(had_toxlover == TRUE) + if(had_toxlover) ADD_TRAIT(owner.current, TRAIT_TOXINLOVER, SPECIES_TRAIT) // Traits: Species @@ -246,7 +246,7 @@ // Update Health owner.current.setMaxHealth(100) // Language - owner.current.remove_language(/datum/language/vampiric) + owner.current.remove_language(/datum/language/vampiric, TRUE, TRUE, LANGUAGE_BLOODSUCKER) // Soul if (owner.soulOwner == owner) // Return soul, if *I* own it. owner.hasSoul = TRUE @@ -649,10 +649,10 @@ return TRUE // Check 3) If I am a BLOODSUCKER, then are they my Vassal? if (mob_B && atom_V && (atom_V in mob_B.vassals)) - return TRUE + return TRUE // Check 4) If we are both VASSAL, then do we have the same master? if (atom_V && mob_V && atom_V.master == mob_V.master) - return TRUE + return TRUE return FALSE @@ -710,7 +710,7 @@ invisibility = INVISIBILITY_ABSTRACT /obj/screen/bloodsucker/proc/update_counter(value, valuecolor) - invisibility = 0 + invisibility = 0 /obj/screen/bloodsucker/blood_counter icon = 'icons/mob/actions/bloodsucker.dmi' @@ -758,7 +758,7 @@ /obj/screen/bloodsucker/sunlight_counter/update_counter(value, valuecolor) ..() - maptext = "
    [value]
    " + maptext = "
    [value]
    " /datum/antagonist/bloodsucker/proc/count_vassals(datum/mind/master) var/datum/antagonist/bloodsucker/B = master.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) diff --git a/code/modules/antagonists/bloodsucker/datum_vassal.dm b/code/modules/antagonists/bloodsucker/datum_vassal.dm index 3d5ed1369b..c065d5fe7c 100644 --- a/code/modules/antagonists/bloodsucker/datum_vassal.dm +++ b/code/modules/antagonists/bloodsucker/datum_vassal.dm @@ -48,7 +48,7 @@ objectives += vassal_objective objectives_given += vassal_objective give_thrall_eyes() - owner.current.grant_language(/datum/language/vampiric) + owner.current.grant_language(/datum/language/vampiric, TRUE, TRUE, LANGUAGE_VASSAL) // Add Antag HUD update_vassal_icons_added(owner.current, "vassal") . = ..() @@ -81,7 +81,7 @@ qdel(O) objectives_given = list() remove_thrall_eyes() - owner.current.remove_language(/datum/language/vampiric) + owner.current.remove_language(/datum/language/vampiric, TRUE, TRUE, LANGUAGE_VASSAL) // Clear Antag HUD update_vassal_icons_removed(owner.current) diff --git a/code/modules/antagonists/bloodsucker/objects/bloodsucker_lair.dm b/code/modules/antagonists/bloodsucker/objects/bloodsucker_lair.dm index f68191d6d7..dd7e835d3a 100644 --- a/code/modules/antagonists/bloodsucker/objects/bloodsucker_lair.dm +++ b/code/modules/antagonists/bloodsucker/objects/bloodsucker_lair.dm @@ -63,7 +63,7 @@ // Find Animals in Area /* if(rand(0,2) == 0) var/mobCount = 0 - var/mobMax = CLAMP(area_turfs.len / 25, 1, 4) + var/mobMax = clamp(area_turfs.len / 25, 1, 4) for (var/turf/T in area_turfs) if(!T) continue var/mob/living/simple_animal/SA = locate() in T diff --git a/code/modules/antagonists/bloodsucker/powers/cloak.dm b/code/modules/antagonists/bloodsucker/powers/cloak.dm index a616c39923..347700ca9a 100644 --- a/code/modules/antagonists/bloodsucker/powers/cloak.dm +++ b/code/modules/antagonists/bloodsucker/powers/cloak.dm @@ -18,14 +18,11 @@ . = ..() if(!.) return - // must have nobody around to see the cloak - var/watchers = viewers(9,get_turf(owner)) - for(var/mob/living/M in watchers) + for(var/mob/living/M in viewers(9, owner)) if(M != owner) to_chat(owner, "You may only vanish into the shadows unseen.") return FALSE - return TRUE /datum/action/bloodsucker/cloak/ActivatePower() diff --git a/code/modules/antagonists/bloodsucker/powers/fortitude.dm b/code/modules/antagonists/bloodsucker/powers/fortitude.dm index a58034df0d..76f3cc77a4 100644 --- a/code/modules/antagonists/bloodsucker/powers/fortitude.dm +++ b/code/modules/antagonists/bloodsucker/powers/fortitude.dm @@ -3,7 +3,7 @@ /datum/action/bloodsucker/fortitude - name = "Fortitude"//"Cellular Emporium" + name = "Fortitude" desc = "Withstand egregious physical wounds and walk away from attacks that would stun, pierce, and dismember lesser beings. You cannot run while active." button_icon_state = "power_fortitude" bloodcost = 30 @@ -11,28 +11,27 @@ bloodsucker_can_buy = TRUE amToggle = TRUE warn_constant_cost = TRUE + var/was_running - var/this_resist // So we can raise and lower your brute resist based on what your level_current WAS. + var/fortitude_resist // So we can raise and lower your brute resist based on what your level_current WAS. /datum/action/bloodsucker/fortitude/ActivatePower() - var/datum/antagonist/bloodsucker/bloodsuckerdatum = owner.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) + var/datum/antagonist/bloodsucker/B = owner.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) var/mob/living/user = owner to_chat(user, "Your flesh, skin, and muscles become as steel.") // Traits & Effects ADD_TRAIT(user, TRAIT_PIERCEIMMUNE, "fortitude") ADD_TRAIT(user, TRAIT_NODISMEMBER, "fortitude") ADD_TRAIT(user, TRAIT_STUNIMMUNE, "fortitude") - ADD_TRAIT(user, TRAIT_NORUNNING, "fortitude") if(ishuman(owner)) var/mob/living/carbon/human/H = owner - this_resist = max(0.3, 0.7 - level_current * 0.1) - H.physiology.brute_mod *= this_resist//0.5 - H.physiology.burn_mod *= this_resist//0.5 - // Stop Running (Taken from /datum/quirk/nyctophobia in negative.dm) - var/was_running = (user.m_intent == MOVE_INTENT_RUN) + fortitude_resist = max(0.3, 0.7 - level_current * 0.1) + H.physiology.brute_mod *= fortitude_resist + H.physiology.burn_mod *= fortitude_resist + was_running = (user.m_intent == MOVE_INTENT_RUN) if(was_running) user.toggle_move_intent() - while(bloodsuckerdatum && ContinueActive(user) || user.m_intent == MOVE_INTENT_RUN) + while(B && ContinueActive(user) || user.m_intent == MOVE_INTENT_RUN) if(istype(user.buckled, /obj/vehicle)) //We dont want people using fortitude being able to use vehicles var/obj/vehicle/V = user.buckled var/datum/component/riding/VRD = V.GetComponent(/datum/component/riding) @@ -44,20 +43,21 @@ to_chat(user, "You fall off the [V], your weight making you too heavy to be supported by it.") // Pay Blood Toll (if awake) if(user.stat == CONSCIOUS) - bloodsuckerdatum.AddBloodVolume(-0.5) // Used to be 0.3 blood per 2 seconds, but we're making it more expensive to keep on. + B.AddBloodVolume(-0.5) sleep(20) // Check every few ticks that we haven't disabled this power // Return to Running (if you were before) - if(was_running && user.m_intent != MOVE_INTENT_RUN) - user.toggle_move_intent() - + /datum/action/bloodsucker/fortitude/DeactivatePower(mob/living/user = owner, mob/living/target) ..() // Restore Traits & Effects REMOVE_TRAIT(user, TRAIT_PIERCEIMMUNE, "fortitude") REMOVE_TRAIT(user, TRAIT_NODISMEMBER, "fortitude") REMOVE_TRAIT(user, TRAIT_STUNIMMUNE, "fortitude") - REMOVE_TRAIT(user, TRAIT_NORUNNING, "fortitude") - if(ishuman(owner)) - var/mob/living/carbon/human/H = owner - H.physiology.brute_mod /= this_resist//0.5 - H.physiology.burn_mod /= this_resist//0.5 + if(!ishuman(owner)) + return + var/mob/living/carbon/human/H = owner + H.physiology.brute_mod /= fortitude_resist + H.physiology.burn_mod /= fortitude_resist + if(was_running && user.m_intent == MOVE_INTENT_WALK) + user.toggle_move_intent() + diff --git a/code/modules/antagonists/bloodsucker/powers/lunge.dm b/code/modules/antagonists/bloodsucker/powers/lunge.dm index f6dfc8ba72..db7868fa8a 100644 --- a/code/modules/antagonists/bloodsucker/powers/lunge.dm +++ b/code/modules/antagonists/bloodsucker/powers/lunge.dm @@ -1,88 +1,46 @@ -// Level 1: Grapple level 2 -// Level 2: Grapple 3 from Behind -// Level 3: Grapple 3 from Shadows -/datum/action/bloodsucker/targeted/lunge + + +/datum/action/bloodsucker/lunge name = "Predatory Lunge" - desc = "Spring at your target and aggressively grapple them without warning. Attacks from concealment or the rear may even knock them down." + desc = "Prepare the strenght to grapple your prey." button_icon_state = "power_lunge" bloodcost = 10 - cooldown = 120 - target_range = 3 - power_activates_immediately = TRUE - message_Trigger = "Whom will you ensnare within your grasp?" - must_be_capacitated = TRUE + cooldown = 30 bloodsucker_can_buy = TRUE + warn_constant_cost = TRUE + amToggle = TRUE + var/leap_skill_mod = 5 -/datum/action/bloodsucker/targeted/lunge/CheckCanUse(display_error) - if(!..(display_error))// DEFAULT CHECKS - return FALSE - // Being Grabbed - if(owner.pulledby && owner.pulledby.grab_state >= GRAB_AGGRESSIVE) - if(display_error) - to_chat(owner, "You're being grabbed!") - return FALSE - if(!owner.has_gravity(owner.loc))//TODO figure out how to check if theyre able to move while in nograv - if(display_error) - to_chat(owner, "You cant lunge while floating!") - return FALSE - return TRUE +/datum/action/bloodsucker/lunge/New() + . = ..() + -/datum/action/bloodsucker/targeted/lunge/CheckValidTarget(atom/A) - return iscarbon(A) +/datum/action/bloodsucker/lunge/Destroy() + . = ..() + UnregisterSignal(owner, COMSIG_CARBON_TACKLED) -/datum/action/bloodsucker/targeted/lunge/CheckCanTarget(atom/A, display_error) - // Check: Self - if(target == owner) - return FALSE - // Check: Range - //if (!(target in view(target_range, get_turf(owner)))) - // if (display_error) - // to_chat(owner, "Your victim is too far away.") - // return FALSE - // DEFAULT CHECKS (Distance) - if(!..()) - return FALSE - // Check: Turf - var/mob/living/L = A - if(!isturf(L.loc)) - return FALSE - return TRUE +/datum/action/bloodsucker/lunge/ActivatePower() + var/mob/living/carbon/user = owner + var/datum/antagonist/bloodsucker/B = user.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) + var/datum/component/tackler/T = user.LoadComponent(/datum/component/tackler) + T.stamina_cost = 50 + T.base_knockdown = 3 SECONDS + T.range = 4 + T.speed = 0.8 + T.skill_mod = 5 //Monstrous tackling + T.min_distance = 2 + active = TRUE + user.toggle_throw_mode() + RegisterSignal(user, COMSIG_CARBON_TACKLED, .proc/DelayedDeactivatePower) + while(B && ContinueActive(user)) + B.AddBloodVolume(-0.1) + sleep(5) -/datum/action/bloodsucker/targeted/lunge/FireTargetedPower(atom/A) - // set waitfor = FALSE <---- DONT DO THIS!We WANT this power to hold up ClickWithPower(), so that we can unlock the power when it's done. - var/mob/living/carbon/target = A - var/turf/T = get_turf(target) - var/mob/living/L = owner - // Clear Vars - owner.pulling = null - // Will we Knock them Down? - var/do_knockdown = !is_A_facing_B(target,owner) || owner.alpha <= 0 || istype(owner.loc, /obj/structure/closet) - // CAUSES: Target has their back to me, I'm invisible, or I'm in a Closet - // Step One: Heatseek toward Target's Turf - addtimer(CALLBACK(GLOBAL_PROC, .proc/_walk, owner, 0), 2 SECONDS) - target.playsound_local(get_turf(owner), 'sound/bloodsucker/lunge_warn.ogg', 60, FALSE, pressure_affected = FALSE) // target-only telegraphing - owner.playsound_local(owner, 'sound/bloodsucker/lunge_warn.ogg', 60, FALSE, pressure_affected = FALSE) // audio feedback to the user - if(do_mob(owner, owner, 7, TRUE, TRUE)) - walk_towards(owner, T, 0.1, 10) // yes i know i shouldn't use this but i don't know how to work in anything better - if(get_turf(owner) != T && !(isliving(target) && target.Adjacent(owner)) && owner.incapacitated() && !CHECK_MOBILITY(L, MOBILITY_STAND)) - var/send_dir = get_dir(owner, T) - new /datum/forced_movement(owner, get_ranged_target_turf(owner, send_dir, 1), 1, FALSE) - owner.spin(10) - // Step Two: Check if I'm at/adjectent to Target's CURRENT turf (not original...that was just a destination) - for(var/i in 1 to 6) - if (target.Adjacent(owner)) - // LEVEL 2: If behind target, mute or unconscious! - if(do_knockdown) // && level_current >= 1) - target.Knockdown(15 + 10 * level_current,1) - target.adjustStaminaLoss(40 + 10 * level_current) - // Cancel Walk (we were close enough to contact them) - walk(owner, 0) - target.Stun(10,1) //Without this the victim can just walk away - target.grabbedby(owner) // Taken from mutations.dm under changelings - target.grippedby(owner, instant = TRUE) //instant aggro grab - break - sleep(3) +//Without this, the leap component would get removed too early, causing the normal crash into effects. +/datum/action/bloodsucker/lunge/proc/DelayedDeactivatePower() + addtimer(CALLBACK(src, .proc/DeactivatePower), 1 SECONDS, TIMER_UNIQUE) -/datum/action/bloodsucker/targeted/lunge/DeactivatePower(mob/living/user = owner, mob/living/target) - ..() // activate = FALSE - user.update_mobility() +/datum/action/bloodsucker/lunge/DeactivatePower(mob/living/user = owner) + . = ..() + qdel(user.GetComponent(/datum/component/tackler)) + UnregisterSignal(user, COMSIG_CARBON_TACKLED) diff --git a/code/modules/antagonists/bloodsucker/powers/masquerade.dm b/code/modules/antagonists/bloodsucker/powers/masquerade.dm index 7d41899dc2..d83f938e3f 100644 --- a/code/modules/antagonists/bloodsucker/powers/masquerade.dm +++ b/code/modules/antagonists/bloodsucker/powers/masquerade.dm @@ -52,6 +52,7 @@ REMOVE_TRAIT(user, TRAIT_NOHARDCRIT, "bloodsucker") REMOVE_TRAIT(user, TRAIT_NOSOFTCRIT, "bloodsucker") REMOVE_TRAIT(user, TRAIT_VIRUSIMMUNE, "bloodsucker") + REMOVE_TRAIT(user, TRAIT_NOBREATH, "bloodsucker") var/obj/item/organ/heart/vampheart/H = user.getorganslot(ORGAN_SLOT_HEART) var/obj/item/organ/eyes/vassal/bloodsucker/E = user.getorganslot(ORGAN_SLOT_EYES) E.flash_protect = 0 @@ -93,6 +94,7 @@ ADD_TRAIT(user, TRAIT_NOHARDCRIT, "bloodsucker") ADD_TRAIT(user, TRAIT_NOSOFTCRIT, "bloodsucker") ADD_TRAIT(user, TRAIT_VIRUSIMMUNE, "bloodsucker") + ADD_TRAIT(user, TRAIT_NOBREATH, "bloodsucker") // HEART var/obj/item/organ/heart/H = user.getorganslot(ORGAN_SLOT_HEART) diff --git a/code/modules/antagonists/bloodsucker/powers/trespass.dm b/code/modules/antagonists/bloodsucker/powers/trespass.dm index 45d1dda3ef..c91b924bb7 100644 --- a/code/modules/antagonists/bloodsucker/powers/trespass.dm +++ b/code/modules/antagonists/bloodsucker/powers/trespass.dm @@ -28,7 +28,7 @@ /datum/action/bloodsucker/targeted/trespass/CheckValidTarget(atom/A) // Can't target my tile - if (A == get_turf(owner) || get_turf(A) == get_turf(owner)) + if(A == get_turf(owner) || get_turf(A) == get_turf(owner)) return FALSE return TRUE // All we care about is destination. Anything you click is fine. @@ -43,13 +43,13 @@ // Are either tiles WALLS? var/turf/from_turf = get_turf(owner) var/this_dir // = get_dir(from_turf, target_turf) - for (var/i=1 to 2) + for(var/i=1 to 2) // Keep Prev Direction if we've reached final turf - if (from_turf != final_turf) + if(from_turf != final_turf) this_dir = get_dir(from_turf, final_turf) // Recalculate dir so we don't overshoot on a diagonal. from_turf = get_step(from_turf, this_dir) // ERROR! Wall! - if (iswallturf(from_turf)) + if(iswallturf(from_turf)) if (display_error) var/wallwarning = (i == 1) ? "in the way" : "at your destination" to_chat(owner, "There is a solid wall [wallwarning].") @@ -84,7 +84,7 @@ user.next_move = world.time + mist_delay user.Stun(mist_delay, ignore_canstun = TRUE) user.notransform = TRUE - user.density = 0 + user.density = FALSE var/invis_was = user.invisibility user.invisibility = INVISIBILITY_MAXIMUM @@ -94,7 +94,7 @@ sleep(mist_delay / 2) // Move & Freeze - if (isturf(target_turf)) + if(isturf(target_turf)) do_teleport(owner, target_turf, no_effects=TRUE, channel = TELEPORT_CHANNEL_QUANTUM) // in teleport.dm? user.next_move = world.time + mist_delay / 2 user.Stun(mist_delay / 2, ignore_canstun = TRUE) diff --git a/code/modules/antagonists/bloodsucker/powers/veil.dm b/code/modules/antagonists/bloodsucker/powers/veil.dm index 671f88f2c1..422d645ad2 100644 --- a/code/modules/antagonists/bloodsucker/powers/veil.dm +++ b/code/modules/antagonists/bloodsucker/powers/veil.dm @@ -93,7 +93,7 @@ H.socks = random_socks(H.gender) //H.eye_color = random_eye_color() REMOVE_TRAIT(H, TRAIT_DISFIGURED, null) // - H.dna.features = random_features(H.dna.species?.id) + H.dna.features = random_features(H.dna.species?.id, H.gender) // Apply Appearance H.update_body(TRUE) // Outfit and underwear, also body and privates. diff --git a/code/modules/antagonists/brother/brother.dm b/code/modules/antagonists/brother/brother.dm index a48e080a89..0a2e079921 100644 --- a/code/modules/antagonists/brother/brother.dm +++ b/code/modules/antagonists/brother/brother.dm @@ -111,7 +111,7 @@ if(objective.completable) var/completion = objective.check_completion() if(completion >= 1) - parts += "Objective #[objective_count]: [objective.explanation_text] Success!" + parts += "Objective #[objective_count]: [objective.explanation_text] Success!" else if(completion <= 0) parts += "Objective #[objective_count]: [objective.explanation_text] Fail." win = FALSE diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index 967715ce2f..106ae16031 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -78,6 +78,7 @@ create_initial_profile() if(give_objectives) forge_objectives() + owner.current.grant_all_languages(FALSE, FALSE, TRUE) //Grants omnitongue. We are able to transform our body after all. remove_clownmut() . = ..() @@ -430,7 +431,7 @@ objectives += destroy_objective else if(prob(70)) - var/datum/objective/assassinate/kill_objective = new + var/datum/objective/assassinate/once/kill_objective = new kill_objective.owner = owner if(team_mode) //No backstabbing while in a team kill_objective.find_target_by_role(role = ROLE_CHANGELING, role_type = 1, invert = 1) @@ -563,7 +564,7 @@ if(objective.completable) var/completion = objective.check_completion() if(completion >= 1) - parts += "Objective #[count]: [objective.explanation_text] Success!" + parts += "Objective #[count]: [objective.explanation_text] Success!" else if(completion <= 0) parts += "Objective #[count]: [objective.explanation_text] Fail." changelingwin = FALSE diff --git a/code/modules/antagonists/changeling/powers/absorb.dm b/code/modules/antagonists/changeling/powers/absorb.dm index c3c4ec78a3..2d5b38a456 100644 --- a/code/modules/antagonists/changeling/powers/absorb.dm +++ b/code/modules/antagonists/changeling/powers/absorb.dm @@ -61,10 +61,10 @@ if(user.nutrition < NUTRITION_LEVEL_WELL_FED) user.nutrition = min((user.nutrition + target.nutrition), NUTRITION_LEVEL_WELL_FED) - if(target.mind)//if the victim has got a mind - // Absorb a lizard, speak Draconic. - user.copy_known_languages_from(target) + // Absorb a lizard, speak Draconic. + user.copy_languages(target, LANGUAGE_ABSORB) + if(target.mind && user.mind)//if the victim and user have minds target.mind.show_memory(user, 0) //I can read your mind, kekeke. Output all their notes. //Some of target's recent speech, so the changeling can attempt to imitate them better. diff --git a/code/modules/antagonists/changeling/powers/adrenaline.dm b/code/modules/antagonists/changeling/powers/adrenaline.dm index ba40388844..32171a036a 100644 --- a/code/modules/antagonists/changeling/powers/adrenaline.dm +++ b/code/modules/antagonists/changeling/powers/adrenaline.dm @@ -13,5 +13,5 @@ //Recover from stuns. /obj/effect/proc_holder/changeling/adrenaline/sting_action(mob/living/user) - user.do_adrenaline(0, FALSE, 70, 0, TRUE, list(/datum/reagent/medicine/epinephrine = 3, /datum/reagent/drug/methamphetamine/changeling = 10, /datum/reagent/medicine/mannitol = 10, /datum/reagent/medicine/regen_jelly = 10, /datum/reagent/medicine/changelingadrenaline = 5), "Energy rushes through us.", 0, 0.75, 0) - return TRUE \ No newline at end of file + user.do_adrenaline(0, FALSE, 70, 0, TRUE, list(/datum/reagent/medicine/epinephrine = 3, /datum/reagent/drug/methamphetamine/changeling = 10, /datum/reagent/medicine/changelingadrenaline = 5), "Energy rushes through us.", 0, 0.75, 0) + return TRUE diff --git a/code/modules/antagonists/changeling/powers/augmented_eyesight.dm b/code/modules/antagonists/changeling/powers/augmented_eyesight.dm index 6eafeda63f..a6fdf7008a 100644 --- a/code/modules/antagonists/changeling/powers/augmented_eyesight.dm +++ b/code/modules/antagonists/changeling/powers/augmented_eyesight.dm @@ -27,12 +27,12 @@ var/obj/item/organ/eyes/E = user.getorganslot(ORGAN_SLOT_EYES) if(E) if(!active) - E.sight_flags |= SEE_MOBS | SEE_OBJS | SEE_TURFS //Add sight flags to the user's eyes + ADD_TRAIT(user, TRAIT_THERMAL_VISION, CHANGELING_TRAIT) E.flash_protect = -1 //Adjust the user's eyes' flash protection to_chat(user, "We adjust our eyes to sense prey through walls.") active = TRUE //Defined in code/modules/spells/spell.dm else - E.sight_flags ^= SEE_MOBS | SEE_OBJS | SEE_TURFS //Remove sight flags from the user's eyes + REMOVE_TRAIT(user, TRAIT_THERMAL_VISION, CHANGELING_TRAIT) E.flash_protect = 2 //Adjust the user's eyes' flash protection to_chat(user, "We adjust our eyes to protect them from bright lights.") active = FALSE @@ -47,10 +47,8 @@ /obj/effect/proc_holder/changeling/augmented_eyesight/on_refund(mob/user) //Get rid of X-ray vision and flash protection when the user refunds this ability action.Remove(user) + REMOVE_TRAIT(user, TRAIT_THERMAL_VISION, CHANGELING_TRAIT) var/obj/item/organ/eyes/E = user.getorganslot(ORGAN_SLOT_EYES) if(E) - if (active) - E.sight_flags ^= SEE_MOBS | SEE_OBJS | SEE_TURFS - else - E.flash_protect = 0 - user.update_sight() \ No newline at end of file + E.flash_protect = initial(E.flash_protect) + user.update_sight() diff --git a/code/modules/antagonists/changeling/powers/biodegrade.dm b/code/modules/antagonists/changeling/powers/biodegrade.dm index f58b90d8e6..db4e47aa78 100644 --- a/code/modules/antagonists/changeling/powers/biodegrade.dm +++ b/code/modules/antagonists/changeling/powers/biodegrade.dm @@ -2,7 +2,7 @@ name = "Biodegrade" desc = "Dissolves restraints or other objects preventing free movement." helptext = "This is obvious to nearby people, and can destroy standard restraints and closets. This ability is somewhat loud, and carries a small risk of our blood gaining violent sensitivity to heat." - chemical_cost = 30 //High cost to prevent spam + chemical_cost = 15 //High cost to prevent spam loudness = 1 dna_cost = 2 req_human = 1 diff --git a/code/modules/antagonists/changeling/powers/chameleon_skin.dm b/code/modules/antagonists/changeling/powers/chameleon_skin.dm index 03f3aab473..c01a1e40c8 100644 --- a/code/modules/antagonists/changeling/powers/chameleon_skin.dm +++ b/code/modules/antagonists/changeling/powers/chameleon_skin.dm @@ -3,7 +3,6 @@ desc = "Our skin pigmentation rapidly changes to suit our current environment." helptext = "Allows us to become invisible after a few seconds of standing still. Can be toggled on and off." dna_cost = 2 - chemical_cost = 25 req_human = 1 action_icon = 'icons/mob/actions/actions_changeling.dmi' action_icon_state = "ling_camouflage" @@ -23,4 +22,4 @@ action.Remove(user) if(user.has_dna()) var/mob/living/carbon/C = user - C.dna.remove_mutation(CHAMELEON) \ No newline at end of file + C.dna.remove_mutation(CHAMELEON) diff --git a/code/modules/antagonists/changeling/powers/fleshmend.dm b/code/modules/antagonists/changeling/powers/fleshmend.dm index 9672d79ee4..afef2a10c7 100644 --- a/code/modules/antagonists/changeling/powers/fleshmend.dm +++ b/code/modules/antagonists/changeling/powers/fleshmend.dm @@ -1,8 +1,9 @@ /obj/effect/proc_holder/changeling/fleshmend name = "Fleshmend" - desc = "Our flesh rapidly regenerates, healing our burns, bruises, and shortness of breath. Functions while unconscious." + desc = "Our flesh rapidly regenerates, healing our burns, bruises, and shortness of breath. Functions while unconscious. This ability is loud, and might cause our blood to react violently to heat." helptext = "If we are on fire, the healing effect will not function. Does not regrow limbs or restore lost blood." chemical_cost = 20 + loudness = 2 dna_cost = 2 req_stat = UNCONSCIOUS action_icon = 'icons/mob/actions/actions_changeling.dmi' diff --git a/code/modules/antagonists/changeling/powers/humanform.dm b/code/modules/antagonists/changeling/powers/humanform.dm index a6f7b0b6e9..91119e1c06 100644 --- a/code/modules/antagonists/changeling/powers/humanform.dm +++ b/code/modules/antagonists/changeling/powers/humanform.dm @@ -27,7 +27,7 @@ changeling.purchasedpowers -= src - var/newmob = user.humanize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS) + var/newmob = user.humanize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSE) changeling_transform(newmob, chosen_prof) return TRUE diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index aefeb43db9..5378ea2276 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -137,7 +137,7 @@ name = "Arm Blade" desc = "We reform one of our arms into a deadly blade." helptext = "We may retract our armblade in the same manner as we form it. Cannot be used while in lesser form. This ability is loud, and might cause our blood to react violently to heat." - chemical_cost = 20 + chemical_cost = 10 dna_cost = 2 loudness = 2 req_human = 1 @@ -410,7 +410,7 @@ desc = "We reform one of our arms into a hard shield." helptext = "Organic tissue cannot resist damage forever; the shield will break after it is hit too much. The more genomes we absorb, the stronger it is. Cannot be used while in lesser form. This ability is somewhat loud, and carries a small risk of our blood gaining violent sensitivity to heat." chemical_cost = 20 - dna_cost = 1 + dna_cost = 2 loudness = 1 req_human = 1 action_icon = 'icons/mob/actions/actions_changeling.dmi' @@ -522,12 +522,12 @@ /obj/effect/proc_holder/changeling/suit/armor name = "Chitinous Armor" desc = "We turn our skin into tough chitin to protect us from damage." - helptext = "Upkeep of the armor requires a low expenditure of chemicals. The armor is strong against brute force, but does not provide much protection from lasers. Cannot be used in lesser form. This ability is loud, and might cause our blood to react violently to heat." + helptext = "Upkeep of the armor requires a constant expenditure of chemicals, resulting in a reduced chemical generation. The armor is strong against brute force, but does not provide much protection from lasers. Cannot be used in lesser form. This ability is loud, and might cause our blood to react violently to heat." chemical_cost = 20 dna_cost = 1 loudness = 2 req_human = 1 - recharge_slowdown = 0.25 + recharge_slowdown = 0.5 action_icon = 'icons/mob/actions/actions_changeling.dmi' action_icon_state = "ling_armor" action_background_icon_state = "bg_ling" @@ -543,7 +543,7 @@ icon_state = "lingarmor" item_flags = DROPDEL body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - armor = list("melee" = 40, "bullet" = 40, "laser" = 40, "energy" = 20, "bomb" = 10, "bio" = 4, "rad" = 0, "fire" = 90, "acid" = 90) + armor = list("melee" = 70, "bullet" = 60, "laser" = 30, "energy" = 40, "bomb" = 10, "bio" = 4, "rad" = 0, "fire" = 50, "acid" = 90) flags_inv = HIDEJUMPSUIT cold_protection = 0 heat_protection = 0 @@ -559,7 +559,7 @@ desc = "A tough, hard covering of black chitin with transparent chitin in front." icon_state = "lingarmorhelmet" item_flags = DROPDEL - armor = list("melee" = 40, "bullet" = 40, "laser" = 40, "energy" = 20, "bomb" = 10, "bio" = 4, "rad" = 0, "fire" = 90, "acid" = 90) + armor = list("melee" = 70, "bullet" = 60, "laser" = 30, "energy" = 40, "bomb" = 10, "bio" = 4, "rad" = 0, "fire" = 50, "acid" = 90) flags_inv = HIDEEARS|HIDEHAIR|HIDEEYES|HIDEFACIALHAIR|HIDEFACE /obj/item/clothing/head/helmet/changeling/Initialize() diff --git a/code/modules/antagonists/changeling/powers/shriek.dm b/code/modules/antagonists/changeling/powers/shriek.dm index 3de220dbcb..cfea9fcf1e 100644 --- a/code/modules/antagonists/changeling/powers/shriek.dm +++ b/code/modules/antagonists/changeling/powers/shriek.dm @@ -3,7 +3,7 @@ desc = "Our lungs and vocal cords shift, allowing us to briefly emit a noise that deafens and confuses the weak-minded." helptext = "Emits a high-frequency sound that confuses and deafens humans, blows out nearby lights and overloads cyborg sensors. This ability is somewhat loud, and carries a small risk of our blood gaining violent sensitivity to heat." chemical_cost = 20 - dna_cost = 1 + dna_cost = 2 loudness = 1 req_human = 1 action_icon = 'icons/mob/actions/actions_changeling.dmi' @@ -37,7 +37,7 @@ desc = "We shift our vocal cords to release a high-frequency sound that overloads nearby electronics." helptext = "Emits a high-frequency sound that overloads nearby electronics. This ability is somewhat loud, and carries a small risk of our blood gaining violent sensitivity to heat." chemical_cost = 20 - dna_cost = 1 + dna_cost = 2 loudness = 1 action_icon = 'icons/mob/actions/actions_changeling.dmi' action_icon_state = "ling_dissonant" diff --git a/code/modules/antagonists/changeling/powers/strained_muscles.dm b/code/modules/antagonists/changeling/powers/strained_muscles.dm index a98700683e..68451012f6 100644 --- a/code/modules/antagonists/changeling/powers/strained_muscles.dm +++ b/code/modules/antagonists/changeling/powers/strained_muscles.dm @@ -5,7 +5,6 @@ name = "Strained Muscles" desc = "We evolve the ability to reduce the acid buildup in our muscles, allowing us to move much faster." helptext = "The strain will make us tired, and we will rapidly become fatigued. Standard weight restrictions, like hardsuits, still apply. Cannot be used in lesser form." - chemical_cost = 15 dna_cost = 1 req_human = 1 var/stacks = 0 //Increments every 5 seconds; damage increases over time @@ -15,16 +14,13 @@ action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/strained_muscles/sting_action(mob/living/carbon/user) - var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) active = !active if(active) to_chat(user, "Our muscles tense and strengthen.") - changeling.chem_recharge_slowdown += 0.5 else - user.remove_movespeed_modifier(MOVESPEED_ID_CHANGELING_MUSCLES) + user.remove_movespeed_modifier(/datum/movespeed_modifier/strained_muscles) to_chat(user, "Our muscles relax.") - changeling.chem_recharge_slowdown -= 0.5 - if(stacks >= 20) + if(stacks >= 10) to_chat(user, "We collapse in exhaustion.") user.DefaultCombatKnockdown(60) user.emote("gasp") @@ -34,26 +30,24 @@ return TRUE /obj/effect/proc_holder/changeling/strained_muscles/proc/muscle_loop(mob/living/carbon/user) - var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) while(active) - user.add_movespeed_modifier(MOVESPEED_ID_CHANGELING_MUSCLES, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING)) + user.add_movespeed_modifier(/datum/movespeed_modifier/strained_muscles) if(user.stat != CONSCIOUS || user.staminaloss >= 90) active = !active to_chat(user, "Our muscles relax without the energy to strengthen them.") user.DefaultCombatKnockdown(40) - user.remove_movespeed_modifier(MOVESPEED_ID_CHANGELING_MUSCLES) - changeling.chem_recharge_slowdown -= 0.5 + user.remove_movespeed_modifier(/datum/movespeed_modifier/strained_muscles) break stacks++ //user.take_bodypart_damage(stacks * 0.03, 0) - user.adjustStaminaLoss(stacks*1.3) //At first the changeling may regenerate stamina fast enough to nullify fatigue, but it will stack + user.adjustStaminaLoss(stacks*1.5) //At first the changeling may regenerate stamina fast enough to nullify fatigue, but it will stack - if(stacks == 10) //Warning message that the stacks are getting too high + if(stacks == 5) //Warning message that the stacks are getting too high to_chat(user, "Our legs are really starting to hurt...") sleep(40) - while(!active && stacks) //Damage stacks decrease fairly rapidly while not in sanic mode + while(!active && stacks) //Damage stacks decrease slowly while not in sanic mode stacks-- - sleep(20) + sleep(100) diff --git a/code/modules/antagonists/clockcult/clock_helpers/fabrication_helpers.dm b/code/modules/antagonists/clockcult/clock_helpers/fabrication_helpers.dm index 05f11294de..b0259c460e 100644 --- a/code/modules/antagonists/clockcult/clock_helpers/fabrication_helpers.dm +++ b/code/modules/antagonists/clockcult/clock_helpers/fabrication_helpers.dm @@ -239,7 +239,7 @@ if(!do_after(user, repair_values["healing_for_cycle"] * fabricator.speed_multiplier, target = src, \ extra_checks = CALLBACK(fabricator, /obj/item/clockwork/replica_fabricator.proc/fabricator_repair_checks, repair_values, src, user, TRUE))) break - obj_integrity = CLAMP(obj_integrity + repair_values["healing_for_cycle"], 0, max_integrity) + obj_integrity = clamp(obj_integrity + repair_values["healing_for_cycle"], 0, max_integrity) adjust_clockwork_power(-repair_values["power_required"]) playsound(src, 'sound/machines/click.ogg', 50, 1) diff --git a/code/modules/antagonists/clockcult/clock_helpers/power_helpers.dm b/code/modules/antagonists/clockcult/clock_helpers/power_helpers.dm index f927fc237d..628add0cb3 100644 --- a/code/modules/antagonists/clockcult/clock_helpers/power_helpers.dm +++ b/code/modules/antagonists/clockcult/clock_helpers/power_helpers.dm @@ -10,7 +10,7 @@ if(GLOB.ratvar_awakens) current_power = GLOB.clockwork_power = INFINITY else - current_power = GLOB.clockwork_power = CLAMP(GLOB.clockwork_power + amount, 0, MAX_CLOCKWORK_POWER) + current_power = GLOB.clockwork_power = clamp(GLOB.clockwork_power + amount, 0, MAX_CLOCKWORK_POWER) for(var/obj/effect/clockwork/sigil/transmission/T in GLOB.all_clockwork_objects) T.update_icon() var/unlock_message diff --git a/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm b/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm index c7c9c42ee9..de2e85a501 100644 --- a/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm +++ b/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm @@ -211,7 +211,7 @@ var/mob/living/carbon/C = L C.stuttering = max(8, C.stuttering) C.drowsyness = max(8, C.drowsyness) - C.confused += CLAMP(16 - C.confused, 0, 8) + C.confused += clamp(16 - C.confused, 0, 8) C.apply_status_effect(STATUS_EFFECT_BELLIGERENT) L.adjustFireLoss(15) ..() diff --git a/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_spear.dm b/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_spear.dm index 4a10862e28..234f0445e0 100644 --- a/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_spear.dm +++ b/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_spear.dm @@ -59,7 +59,7 @@ if(issilicon(L)) L.DefaultCombatKnockdown(100) else if(iscultist(L)) - L.confused += CLAMP(10 - L.confused, 0, 5) // Spearthrow now confuses enemy cultists + just deals extra damage / sets on fire instead of hardstunning + damage + L.confused += clamp(10 - L.confused, 0, 5) // Spearthrow now confuses enemy cultists + just deals extra damage / sets on fire instead of hardstunning + damage to_chat(L, "[src] crashes into you with burning force, sending you reeling!") L.adjust_fire_stacks(2) L.DefaultCombatKnockdown(1) diff --git a/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm b/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm index f83afebe24..6bec6e3bc7 100644 --- a/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm +++ b/code/modules/antagonists/clockcult/clock_items/soul_vessel.dm @@ -31,6 +31,7 @@ laws = new /datum/ai_laws/ratvar() braintype = picked_name GLOB.all_clockwork_objects += src + brainmob.add_blocked_language(subtypesof(/datum/language) - /datum/language/ratvar, LANGUAGE_CLOCKIE) /obj/item/mmi/posibrain/soul_vessel/Destroy() GLOB.all_clockwork_objects -= src diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm index 0fd6c8a8dc..ffe9ecfa80 100644 --- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm +++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm @@ -111,7 +111,7 @@ var/mob/living/L = M.current if(ishuman(L) && L.stat != DEAD) human_servants++ - construct_limit = round(CLAMP((human_servants / 4), 1, 3)) //1 per 4 human servants, maximum of 3 + construct_limit = round(clamp((human_servants / 4), 1, 3)) //1 per 4 human servants, maximum of 3 //Summon Neovgre: Summon a very powerful combat mech that explodes when destroyed for massive damage. /datum/clockwork_scripture/create_object/summon_arbiter diff --git a/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm b/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm index 9b4ac8085c..5fbaf9fd57 100644 --- a/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm +++ b/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm @@ -63,4 +63,4 @@ break if(!M) M = H.apply_status_effect(STATUS_EFFECT_MANIAMOTOR, src) - M.severity = CLAMP(M.severity + ((11 - get_dist(src, H)) * efficiency * efficiency), 0, MAX_MANIA_SEVERITY) + M.severity = clamp(M.severity + ((11 - get_dist(src, H)) * efficiency * efficiency), 0, MAX_MANIA_SEVERITY) diff --git a/code/modules/antagonists/clockcult/clockcult.dm b/code/modules/antagonists/clockcult/clockcult.dm index cbfd443744..a730b52cc1 100644 --- a/code/modules/antagonists/clockcult/clockcult.dm +++ b/code/modules/antagonists/clockcult/clockcult.dm @@ -91,7 +91,7 @@ current = mob_override GLOB.all_clockwork_mobs += current current.faction |= "ratvar" - current.grant_language(/datum/language/ratvar) + current.grant_language(/datum/language/ratvar, TRUE, TRUE, LANGUAGE_CLOCKIE) current.update_action_buttons_icon() //because a few clockcult things are action buttons and we may be wearing/holding them for whatever reason, we need to update buttons if(issilicon(current)) var/mob/living/silicon/S = current @@ -102,6 +102,7 @@ R.module.rebuild_modules() else if(isAI(S)) var/mob/living/silicon/ai/A = S + A.add_blocked_language(subtypesof(/datum/language) - /datum/language/ratvar, LANGUAGE_CLOCKIE) A.can_be_carded = FALSE A.requires_power = POWER_REQ_CLOCKCULT var/list/AI_frame = list(mutable_appearance('icons/mob/clockwork_mobs.dmi', "aiframe")) //make the AI's cool frame @@ -142,7 +143,7 @@ current = mob_override GLOB.all_clockwork_mobs -= current current.faction -= "ratvar" - current.remove_language(/datum/language/ratvar) + current.remove_language(/datum/language/ratvar, TRUE, TRUE, LANGUAGE_CLOCKIE) current.clear_alert("clockinfo") for(var/datum/action/innate/clockwork_armaments/C in owner.current.actions) //Removes any bound clockwork armor qdel(C) @@ -152,6 +153,7 @@ var/mob/living/silicon/S = current if(isAI(S)) var/mob/living/silicon/ai/A = S + A.remove_blocked_language(subtypesof(/datum/language) - /datum/language/ratvar, LANGUAGE_CLOCKIE) A.can_be_carded = initial(A.can_be_carded) A.requires_power = initial(A.requires_power) A.cut_overlays() diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index d64e99d206..28d1a66e00 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -454,16 +454,16 @@ S.emp_act(EMP_HEAVY) else if(iscarbon(target)) var/mob/living/carbon/C = L - C.silent += CLAMP(12 - C.silent, 0, 6) - C.stuttering += CLAMP(30 - C.stuttering, 0, 15) - C.cultslurring += CLAMP(30 - C.cultslurring, 0, 15) + C.silent += clamp(12 - C.silent, 0, 6) + C.stuttering += clamp(30 - C.stuttering, 0, 15) + C.cultslurring += clamp(30 - C.cultslurring, 0, 15) C.Jitter(15) else // cultstun no longer hardstuns + damages hostile cultists, instead debuffs them hard + deals some damage; debuffs for a bit longer since they don't add the clockie belligerent debuff if(iscarbon(target)) var/mob/living/carbon/C = L C.stuttering = max(10, C.stuttering) C.drowsyness = max(10, C.drowsyness) - C.confused += CLAMP(20 - C.confused, 0, 10) + C.confused += clamp(20 - C.confused, 0, 10) L.adjustBruteLoss(15) to_chat(user, "In an brilliant flash of red, [L] [iscultist(L) ? "writhes in pain" : "falls to the ground!"]") uses-- diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 023794182a..87e116166e 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -116,7 +116,7 @@ if(mob_override) current = mob_override current.faction |= "cult" - current.grant_language(/datum/language/narsie) + current.grant_language(/datum/language/narsie, TRUE, TRUE, LANGUAGE_CULTIST) if(!cult_team?.cult_master) vote.Grant(current) communion.Grant(current) @@ -134,7 +134,7 @@ if(mob_override) current = mob_override current.faction -= "cult" - current.remove_language(/datum/language/narsie) + current.remove_language(/datum/language/narsie, TRUE, TRUE, LANGUAGE_CULTIST) vote.Remove(current) communion.Remove(current) magic.Remove(current) @@ -441,7 +441,7 @@ if(objective.completable) var/completion = objective.check_completion() if(completion >= 1) - parts += "Objective #[count]: [objective.explanation_text] Success!" + parts += "Objective #[count]: [objective.explanation_text] Success!" else if(completion <= 0) parts += "Objective #[count]: [objective.explanation_text] Fail." else diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index b05aa7f769..ffab8174e5 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -539,7 +539,7 @@ if(SSshuttle.emergency.mode == SHUTTLE_CALL) var/cursetime = 1800 var/timer = SSshuttle.emergency.timeLeft(1) + cursetime - var/security_num = seclevel2num(get_security_level()) + var/security_num = SECLEVEL2NUM(NUM2SECLEVEL(GLOB.security_level)) var/set_coefficient = 1 switch(security_num) if(SEC_LEVEL_GREEN) @@ -731,7 +731,7 @@ if(!L.anti_magic_check()) if(is_servant_of_ratvar(L)) to_chat(L, "\"Kneel for me, scum\"") - L.confused += CLAMP(10 - L.confused, 0, 5) //confuses and lightly knockdowns + damages hostile cultists instead of hardstunning like before + L.confused += clamp(10 - L.confused, 0, 5) //confuses and lightly knockdowns + damages hostile cultists instead of hardstunning like before L.DefaultCombatKnockdown(15) L.adjustBruteLoss(10) else diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm index a7071276cc..e20203d9e6 100644 --- a/code/modules/antagonists/devil/devil.dm +++ b/code/modules/antagonists/devil/devil.dm @@ -527,7 +527,7 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", /datum/antagonist/devil/apply_innate_effects(mob/living/mob_override) give_appropriate_spells() - owner.current.grant_all_languages(TRUE) + owner.current.grant_all_languages(TRUE, TRUE, TRUE, LANGUAGE_DEVIL) update_hud() .=..() @@ -536,6 +536,7 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", var/obj/effect/proc_holder/spell/S = X if(is_type_in_typecache(S, devil_spells)) owner.RemoveSpell(S) + owner.current.remove_all_languages(LANGUAGE_DEVIL) .=..() /datum/antagonist/devil/proc/printdevilinfo() diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm index 5725ac137b..1b245b5a01 100644 --- a/code/modules/antagonists/devil/true_devil/_true_devil.dm +++ b/code/modules/antagonists/devil/true_devil/_true_devil.dm @@ -29,7 +29,7 @@ /mob/living/carbon/true_devil/Initialize() create_bodyparts() //initialize bodyparts create_internal_organs() - grant_all_languages(omnitongue=TRUE) + grant_all_languages() ..() /mob/living/carbon/true_devil/create_internal_organs() diff --git a/code/modules/antagonists/disease/disease_datum.dm b/code/modules/antagonists/disease/disease_datum.dm index c827179006..7de0330ad6 100644 --- a/code/modules/antagonists/disease/disease_datum.dm +++ b/code/modules/antagonists/disease/disease_datum.dm @@ -55,7 +55,7 @@ if(objective.completable) var/completion = objective.check_completion() if(completion >= 1) - result += "Objective #[count]: [objective.explanation_text] Success!" + result += "Objective #[count]: [objective.explanation_text] Success!" else if(completion <= 0) result += "Objective #[count]: [objective.explanation_text] Fail." win = FALSE diff --git a/code/modules/antagonists/disease/disease_mob.dm b/code/modules/antagonists/disease/disease_mob.dm index a20a9cef85..e876beb5dc 100644 --- a/code/modules/antagonists/disease/disease_mob.dm +++ b/code/modules/antagonists/disease/disease_mob.dm @@ -128,6 +128,9 @@ the new instance inside the host to be updated to the template's stats. link = FOLLOW_LINK(src, to_follow) else link = "" + // Create map text prior to modifying message for goonchat + if (client?.prefs.chat_on_map && (client.prefs.see_chat_non_mob || ismob(speaker))) + create_chat_message(speaker, message_language, raw_message, spans, message_mode) // Recompose the message, because it's scrambled by default message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode, FALSE, source) to_chat(src, "[link] [message]") diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index ae8a23aaf5..49b475e98b 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -44,7 +44,7 @@ STOP_PROCESSING(SSobj, core) update_icon() GLOB.poi_list |= src - previous_level = get_security_level() + previous_level = NUM2SECLEVEL(GLOB.security_level) /obj/machinery/nuclearbomb/Destroy() safety = FALSE @@ -360,7 +360,7 @@ if(NUKEUI_AWAIT_TIMER) var/number_value = text2num(numeric_input) if(number_value) - timer_set = CLAMP(number_value, minimum_timer_set, maximum_timer_set) + timer_set = clamp(number_value, minimum_timer_set, maximum_timer_set) playsound(src, 'sound/machines/nuke/general_beep.ogg', 50, FALSE) set_safety() . = TRUE @@ -421,7 +421,7 @@ return timing = !timing if(timing) - previous_level = get_security_level() + previous_level = NUM2SECLEVEL(GLOB.security_level) detonation_timer = world.time + (timer_set * 10) for(var/obj/item/pinpointer/nuke/syndicate/S in GLOB.pinpointer_list) S.switch_mode_to(TRACK_INFILTRATOR) diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm index 475438ba52..5d409a7fb9 100644 --- a/code/modules/antagonists/slaughter/slaughter.dm +++ b/code/modules/antagonists/slaughter/slaughter.dm @@ -64,8 +64,8 @@ /mob/living/simple_animal/slaughter/phasein() . = ..() - add_movespeed_modifier(MOVESPEED_ID_SLAUGHTER, update=TRUE, priority=100, multiplicative_slowdown=-1) - addtimer(CALLBACK(src, .proc/remove_movespeed_modifier, MOVESPEED_ID_SLAUGHTER, TRUE), 6 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + add_movespeed_modifier(/datum/movespeed_modifier/slaughter) + addtimer(CALLBACK(src, .proc/remove_movespeed_modifier, /datum/movespeed_modifier/slaughter), 6 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) //The loot from killing a slaughter demon - can be consumed to allow the user to blood crawl diff --git a/code/modules/antagonists/slaughter/slaughterevent.dm b/code/modules/antagonists/slaughter/slaughterevent.dm index 069795cfb8..1c6412dcad 100644 --- a/code/modules/antagonists/slaughter/slaughterevent.dm +++ b/code/modules/antagonists/slaughter/slaughterevent.dm @@ -27,6 +27,9 @@ for(var/obj/effect/landmark/carpspawn/L in GLOB.landmarks_list) if(isturf(L.loc)) spawn_locs += L.loc + for(var/obj/effect/landmark/loneopspawn/L in GLOB.landmarks_list) + if(isturf(L.loc)) + spawn_locs += L.loc if(!spawn_locs) message_admins("No valid spawn locations found, aborting...") diff --git a/code/modules/antagonists/traitor/classes/ai.dm b/code/modules/antagonists/traitor/classes/ai.dm index eaa1137d51..f9682e5025 100644 --- a/code/modules/antagonists/traitor/classes/ai.dm +++ b/code/modules/antagonists/traitor/classes/ai.dm @@ -65,5 +65,5 @@ /datum/traitor_class/ai/finalize_traitor(datum/antagonist/traitor/T) T.add_law_zero() T.owner.current.playsound_local(get_turf(T.owner.current), 'sound/ambience/antag/malf.ogg', 100, FALSE, pressure_affected = FALSE) - T.owner.current.grant_language(/datum/language/codespeak) + T.owner.current.grant_language(/datum/language/codespeak, TRUE, TRUE, LANGUAGE_MALF) return FALSE diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index cf10f87bf8..1d30cdbf77 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -48,7 +48,7 @@ var/datum/traitor_class/class = GLOB.traitor_classes[C] var/weight = LOGISTIC_FUNCTION(1.5*class.weight,chaos_weight,class.chaos,0) weights[C] = weight * 1000 - var/choice = pickweightAllowZero(weights) + var/choice = pickweight(weights, 0) if(!choice) choice = TRAITOR_HUMAN // it's an "easter egg" var/datum/traitor_class/actual_class = GLOB.traitor_classes[choice] @@ -239,7 +239,7 @@ if(objective.completable) var/completion = objective.check_completion() if(completion >= 1) - objectives_text += "
    Objective #[count]: [objective.explanation_text] Success!" + objectives_text += "
    Objective #[count]: [objective.explanation_text] Success!" else if(completion <= 0) objectives_text += "
    Objective #[count]: [objective.explanation_text] Fail." traitorwin = FALSE diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index 7c63266255..ff3d95598d 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -159,7 +159,7 @@ /obj/item/scrying/attack_self(mob/user) to_chat(user, "You can see...everything!") visible_message("[user] stares into [src], their eyes glazing over.") - user.ghostize(1) + user.ghostize(1, voluntary = TRUE) /////////////////////////////////////////Necromantic Stone/////////////////// diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm index d7f1046cd7..46961c0caf 100644 --- a/code/modules/antagonists/wizard/equipment/soulstone.dm +++ b/code/modules/antagonists/wizard/equipment/soulstone.dm @@ -233,7 +233,7 @@ newstruct.cancel_camera() -/obj/item/soulstone/proc/init_shade(mob/living/carbon/human/T, mob/U, vic = 0) +/obj/item/soulstone/proc/init_shade(mob/living/carbon/human/T, mob/user, vic = 0) new /obj/effect/decal/remains/human(T.loc) //Spawns a skeleton T.stop_sound_channel(CHANNEL_HEARTBEAT) T.invisibility = INVISIBILITY_ABSTRACT @@ -245,20 +245,23 @@ S.name = "Shade of [T.real_name]" S.real_name = "Shade of [T.real_name]" T.transfer_ckey(S) - S.language_holder = U.language_holder.copy(S) - if(U) - S.faction |= "[REF(U)]" //Add the master as a faction, allowing inter-mob cooperation - if(U && iscultist(U)) + S.copy_languages(T, LANGUAGE_MIND)//Copies the old mobs languages into the new mob holder. + S.copy_languages(user, LANGUAGE_MASTER) + S.update_atom_languages() + grant_all_languages(FALSE, FALSE, TRUE) //Grants omnitongue + if(user) + S.faction |= "[REF(user)]" //Add the master as a faction, allowing inter-mob cooperation + if(user && iscultist(user)) SSticker.mode.add_cultist(S.mind, 0) S.cancel_camera() name = "soulstone: Shade of [T.real_name]" icon_state = "soulstone2" - if(U && (iswizard(U) || usability)) - to_chat(S, "Your soul has been captured! You are now bound to [U.real_name]'s will. Help [U.p_them()] succeed in [U.p_their()] goals at all costs.") - else if(U && iscultist(U)) + if(user && (iswizard(user) || usability)) + to_chat(S, "Your soul has been captured! You are now bound to [user.real_name]'s will. Help [user.p_them()] succeed in [user.p_their()] goals at all costs.") + else if(user && iscultist(user)) to_chat(S, "Your soul has been captured! You are now bound to the cult's will. Help them succeed in their goals at all costs.") - if(vic && U) - to_chat(U, "Capture successful!: [T.real_name]'s soul has been ripped from [T.p_their()] body and stored within the soul stone.") + if(vic && user) + to_chat(user, "Capture successful!: [T.real_name]'s soul has been ripped from [T.p_their()] body and stored within the soul stone.") /obj/item/soulstone/proc/getCultGhost(mob/living/carbon/human/T, mob/U) diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm index 2bcda1d400..d49a8f83c6 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook.dm @@ -294,7 +294,7 @@ name = "Staff of Change" desc = "An artefact that spits bolts of coruscating energy which cause the target's very form to reshape itself." item_path = /obj/item/gun/magic/staff/change - dynamic_requirement = 60 + dynamic_requirement = 200 /datum/spellbook_entry/item/staffanimation name = "Staff of Animation" @@ -361,7 +361,7 @@ desc = "A collection of wands that allow for a wide variety of utility. Wands have a limited number of charges, so be conservative in use. Comes in a handy belt." item_path = /obj/item/storage/belt/wands/full category = "Defensive" - dynamic_requirement = 60 + dynamic_requirement = 200 /datum/spellbook_entry/item/armor name = "Mastercrafted Armor Set" @@ -386,7 +386,7 @@ name = "Plasma Fist" desc = "A forbidden martial art designed on the surging power of plasma. Use it to harness the ancient power." item_path = /obj/item/book/granter/martial/plasma_fist - cost = 3 + cost = 2 /datum/spellbook_entry/item/guardian name = "Guardian Deck" diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index 2d32f8f00a..70adafd3fb 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -269,7 +269,7 @@ if(objective.completable) var/completion = objective.check_completion() if(completion >= 1) - parts += "Objective #[count]: [objective.explanation_text] Success!" + parts += "Objective #[count]: [objective.explanation_text] Success!" else if(completion <= 0) parts += "Objective #[count]: [objective.explanation_text] Fail." wizardwin = FALSE diff --git a/modular_citadel/code/modules/arousal/arousal.dm b/code/modules/arousal/arousal.dm similarity index 99% rename from modular_citadel/code/modules/arousal/arousal.dm rename to code/modules/arousal/arousal.dm index 843672877e..c9b2690784 100644 --- a/modular_citadel/code/modules/arousal/arousal.dm +++ b/code/modules/arousal/arousal.dm @@ -63,10 +63,12 @@ if(!target || !R) return var/turfing = isturf(target) + G.generate_fluid(R) if(spill && R.total_volume >= 5) R.reaction(turfing ? target : target.loc, TOUCH, 1, 0) if(!turfing) R.trans_to(target, R.total_volume * (spill ? G.fluid_transfer_factor : 1)) + G.time_since_last_orgasm = 0 R.clear_reagents() /mob/living/carbon/human/proc/mob_climax_outside(obj/item/organ/genital/G, mb_time = 30) //This is used for forced orgasms and other hands-free climaxes diff --git a/modular_citadel/code/modules/arousal/genitals.dm b/code/modules/arousal/genitals.dm similarity index 95% rename from modular_citadel/code/modules/arousal/genitals.dm rename to code/modules/arousal/genitals.dm index e0e1b37a3d..fb254a2dcc 100644 --- a/modular_citadel/code/modules/arousal/genitals.dm +++ b/code/modules/arousal/genitals.dm @@ -1,6 +1,7 @@ /obj/item/organ/genital color = "#fcccb3" w_class = WEIGHT_CLASS_SMALL + organ_flags = ORGAN_NO_DISMEMBERMENT var/shape var/sensitivity = 1 // wow if this were ever used that'd be cool but it's not but i'm keeping it for my unshit code var/genital_flags //see citadel_defines.dm @@ -15,6 +16,7 @@ var/fluid_efficiency = 1 var/fluid_rate = CUM_RATE var/fluid_mult = 1 + var/time_since_last_orgasm = 500 var/aroused_state = FALSE //Boolean used in icon_state strings var/obj/item/organ/genital/linked_organ var/linked_organ_slot //used for linking an apparatus' organ to its other half on update_link(). @@ -150,24 +152,18 @@ aroused_state = FALSE /obj/item/organ/genital/on_life() - if(!reagents || !owner) + . = ..() + if(!reagents || !.) return reagents.maximum_volume = fluid_max_volume if(fluid_id && CHECK_BITFIELD(genital_flags, GENITAL_FUID_PRODUCTION)) - generate_fluid() + time_since_last_orgasm++ -/obj/item/organ/genital/proc/generate_fluid() - var/amount = fluid_rate - if(!reagents.total_volume && amount < 0.1) // Apparently, 0.015 gets rounded down to zero and no reagents are created if we don't start it with 0.1 in the tank. - amount += 0.1 - var/multiplier = fluid_mult - if(reagents.total_volume >= 5) - multiplier *= 0.8 - if(reagents.total_volume < reagents.maximum_volume) - reagents.isolate_reagent(fluid_id)//remove old reagents if it changed and just clean up generally - reagents.add_reagent(fluid_id, (amount * multiplier))//generate the cum - return TRUE - return FALSE +/obj/item/organ/genital/proc/generate_fluid(datum/reagents/R) + var/amount = clamp(fluid_rate * time_since_last_orgasm * fluid_mult,0,fluid_max_volume) + R.clear_reagents() + R.add_reagent(fluid_id,amount) + return TRUE /obj/item/organ/genital/proc/update_link() if(owner) diff --git a/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm b/code/modules/arousal/genitals_sprite_accessories.dm similarity index 85% rename from modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm rename to code/modules/arousal/genitals_sprite_accessories.dm index 1cea2dd916..1140a1d3ec 100644 --- a/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm +++ b/code/modules/arousal/genitals_sprite_accessories.dm @@ -9,7 +9,7 @@ //DICKS,COCKS,PENISES,WHATEVER YOU WANT TO CALL THEM /datum/sprite_accessory/penis - icon = 'modular_citadel/icons/obj/genitals/penis_onmob.dmi' + icon = 'icons/obj/genitals/penis_onmob.dmi' name = "penis" //the preview name of the accessory color_src = "cock_color" alt_aroused = TRUE @@ -22,13 +22,13 @@ /datum/sprite_accessory/penis/knotted icon_state = "knotted" name = "Knotted" - taur_icon = 'modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi' + taur_icon = 'icons/obj/genitals/taur_penis_onmob.dmi' taur_dimension_x = 64 /datum/sprite_accessory/penis/flared icon_state = "flared" name = "Flared" - taur_icon = 'modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi' + taur_icon = 'icons/obj/genitals/taur_penis_onmob.dmi' taur_dimension_x = 64 /datum/sprite_accessory/penis/barbknot @@ -38,7 +38,7 @@ /datum/sprite_accessory/penis/tapered icon_state = "tapered" name = "Tapered" - taur_icon = 'modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi' + taur_icon = 'icons/obj/genitals/taur_penis_onmob.dmi' taur_dimension_x = 64 /datum/sprite_accessory/penis/tentacle @@ -55,7 +55,7 @@ //Testicles /datum/sprite_accessory/testicles - icon = 'modular_citadel/icons/obj/genitals/testicles_onmob.dmi' + icon = 'icons/obj/genitals/testicles_onmob.dmi' icon_state = "testicle" name = "testicle" //the preview name of the accessory color_src = "balls_color" @@ -66,7 +66,7 @@ //Vaginas /datum/sprite_accessory/vagina - icon = 'modular_citadel/icons/obj/genitals/vagina_onmob.dmi' + icon = 'icons/obj/genitals/vagina_onmob.dmi' name = "vagina" color_src = "vag_color" alt_aroused = TRUE @@ -104,7 +104,7 @@ //BREASTS BE HERE /datum/sprite_accessory/breasts - icon = 'modular_citadel/icons/obj/genitals/breasts_onmob.dmi' + icon = 'icons/obj/genitals/breasts_onmob.dmi' name = "breasts" color_src = "breasts_color" diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/code/modules/arousal/organs/breasts.dm similarity index 96% rename from modular_citadel/code/modules/arousal/organs/breasts.dm rename to code/modules/arousal/organs/breasts.dm index c936eb9dc4..0989966638 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/code/modules/arousal/organs/breasts.dm @@ -5,7 +5,7 @@ name = "breasts" desc = "Female milk producing organs." icon_state = "breasts" - icon = 'modular_citadel/icons/obj/genitals/breasts.dmi' + icon = 'icons/obj/genitals/breasts.dmi' zone = BODY_ZONE_CHEST slot = ORGAN_SLOT_BREASTS size = BREASTS_SIZE_DEF // "c". Refer to the breast_values static list below for the cups associated number values @@ -54,7 +54,7 @@ desc += " They're leaking [lowertext(R.name)]." var/datum/sprite_accessory/S = GLOB.breasts_shapes_list[shape] var/icon_shape = S ? S.icon_state : "pair" - var/icon_size = CLAMP(breast_values[size], BREASTS_ICON_MIN_SIZE, BREASTS_ICON_MAX_SIZE) + var/icon_size = clamp(breast_values[size], BREASTS_ICON_MIN_SIZE, BREASTS_ICON_MAX_SIZE) icon_state = "breasts_[icon_shape]_[icon_size]" if(owner) if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"]) @@ -73,7 +73,7 @@ //this is far too lewd wah /obj/item/organ/genital/breasts/modify_size(modifier, min = -INFINITY, max = INFINITY) - var/new_value = CLAMP(cached_size + modifier, min, max) + var/new_value = clamp(cached_size + modifier, min, max) if(new_value == cached_size) return prev_size = cached_size diff --git a/modular_citadel/code/modules/arousal/organs/penis.dm b/code/modules/arousal/organs/penis.dm similarity index 94% rename from modular_citadel/code/modules/arousal/organs/penis.dm rename to code/modules/arousal/organs/penis.dm index c05549aaa0..7b20c0e7ce 100644 --- a/modular_citadel/code/modules/arousal/organs/penis.dm +++ b/code/modules/arousal/organs/penis.dm @@ -2,7 +2,7 @@ name = "penis" desc = "A male reproductive organ." icon_state = "penis" - icon = 'modular_citadel/icons/obj/genitals/penis.dmi' + icon = 'icons/obj/genitals/penis.dmi' zone = BODY_ZONE_PRECISE_GROIN slot = ORGAN_SLOT_PENIS masturbation_verb = "stroke" @@ -21,11 +21,11 @@ var/diameter_ratio = COCK_DIAMETER_RATIO_DEF //0.25; check citadel_defines.dm /obj/item/organ/genital/penis/modify_size(modifier, min = -INFINITY, max = INFINITY) - var/new_value = CLAMP(length + modifier, min, max) + var/new_value = clamp(length + modifier, min, max) if(new_value == length) return prev_length = length - length = CLAMP(length + modifier, min, max) + length = clamp(length + modifier, min, max) update() ..() @@ -60,7 +60,7 @@ else if(!enlargement && status_effect) owner.remove_status_effect(STATUS_EFFECT_PENIS_ENLARGEMENT) if(linked_organ) - linked_organ.size = CLAMP(size + new_size, BALLS_SIZE_MIN, BALLS_SIZE_MAX) + linked_organ.size = clamp(size + new_size, BALLS_SIZE_MIN, BALLS_SIZE_MAX) linked_organ.update() size = new_size diff --git a/modular_citadel/code/modules/arousal/organs/testicles.dm b/code/modules/arousal/organs/testicles.dm similarity index 91% rename from modular_citadel/code/modules/arousal/organs/testicles.dm rename to code/modules/arousal/organs/testicles.dm index a8946294b1..bfb5c99a55 100644 --- a/modular_citadel/code/modules/arousal/organs/testicles.dm +++ b/code/modules/arousal/organs/testicles.dm @@ -2,7 +2,7 @@ name = "testicles" desc = "A male reproductive organ." icon_state = "testicles" - icon = 'modular_citadel/icons/obj/genitals/testicles.dmi' + icon = 'icons/obj/genitals/testicles.dmi' zone = BODY_ZONE_PRECISE_GROIN slot = ORGAN_SLOT_TESTICLES size = BALLS_SIZE_MIN @@ -19,9 +19,8 @@ /obj/item/organ/genital/testicles/generate_fluid() if(!linked_organ && !update_link()) return FALSE - . = ..() - if(. && reagents.holder_full()) - to_chat(owner, "Your balls finally feel full, again.") + return ..() + // in memoriam "Your balls finally feel full, again." ??-2020 /obj/item/organ/genital/testicles/upon_link() size = linked_organ.size @@ -65,4 +64,4 @@ fluid_rate = D.features["balls_cum_rate"] fluid_mult = D.features["balls_cum_mult"] fluid_efficiency = D.features["balls_efficiency"] - toggle_visibility(D.features["balls_visibility"], FALSE) \ No newline at end of file + toggle_visibility(D.features["balls_visibility"], FALSE) diff --git a/modular_citadel/code/modules/arousal/organs/vagina.dm b/code/modules/arousal/organs/vagina.dm similarity index 97% rename from modular_citadel/code/modules/arousal/organs/vagina.dm rename to code/modules/arousal/organs/vagina.dm index cdc7dc4927..5c8bbeea98 100644 --- a/modular_citadel/code/modules/arousal/organs/vagina.dm +++ b/code/modules/arousal/organs/vagina.dm @@ -1,7 +1,7 @@ /obj/item/organ/genital/vagina name = "vagina" desc = "A female reproductive organ." - icon = 'modular_citadel/icons/obj/genitals/vagina.dmi' + icon = 'icons/obj/genitals/vagina.dmi' icon_state = ORGAN_SLOT_VAGINA zone = BODY_ZONE_PRECISE_GROIN slot = "vagina" diff --git a/modular_citadel/code/modules/arousal/organs/womb.dm b/code/modules/arousal/organs/womb.dm similarity index 84% rename from modular_citadel/code/modules/arousal/organs/womb.dm rename to code/modules/arousal/organs/womb.dm index 7f91310e3e..386f407a26 100644 --- a/modular_citadel/code/modules/arousal/organs/womb.dm +++ b/code/modules/arousal/organs/womb.dm @@ -1,7 +1,7 @@ /obj/item/organ/genital/womb name = "womb" desc = "A female reproductive organ." - icon = 'modular_citadel/icons/obj/genitals/vagina.dmi' + icon = 'icons/obj/genitals/vagina.dmi' icon_state = "womb" zone = BODY_ZONE_PRECISE_GROIN slot = ORGAN_SLOT_WOMB diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/code/modules/arousal/toys/dildos.dm similarity index 98% rename from modular_citadel/code/modules/arousal/toys/dildos.dm rename to code/modules/arousal/toys/dildos.dm index 58245c0c5f..5cb6d47118 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/code/modules/arousal/toys/dildos.dm @@ -4,7 +4,7 @@ /obj/item/dildo name = "dildo" desc = "Floppy!" - icon = 'modular_citadel/icons/obj/genitals/dildo.dmi' + icon = 'icons/obj/genitals/dildo.dmi' force = 0 hitsound = 'sound/weapons/tap.ogg' throwforce = 0 diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm index 1c9c1a0203..32e262ce65 100644 --- a/code/modules/assembly/doorcontrol.dm +++ b/code/modules/assembly/doorcontrol.dm @@ -3,14 +3,35 @@ desc = "A small electronic device able to control a blast door remotely." icon_state = "control" attachable = TRUE - var/id = null - var/can_change_id = 0 + /// Our ID. Make the first character ! if you want to obfuscate it as a mapper via randomization. + var/id + /// Can the ID be changed if used in hand? + var/can_change_id = FALSE + /// Show ID? + var/show_id = TRUE var/cooldown = FALSE //Door cooldowns +/obj/item/assembly/control/Initialize(mapload) + if(mapload && id) + if(copytext(id, 1, 2) == "!") + id = SSmapping.get_obfuscated_id(id) + return ..() + /obj/item/assembly/control/examine(mob/user) . = ..() - if(id) + if(id && show_id) . += "Its channel ID is '[id]'." + if(can_change_id) + . += "Use in hand to change ID." + +/obj/item/assembly/control/attack_self(mob/living/user) + . = ..() + if(!can_change_id) + return + var/new_id + new_id = input(user, "Set ID", "Set ID", show_id? id : null) as text|null + if(!isnull(new_id)) //0/"" is considered !, so check null instead of just !. + id = new_id /obj/item/assembly/control/activate() cooldown = TRUE @@ -22,7 +43,6 @@ INVOKE_ASYNC(M, openclose ? /obj/machinery/door/poddoor.proc/open : /obj/machinery/door/poddoor.proc/close) addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 10) - /obj/item/assembly/control/airlock name = "airlock controller" desc = "A small electronic device able to control an airlock remotely." @@ -123,7 +143,6 @@ addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 50) - /obj/item/assembly/control/crematorium name = "crematorium controller" desc = "An evil-looking remote controller for a crematorium." @@ -135,3 +154,14 @@ C.cremate(usr) addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 50) + +/obj/item/assembly/control/electrochromatic + name = "electrochromatic window controller" + desc = "Toggles linked electrochromatic windows." + can_change_id = TRUE + /// Stores our status to prevent windows from desyncing. + var/on = FALSE + +/obj/item/assembly/control/electrochromatic/activate() + on = !on + do_electrochromatic_toggle(on, id) diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm index 0fbc5cf71c..8a0645f311 100644 --- a/code/modules/assembly/flash.dm +++ b/code/modules/assembly/flash.dm @@ -229,6 +229,7 @@ var/flashcd = 20 var/overheat = 0 var/obj/item/organ/cyberimp/arm/flash/I = null + var/active_light_strength = 7 /obj/item/assembly/flash/armimplant/burn_out() if(I && I.owner) @@ -248,6 +249,12 @@ update_icon(1) return TRUE +/obj/item/assembly/flash/armimplant/Moved(oldLoc, dir) + . = ..() + if(!ismob(loc)) + set_light(0) + else + set_light(7) /obj/item/assembly/flash/armimplant/proc/cooldown() overheat = FALSE diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index d2cb35cd7c..23fb7ca9eb 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -161,12 +161,53 @@ return FALSE if(signal.data["code"] != code) return FALSE + if(suicider) + manual_suicide(suicider) for(var/obj/effect/anomaly/A in get_turf(src)) A.anomalyNeutralize() return TRUE -/obj/item/assembly/signaler/anomaly/attack_self() - return +/obj/item/assembly/signaler/anomaly/manual_suicide(mob/living/carbon/user) + user.visible_message("[user]'s [src] is reacting to the radio signal, warping [user.p_their()] body!") + user.suiciding = TRUE + user.suicide_log() + user.gib() + +/obj/item/assembly/signaler/anomaly/attackby(obj/item/I, mob/user, params) + if(I.tool_behaviour == TOOL_ANALYZER) + to_chat(user, "Analyzing... [src]'s stabilized field is fluctuating along frequency [format_frequency(frequency)], code [code].") + ..() + +//Anomaly cores +/obj/item/assembly/signaler/anomaly/pyro + name = "\improper pyroclastic anomaly core" + desc = "The neutralized core of a pyroclastic anomaly. It feels warm to the touch. It'd probably be valuable for research." + icon_state = "pyro core" + anomaly_type = /obj/effect/anomaly/pyro + +/obj/item/assembly/signaler/anomaly/grav + name = "\improper gravitational anomaly core" + desc = "The neutralized core of a gravitational anomaly. It feels much heavier than it looks. It'd probably be valuable for research." + icon_state = "grav core" + anomaly_type = /obj/effect/anomaly/grav + +/obj/item/assembly/signaler/anomaly/flux + name = "\improper flux anomaly core" + desc = "The neutralized core of a flux anomaly. Touching it makes your skin tingle. It'd probably be valuable for research." + icon_state = "flux core" + anomaly_type = /obj/effect/anomaly/flux + +/obj/item/assembly/signaler/anomaly/bluespace + name = "\improper bluespace anomaly core" + desc = "The neutralized core of a bluespace anomaly. It keeps phasing in and out of view. It'd probably be valuable for research." + icon_state = "anomaly core" + anomaly_type = /obj/effect/anomaly/bluespace + +/obj/item/assembly/signaler/anomaly/vortex + name = "\improper vortex anomaly core" + desc = "The neutralized core of a vortex anomaly. It won't sit still, as if some invisible force is acting on it. It'd probably be valuable for research." + icon_state = "vortex core" + anomaly_type = /obj/effect/anomaly/bhole /obj/item/assembly/signaler/cyborg diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm index c47c4a44af..06d73867f8 100644 --- a/code/modules/atmospherics/environmental/LINDA_fire.dm +++ b/code/modules/atmospherics/environmental/LINDA_fire.dm @@ -9,7 +9,7 @@ return -/turf/open/hotspot_expose(exposed_temperature, exposed_volume, soh) +/turf/open/hotspot_expose(exposed_temperature, exposed_volume, soh = FALSE, holo = FALSE) var/datum/gas_mixture/air_contents = return_air() if(!air_contents) return 0 @@ -35,7 +35,7 @@ if(oxy < 0.5) return 0 - active_hotspot = new /obj/effect/hotspot(src) + active_hotspot = new /obj/effect/hotspot(src, holo) active_hotspot.temperature = exposed_temperature*50 active_hotspot.volume = exposed_volume*25 @@ -67,8 +67,10 @@ var/bypassing = FALSE var/visual_update_tick = 0 -/obj/effect/hotspot/Initialize() +/obj/effect/hotspot/Initialize(mapload, holo = FALSE) . = ..() + if(holo) + flags_1 |= HOLOGRAM_1 SSair.hotspots += src perform_exposure() setDir(pick(GLOB.cardinals)) @@ -192,7 +194,8 @@ if(bypassing) icon_state = "3" - location.burn_tile() + if(!(flags_1 & HOLOGRAM_1)) + location.burn_tile() //Possible spread due to radiated heat if(location.air.temperature > FIRE_MINIMUM_TEMPERATURE_TO_SPREAD) @@ -200,7 +203,7 @@ for(var/t in location.atmos_adjacent_turfs) var/turf/open/T = t if(!T.active_hotspot) - T.hotspot_expose(radiated_temperature, CELL_VOLUME/4) + T.hotspot_expose(radiated_temperature, CELL_VOLUME/4, flags_1 & HOLOGRAM_1) else if(volume > CELL_VOLUME*0.4) @@ -224,7 +227,8 @@ var/turf/open/T = loc if(istype(T) && T.active_hotspot == src) T.active_hotspot = null - DestroyTurf() + if(!(flags_1 & HOLOGRAM_1)) + DestroyTurf() return ..() /obj/effect/hotspot/proc/DestroyTurf() diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm index 632542f605..081f0b1d28 100644 --- a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm +++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm @@ -89,7 +89,7 @@ temperature_archived = temperature /turf/open/archive() - ARCHIVE_TEMPERATURE(air) + ARCHIVE(air) archived_cycle = SSair.times_fired temperature_archived = temperature @@ -215,7 +215,7 @@ if (planet_atmos) //share our air with the "atmosphere" "above" the turf var/datum/gas_mixture/G = new G.copy_from_turf(src) - ARCHIVE_TEMPERATURE(G) + ARCHIVE(G) if(our_air.compare(G)) if(!our_excited_group) var/datum/excited_group/EG = new diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm index 5ff8586c34..93927f4420 100644 --- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm +++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm @@ -17,6 +17,7 @@ GLOBAL_LIST_INIT(meta_gas_ids, meta_gas_id_list()) GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list()) /datum/gas_mixture var/list/gases = list() + var/list/gas_archive = list() var/temperature = 0 //kelvins var/tmp/temperature_archived = 0 var/volume = CELL_VOLUME //liters @@ -31,13 +32,25 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list()) //PV = nRT -/datum/gas_mixture/proc/heat_capacity() //joules per kelvin +/datum/gas_mixture/proc/heat_capacity() + +/datum/gas_mixture/proc/archived_heat_capacity() + +/datum/gas_mixture/heat_capacity() //joules per kelvin var/list/cached_gases = gases var/list/cached_gasheats = GLOB.meta_gas_specific_heats . = 0 for(var/id in cached_gases) . += cached_gases[id] * cached_gasheats[id] +/datum/gas_mixture/archived_heat_capacity() + // lots of copypasta but heat_capacity is the single proc called the most in a regular round, bar none, so performance loss adds up + var/list/cached_gases = gas_archive + var/list/cached_gasheats = GLOB.meta_gas_specific_heats + . = 0 + for(var/id in cached_gases) + . += cached_gases[id] * cached_gasheats[id] + /datum/gas_mixture/turf/heat_capacity() // Same as above except vacuums return HEAT_CAPACITY_VACUUM var/list/cached_gases = gases var/list/cached_gasheats = GLOB.meta_gas_specific_heats @@ -46,6 +59,14 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list()) if(!.) . += HEAT_CAPACITY_VACUUM //we want vacuums in turfs to have the same heat capacity as space +/datum/gas_mixture/turf/archived_heat_capacity() // Same as above except vacuums return HEAT_CAPACITY_VACUUM + var/list/cached_gases = gas_archive + var/list/cached_gasheats = GLOB.meta_gas_specific_heats + for(var/id in cached_gases) + . += cached_gases[id] * cached_gasheats[id] + if(!.) + . += HEAT_CAPACITY_VACUUM //we want vacuums in turfs to have the same heat capacity as space + /datum/gas_mixture/proc/total_moles() var/cached_gases = gases TOTAL_MOLES(cached_gases, .) @@ -67,6 +88,10 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list()) /datum/gas_mixture/proc/thermal_energy() //joules return THERMAL_ENERGY(src) //see code/__DEFINES/atmospherics.dm; use the define in performance critical areas +/datum/gas_mixture/proc/archive() + //Update archived versions of variables + //Returns: 1 in all cases + /datum/gas_mixture/proc/merge(datum/gas_mixture/giver) //Merges all air from giver into self. Deletes giver. //Returns: 1 if we are mutable, 0 otherwise @@ -111,6 +136,10 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list()) //Performs various reactions such as combustion or fusion (LOL) //Returns: 1 if any reaction took place; 0 otherwise +/datum/gas_mixture/archive() + temperature_archived = temperature + gas_archive = gases.Copy() + return 1 /datum/gas_mixture/merge(datum/gas_mixture/giver) if(!giver) @@ -245,7 +274,7 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list()) //GAS TRANSFER for(var/id in cached_gases | sharer_gases) // transfer gases - delta = QUANTIZE(cached_gases[id] - sharer_gases[id])/(atmos_adjacent_turfs+1) //the amount of gas that gets moved between the mixtures + delta = QUANTIZE(gas_archive[id] - sharer.gas_archive[id])/(atmos_adjacent_turfs+1) //the amount of gas that gets moved between the mixtures if(delta && abs_temperature_delta > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) gas_heat_capacity = delta * cached_gasheats[id] @@ -293,8 +322,8 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list()) sharer_temperature = sharer.temperature_archived var/temperature_delta = temperature_archived - sharer_temperature if(abs(temperature_delta) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) - var/self_heat_capacity = heat_capacity() - sharer_heat_capacity = sharer_heat_capacity || sharer.heat_capacity() + var/self_heat_capacity = archived_heat_capacity() + sharer_heat_capacity = sharer_heat_capacity || sharer.archived_heat_capacity() if((sharer_heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY)) var/heat = conduction_coefficient*temperature_delta* \ diff --git a/code/modules/atmospherics/gasmixtures/gas_types.dm b/code/modules/atmospherics/gasmixtures/gas_types.dm index 5c34ece723..c7ffc51458 100644 --- a/code/modules/atmospherics/gasmixtures/gas_types.dm +++ b/code/modules/atmospherics/gasmixtures/gas_types.dm @@ -192,6 +192,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g anchored = TRUE // should only appear in vis_contents, but to be safe layer = FLY_LAYER appearance_flags = TILE_BOUND + vis_flags = NONE /obj/effect/overlay/gas/New(state, alph) . = ..() diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm index ebe894138d..59ef15b4cf 100644 --- a/code/modules/atmospherics/gasmixtures/reactions.dm +++ b/code/modules/atmospherics/gasmixtures/reactions.dm @@ -282,7 +282,7 @@ var/new_heat_capacity = air.heat_capacity() if(new_heat_capacity > MINIMUM_HEAT_CAPACITY) - air.temperature = CLAMP(((air.temperature*old_heat_capacity + reaction_energy)/new_heat_capacity),TCMB,INFINITY) + air.temperature = clamp(((air.temperature*old_heat_capacity + reaction_energy)/new_heat_capacity),TCMB,INFINITY) return REACTING /datum/gas_reaction/nitrylformation //The formation of nitryl. Endothermic. Requires N2O as a catalyst. diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index e25aa9b612..fd0700115b 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -786,9 +786,8 @@ return user.visible_message("[user.name] wires the air alarm.", \ "You start wiring the air alarm...") - if (do_after(user, 20, target = src)) - if (cable.get_amount() >= 5 && buildstage == 1) - cable.use(5) + if (W.use_tool(src, user, 20, 5)) + if (buildstage == 1) to_chat(user, "You wire the air alarm.") wires.repair() aidisabled = 0 diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm index 864edfdbe6..8f5ab7dd5e 100644 --- a/code/modules/atmospherics/machinery/atmosmachinery.dm +++ b/code/modules/atmospherics/machinery/atmosmachinery.dm @@ -64,6 +64,7 @@ nullifyNode(i) SSair.atmos_machinery -= src + SSair.pipenets_needing_rebuilt -= src dropContents() if(pipe_vision_img) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm index 73cb8eeecb..c164dc5ae3 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm @@ -116,7 +116,7 @@ if(node2) node2.atmosinit() node2.addMember(src) - build_network() + SSair.add_to_rebuild_queue(src) return TRUE diff --git a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm index 9238b8602b..2dc0afac26 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm @@ -159,13 +159,13 @@ pump_direction = 1 if("set_input_pressure" in signal.data) - input_pressure_min = CLAMP(text2num(signal.data["set_input_pressure"]),0,ONE_ATMOSPHERE*50) + input_pressure_min = clamp(text2num(signal.data["set_input_pressure"]),0,ONE_ATMOSPHERE*50) if("set_output_pressure" in signal.data) - output_pressure_max = CLAMP(text2num(signal.data["set_output_pressure"]),0,ONE_ATMOSPHERE*50) + output_pressure_max = clamp(text2num(signal.data["set_output_pressure"]),0,ONE_ATMOSPHERE*50) if("set_external_pressure" in signal.data) - external_pressure_bound = CLAMP(text2num(signal.data["set_external_pressure"]),0,ONE_ATMOSPHERE*50) + external_pressure_bound = clamp(text2num(signal.data["set_external_pressure"]),0,ONE_ATMOSPHERE*50) if("status" in signal.data) spawn(2) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm b/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm index 19711c6e5f..2e2d68c35e 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm @@ -137,7 +137,7 @@ Passive gate is similar to the regular pump except: pressure = text2num(pressure) . = TRUE if(.) - target_pressure = CLAMP(pressure, 0, MAX_OUTPUT_PRESSURE) + target_pressure = clamp(pressure, 0, MAX_OUTPUT_PRESSURE) investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS) update_icon() @@ -159,7 +159,7 @@ Passive gate is similar to the regular pump except: on = !on if("set_output_pressure" in signal.data) - target_pressure = CLAMP(text2num(signal.data["set_output_pressure"]),0,ONE_ATMOSPHERE*50) + target_pressure = clamp(text2num(signal.data["set_output_pressure"]),0,ONE_ATMOSPHERE*50) if(on != old_on) investigate_log("was turned [on ? "on" : "off"] by a remote signal", INVESTIGATE_ATMOS) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm index ec9b320d2c..ede416f67c 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm @@ -145,7 +145,7 @@ pressure = text2num(pressure) . = TRUE if(.) - target_pressure = CLAMP(pressure, 0, MAX_OUTPUT_PRESSURE) + target_pressure = clamp(pressure, 0, MAX_OUTPUT_PRESSURE) investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS) update_icon() @@ -167,7 +167,7 @@ on = !on if("set_output_pressure" in signal.data) - target_pressure = CLAMP(text2num(signal.data["set_output_pressure"]),0,ONE_ATMOSPHERE*50) + target_pressure = clamp(text2num(signal.data["set_output_pressure"]),0,ONE_ATMOSPHERE*50) if(on != old_on) investigate_log("was turned [on ? "on" : "off"] by a remote signal", INVESTIGATE_ATMOS) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm b/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm index bc58ef158f..7bdd22cbd1 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm @@ -91,7 +91,7 @@ pressure = text2num(pressure) . = TRUE if(.) - open_pressure = CLAMP(pressure, close_pressure, 50*ONE_ATMOSPHERE) + open_pressure = clamp(pressure, close_pressure, 50*ONE_ATMOSPHERE) investigate_log("open pressure was set to [open_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS) if("close_pressure") var/pressure = params["close_pressure"] @@ -106,6 +106,6 @@ pressure = text2num(pressure) . = TRUE if(.) - close_pressure = CLAMP(pressure, 0, open_pressure) + close_pressure = clamp(pressure, 0, open_pressure) investigate_log("close pressure was set to [close_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS) update_icon() diff --git a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm index d62d52ce43..926cacf8e2 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm @@ -135,7 +135,7 @@ rate = text2num(rate) . = TRUE if(.) - transfer_rate = CLAMP(rate, 0, MAX_TRANSFER_RATE) + transfer_rate = clamp(rate, 0, MAX_TRANSFER_RATE) investigate_log("was set to [transfer_rate] L/s by [key_name(usr)]", INVESTIGATE_ATMOS) update_icon() @@ -153,7 +153,7 @@ if("set_transfer_rate" in signal.data) var/datum/gas_mixture/air1 = airs[1] - transfer_rate = CLAMP(text2num(signal.data["set_transfer_rate"]),0,air1.volume) + transfer_rate = clamp(text2num(signal.data["set_transfer_rate"]),0,air1.volume) if(on != old_on) investigate_log("was turned [on ? "on" : "off"] by a remote signal", INVESTIGATE_ATMOS) diff --git a/code/modules/atmospherics/machinery/components/components_base.dm b/code/modules/atmospherics/machinery/components/components_base.dm index 63a03b1d40..a45728d51f 100644 --- a/code/modules/atmospherics/machinery/components/components_base.dm +++ b/code/modules/atmospherics/machinery/components/components_base.dm @@ -144,7 +144,7 @@ var/datum/pipeline/parent = parents[i] if(!parent) stack_trace("Component is missing a pipenet! Rebuilding...") - build_network() + SSair.add_to_rebuild_queue(src) parent.update = 1 /obj/machinery/atmospherics/components/returnPipenets() diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm index 068930ab6a..a31e3e3c36 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm @@ -175,7 +175,7 @@ rate = text2num(rate) . = TRUE if(.) - transfer_rate = CLAMP(rate, 0, MAX_TRANSFER_RATE) + transfer_rate = clamp(rate, 0, MAX_TRANSFER_RATE) investigate_log("was set to [transfer_rate] L/s by [key_name(usr)]", INVESTIGATE_ATMOS) if("filter") filter_type = null diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm index a4519017a9..1eb1375724 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm @@ -164,7 +164,7 @@ pressure = text2num(pressure) . = TRUE if(.) - target_pressure = CLAMP(pressure, 0, MAX_OUTPUT_PRESSURE) + target_pressure = clamp(pressure, 0, MAX_OUTPUT_PRESSURE) investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS) if("node1") var/value = text2num(params["concentration"]) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index 2a516b5877..0670890c39 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -447,6 +447,6 @@ if(node) node.atmosinit() node.addMember(src) - build_network() + SSair.add_to_rebuild_queue(src) #undef CRYOMOBS diff --git a/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm index e170109987..6a33bb5463 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm @@ -138,7 +138,7 @@ if("set_volume_rate" in signal.data) var/number = text2num(signal.data["set_volume_rate"]) var/datum/gas_mixture/air_contents = airs[1] - volume_rate = CLAMP(number, 0, air_contents.volume) + volume_rate = clamp(number, 0, air_contents.volume) if("status" in signal.data) spawn(2) @@ -187,7 +187,7 @@ rate = text2num(rate) . = TRUE if(.) - volume_rate = CLAMP(rate, 0, MAX_TRANSFER_RATE) + volume_rate = clamp(rate, 0, MAX_TRANSFER_RATE) investigate_log("was set to [volume_rate] L/s by [key_name(usr)]", INVESTIGATE_ATMOS) update_icon() broadcast_status() diff --git a/code/modules/atmospherics/machinery/components/unary_devices/relief_valve.dm b/code/modules/atmospherics/machinery/components/unary_devices/relief_valve.dm index 4b6a4a4c10..1d8b875528 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/relief_valve.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/relief_valve.dm @@ -92,7 +92,7 @@ pressure = text2num(pressure) . = TRUE if(.) - open_pressure = CLAMP(pressure, close_pressure, 50*ONE_ATMOSPHERE) + open_pressure = clamp(pressure, close_pressure, 50*ONE_ATMOSPHERE) investigate_log("open pressure was set to [open_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS) if("close_pressure") var/pressure = params["close_pressure"] @@ -107,6 +107,6 @@ pressure = text2num(pressure) . = TRUE if(.) - close_pressure = CLAMP(pressure, 0, open_pressure) + close_pressure = clamp(pressure, 0, open_pressure) investigate_log("close pressure was set to [close_pressure] kPa by [key_name(usr)]", INVESTIGATE_ATMOS) update_icon() diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm index db49efc781..f81e8efb78 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm @@ -116,7 +116,7 @@ if(node) node.atmosinit() node.addMember(src) - build_network() + SSair.add_to_rebuild_queue(src) return TRUE /obj/machinery/atmospherics/components/unary/thermomachine/ui_status(mob/user) @@ -170,7 +170,7 @@ target = text2num(target) . = TRUE if(.) - target_temperature = CLAMP(target, min_temperature, max_temperature) + target_temperature = clamp(target, min_temperature, max_temperature) investigate_log("was set to [target_temperature] K by [key_name(usr)]", INVESTIGATE_ATMOS) update_icon() @@ -225,6 +225,7 @@ if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) return target_temperature = min_temperature + to_chat(user,"You minimize the temperature on the [src].") investigate_log("was set to [target_temperature] K by [key_name(usr)]", INVESTIGATE_ATMOS) message_admins("[src.name] was minimized by [ADMIN_LOOKUPFLW(usr)] at [ADMIN_COORDJMP(T)], [A]") return TRUE @@ -257,6 +258,7 @@ if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) return target_temperature = max_temperature + to_chat(user,"You maximize the temperature on the [src].") investigate_log("was set to [target_temperature] K by [key_name(usr)]", INVESTIGATE_ATMOS) message_admins("[src.name] was maximized by [ADMIN_LOOKUPFLW(usr)] at [ADMIN_COORDJMP(T)], [A]") return TRUE diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm index f2f2329661..9788bcb4ee 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm @@ -210,13 +210,13 @@ if("set_internal_pressure" in signal.data) var/old_pressure = internal_pressure_bound - internal_pressure_bound = CLAMP(text2num(signal.data["set_internal_pressure"]),0,ONE_ATMOSPHERE*50) + internal_pressure_bound = clamp(text2num(signal.data["set_internal_pressure"]),0,ONE_ATMOSPHERE*50) if(old_pressure != internal_pressure_bound) investigate_log(" internal pressure was set to [internal_pressure_bound] by [key_name(signal_sender)]",INVESTIGATE_ATMOS) if("set_external_pressure" in signal.data) var/old_pressure = external_pressure_bound - external_pressure_bound = CLAMP(text2num(signal.data["set_external_pressure"]),0,ONE_ATMOSPHERE*50) + external_pressure_bound = clamp(text2num(signal.data["set_external_pressure"]),0,ONE_ATMOSPHERE*50) if(old_pressure != external_pressure_bound) investigate_log(" external pressure was set to [external_pressure_bound] by [key_name(signal_sender)]",INVESTIGATE_ATMOS) @@ -227,10 +227,10 @@ internal_pressure_bound = 0 if("adjust_internal_pressure" in signal.data) - internal_pressure_bound = CLAMP(internal_pressure_bound + text2num(signal.data["adjust_internal_pressure"]),0,ONE_ATMOSPHERE*50) + internal_pressure_bound = clamp(internal_pressure_bound + text2num(signal.data["adjust_internal_pressure"]),0,ONE_ATMOSPHERE*50) if("adjust_external_pressure" in signal.data) - external_pressure_bound = CLAMP(external_pressure_bound + text2num(signal.data["adjust_external_pressure"]),0,ONE_ATMOSPHERE*50) + external_pressure_bound = clamp(external_pressure_bound + text2num(signal.data["adjust_external_pressure"]),0,ONE_ATMOSPHERE*50) if("init" in signal.data) name = signal.data["init"] diff --git a/code/modules/atmospherics/machinery/pipes/layermanifold.dm b/code/modules/atmospherics/machinery/pipes/layermanifold.dm index b98098584f..bc8fd6777d 100644 --- a/code/modules/atmospherics/machinery/pipes/layermanifold.dm +++ b/code/modules/atmospherics/machinery/pipes/layermanifold.dm @@ -31,7 +31,7 @@ nodes = list() for(var/obj/machinery/atmospherics/A in needs_nullifying) A.disconnect(src) - A.build_network() + SSair.add_to_rebuild_queue(A) /obj/machinery/atmospherics/pipe/layer_manifold/proc/get_all_connected_nodes() return front_nodes + back_nodes + nodes @@ -128,7 +128,7 @@ if(initialize_directions & dir) return ..() if((NORTH|EAST) & dir) - user.ventcrawl_layer = CLAMP(user.ventcrawl_layer + 1, PIPING_LAYER_MIN, PIPING_LAYER_MAX) + user.ventcrawl_layer = clamp(user.ventcrawl_layer + 1, PIPING_LAYER_MIN, PIPING_LAYER_MAX) if((SOUTH|WEST) & dir) - user.ventcrawl_layer = CLAMP(user.ventcrawl_layer - 1, PIPING_LAYER_MIN, PIPING_LAYER_MAX) + user.ventcrawl_layer = clamp(user.ventcrawl_layer - 1, PIPING_LAYER_MIN, PIPING_LAYER_MAX) to_chat(user, "You align yourself with the [user.ventcrawl_layer]\th output.") diff --git a/code/modules/atmospherics/machinery/pipes/manifold.dm b/code/modules/atmospherics/machinery/pipes/manifold.dm index 77452fd6fd..aa8ee65bd8 100644 --- a/code/modules/atmospherics/machinery/pipes/manifold.dm +++ b/code/modules/atmospherics/machinery/pipes/manifold.dm @@ -28,6 +28,8 @@ /obj/machinery/atmospherics/pipe/manifold/update_icon() cut_overlays() + if(!center) + center = mutable_appearance(icon, "manifold_center") PIPING_LAYER_DOUBLE_SHIFT(center, piping_layer) add_overlay(center) diff --git a/code/modules/atmospherics/machinery/pipes/manifold4w.dm b/code/modules/atmospherics/machinery/pipes/manifold4w.dm index 1bcca8d5ae..56c0408d18 100644 --- a/code/modules/atmospherics/machinery/pipes/manifold4w.dm +++ b/code/modules/atmospherics/machinery/pipes/manifold4w.dm @@ -26,6 +26,8 @@ /obj/machinery/atmospherics/pipe/manifold4w/update_icon() cut_overlays() + if(!center) + center = mutable_appearance(icon, "manifold_center") PIPING_LAYER_DOUBLE_SHIFT(center, piping_layer) add_overlay(center) diff --git a/code/modules/atmospherics/machinery/pipes/pipes.dm b/code/modules/atmospherics/machinery/pipes/pipes.dm index 1e513b846c..c466a422b2 100644 --- a/code/modules/atmospherics/machinery/pipes/pipes.dm +++ b/code/modules/atmospherics/machinery/pipes/pipes.dm @@ -22,7 +22,7 @@ var/obj/machinery/atmospherics/oldN = nodes[i] ..() if(oldN) - oldN.build_network() + SSair.add_to_rebuild_queue(oldN) /obj/machinery/atmospherics/pipe/destroy_network() QDEL_NULL(parent) diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index 8dcf7e7b16..2747932907 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -159,7 +159,6 @@ /obj/machinery/portable_atmospherics/canister/proto name = "prototype canister" - /obj/machinery/portable_atmospherics/canister/proto/default name = "prototype canister" desc = "The best way to fix an atmospheric emergency... or the best way to introduce one." @@ -172,7 +171,6 @@ can_min_release_pressure = (ONE_ATMOSPHERE / 30) prototype = TRUE - /obj/machinery/portable_atmospherics/canister/proto/default/oxygen name = "prototype canister" desc = "A prototype canister for a prototype bike, what could go wrong?" @@ -181,8 +179,6 @@ filled = 1 release_pressure = ONE_ATMOSPHERE*2 - - /obj/machinery/portable_atmospherics/canister/New(loc, datum/gas_mixture/existing_mixture) ..() if(existing_mixture) @@ -192,7 +188,7 @@ pump = new(src, FALSE) pump.on = TRUE pump.stat = 0 - pump.build_network() + SSair.add_to_rebuild_queue(pump) update_icon() @@ -208,6 +204,7 @@ air_contents.gases[gas_type] = (maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature) if(starter_temp) air_contents.temperature = starter_temp + /obj/machinery/portable_atmospherics/canister/air/create_gas() air_contents.gases[/datum/gas/oxygen] = (O2STANDARD * maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature) air_contents.gases[/datum/gas/nitrogen] = (N2STANDARD * maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature) @@ -390,7 +387,7 @@ pressure = text2num(pressure) . = TRUE if(.) - release_pressure = CLAMP(round(pressure), can_min_release_pressure, can_max_release_pressure) + release_pressure = clamp(round(pressure), can_min_release_pressure, can_max_release_pressure) investigate_log("was set to [release_pressure] kPa by [key_name(usr)].", INVESTIGATE_ATMOS) if("valve") var/logmsg @@ -434,7 +431,7 @@ var/N = text2num(user_input) if(!N) return - timer_set = CLAMP(N,minimum_timer_set,maximum_timer_set) + timer_set = clamp(N,minimum_timer_set,maximum_timer_set) log_admin("[key_name(usr)] has activated a prototype valve timer") . = TRUE if("toggle_timer") diff --git a/code/modules/atmospherics/machinery/portable/pump.dm b/code/modules/atmospherics/machinery/portable/pump.dm index 9e2456cc2d..11dd4c5a60 100644 --- a/code/modules/atmospherics/machinery/portable/pump.dm +++ b/code/modules/atmospherics/machinery/portable/pump.dm @@ -22,7 +22,7 @@ pump = new(src, FALSE) pump.on = TRUE pump.stat = 0 - pump.build_network() + SSair.add_to_rebuild_queue(pump) /obj/machinery/portable_atmospherics/pump/Destroy() var/turf/T = get_turf(src) diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 0d96c125a1..f841ae20ca 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -487,8 +487,7 @@ suit = /obj/item/clothing/suit/space/hardsuit/shielded/ctf toggle_helmet = FALSE // see the whites of their eyes shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat - id = /obj/item/card/id/syndicate + gloves = /obj/item/clothing/gloves/tackler/combat belt = /obj/item/gun/ballistic/automatic/pistol/deagle/ctf l_pocket = /obj/item/ammo_box/magazine/recharge/ctf r_pocket = /obj/item/ammo_box/magazine/recharge/ctf diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 5dc11ed100..c11267a5f3 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -490,7 +490,7 @@ glasses = /obj/item/clothing/glasses/eyepatch mask = /obj/item/clothing/mask/cigarette/cigar/cohiba head = /obj/item/clothing/head/centhat - gloves = /obj/item/clothing/gloves/combat + gloves = /obj/item/clothing/gloves/tackler/combat shoes = /obj/item/clothing/shoes/combat/swat r_pocket = /obj/item/lighter id = /obj/item/card/id @@ -507,7 +507,7 @@ uniform = /obj/item/clothing/under/rank/security/officer suit = /obj/item/clothing/suit/armor/vest shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat + gloves = /obj/item/clothing/gloves/tackler/combat mask = /obj/item/clothing/mask/gas/sechailer/swat head = /obj/item/clothing/head/helmet/swat/nanotrasen back = /obj/item/storage/backpack/security diff --git a/code/modules/awaymissions/zlevel.dm b/code/modules/awaymissions/zlevel.dm index dae3650009..1e2e1fe43c 100644 --- a/code/modules/awaymissions/zlevel.dm +++ b/code/modules/awaymissions/zlevel.dm @@ -1,12 +1,19 @@ -// How much "space" we give the edge of the map -GLOBAL_LIST_INIT(potentialRandomZlevels, generateMapList(filename = "[global.config.directory]/awaymissionconfig.txt")) -/proc/createRandomZlevel() - if(GLOB.potentialRandomZlevels && GLOB.potentialRandomZlevels.len) - to_chat(world, "Loading away mission...") - var/map = pick(GLOB.potentialRandomZlevels) - load_new_z_level(map, "Away Mission") - to_chat(world, "Away mission loaded.") +/proc/createRandomZlevel(name = AWAY_MISSION_NAME, list/traits = list(ZTRAIT_AWAY = TRUE), list/potential_levels = GLOB.potential_away_levels) + if(GLOB.random_zlevels_generated[name]) + stack_trace("[name] level already generated.") + return + if(!length(potential_levels)) + stack_trace("No potential [name] level to load has been found.") + return + + var/start_time = REALTIMEOFDAY + var/map = pick(potential_levels) + if(!load_new_z_level(map, name, traits)) + INIT_ANNOUNCE("Failed to load [name]! map filepath: [map]!") + return + INIT_ANNOUNCE("Loaded [name] in [(REALTIMEOFDAY - start_time)/10]s!") + GLOB.random_zlevels_generated[name] = TRUE /obj/effect/landmark/awaystart name = "away mission spawn" diff --git a/code/modules/buildmode/effects/line.dm b/code/modules/buildmode/effects/line.dm index 60191de934..8bba27ac88 100644 --- a/code/modules/buildmode/effects/line.dm +++ b/code/modules/buildmode/effects/line.dm @@ -12,7 +12,7 @@ var/matrix/mat = matrix() mat.Translate(0, 16) mat.Scale(1, sqrt((x_offset * x_offset) + (y_offset * y_offset)) / 32) - mat.Turn(90 - ATAN2(x_offset, y_offset)) // So... You pass coords in order x,y to this version of atan2. It should be called acsc2. + mat.Turn(90 - arctan(x_offset, y_offset)) // So... You pass coords in order x,y to this version of atan2. It should be called acsc2. mat.Translate(atom_a.pixel_x, atom_a.pixel_y) transform = mat diff --git a/code/modules/buildmode/submodes/copy.dm b/code/modules/buildmode/submodes/copy.dm index ba415c50fc..4aed8ac700 100644 --- a/code/modules/buildmode/submodes/copy.dm +++ b/code/modules/buildmode/submodes/copy.dm @@ -23,6 +23,6 @@ DuplicateObject(stored, perfectcopy=1, sameloc=0,newloc=T) log_admin("Build Mode: [key_name(c)] copied [stored] to [AREACOORD(object)]") else if(right_click) - if(ismovableatom(object)) // No copying turfs for now. + if(ismovable(object)) // No copying turfs for now. to_chat(c, "[object] set as template.") stored = object diff --git a/code/modules/cargo/exports/gear.dm b/code/modules/cargo/exports/gear.dm index 4db7c68efd..8dba7f69da 100644 --- a/code/modules/cargo/exports/gear.dm +++ b/code/modules/cargo/exports/gear.dm @@ -309,7 +309,7 @@ /datum/export/gear/combatgloves cost = 80 unit_name = "combat gloves" - export_types = list(/obj/item/clothing/gloves/combat, /obj/item/clothing/gloves/fingerless/pugilist/rapid, /obj/item/clothing/gloves/krav_maga) + export_types = list(/obj/item/clothing/gloves/tackler/combat, /obj/item/clothing/gloves/tackler/dolphin, /obj/item/clothing/gloves/fingerless/pugilist/rapid, /obj/item/clothing/gloves/krav_maga) include_subtypes = TRUE /datum/export/gear/bonegloves @@ -797,4 +797,4 @@ datum/export/gear/glasses //glasses are not worth selling export_types = list(/obj/item/clothing/head/chameleon, /obj/item/clothing/mask/chameleon, /obj/item/clothing/under/chameleon, /obj/item/clothing/suit/chameleon, /obj/item/clothing/glasses/chameleon,\ /obj/item/clothing/gloves/chameleon, /obj/item/clothing/head/chameleon, /obj/item/clothing/shoes/chameleon, /obj/item/storage/backpack/chameleon, \ /obj/item/storage/belt/chameleon, /obj/item/radio/headset/chameleon, /obj/item/pda/chameleon, /obj/item/stamp/chameleon, /obj/item/clothing/neck/cloak/chameleon) - include_subtypes = TRUE \ No newline at end of file + include_subtypes = TRUE diff --git a/code/modules/cargo/exports/manifest.dm b/code/modules/cargo/exports/manifest.dm index 60515781f9..d59ef1093f 100644 --- a/code/modules/cargo/exports/manifest.dm +++ b/code/modules/cargo/exports/manifest.dm @@ -76,19 +76,3 @@ /datum/export/manifest_correct_denied/get_cost(obj/O) var/obj/item/paper/fluff/jobs/cargo/manifest/M = O return ..() - M.order_cost - -// Paper work done correctly - -/datum/export/paperwork_correct - cost = 120 // finicky number 20 x 120 = 2400 per crate - k_elasticity = 0 - unit_name = "correct paperwork" - export_types = list(/obj/item/folder/paperwork_correct) - -// Paper work not done retruned - -/datum/export/paperwork_incorrect - cost = -500 // Failed to meet NT standers - k_elasticity = 0 - unit_name = "returned incorrect paperwork" - export_types = list(/obj/item/folder/paperwork) diff --git a/code/modules/cargo/order.dm b/code/modules/cargo/order.dm index b78f218348..13e223bca3 100644 --- a/code/modules/cargo/order.dm +++ b/code/modules/cargo/order.dm @@ -66,12 +66,9 @@ P.info += "Item: [pack.name]
    " P.info += "Contents:
    " P.info += "
      " - for(var/atom/movable/AM in C.contents - P) - if((P.errors & MANIFEST_ERROR_CONTENTS)) - if(prob(50)) - P.info += "
    • [AM.name]
    • " - else - continue + for(var/atom/movable/AM in C.contents - P - C.lockerelectronics) + if((P.errors & MANIFEST_ERROR_CONTENTS) && prob(50)) + continue P.info += "
    • [AM.name]
    • " P.info += "
    " P.info += "

    Stamp below to confirm receipt of goods:

    " diff --git a/code/modules/cargo/packs/armory.dm b/code/modules/cargo/packs/armory.dm index d832200201..501b1426ae 100644 --- a/code/modules/cargo/packs/armory.dm +++ b/code/modules/cargo/packs/armory.dm @@ -175,7 +175,7 @@ /obj/item/clothing/suit/armor/vest/russian, /obj/item/clothing/head/helmet/rus_helmet, /obj/item/clothing/shoes/russian, - /obj/item/clothing/gloves/combat, + /obj/item/clothing/gloves/tackler/combat/insulated, /obj/item/clothing/under/syndicate/rus_army, /obj/item/clothing/under/costume/soviet, /obj/item/clothing/mask/russian_balaclava, @@ -201,8 +201,8 @@ /obj/item/clothing/mask/gas/sechailer/swat, /obj/item/storage/belt/military/assault, /obj/item/storage/belt/military/assault, - /obj/item/clothing/gloves/combat, - /obj/item/clothing/gloves/combat) + /obj/item/clothing/gloves/tackler/combat/insulated, + /obj/item/clothing/gloves/tackler/combat/insulated) crate_name = "swat crate" /datum/supply_pack/security/armory/wt550 diff --git a/code/modules/cargo/packs/engine.dm b/code/modules/cargo/packs/engine.dm index 27891f3ab6..89775c07ee 100644 --- a/code/modules/cargo/packs/engine.dm +++ b/code/modules/cargo/packs/engine.dm @@ -148,15 +148,7 @@ crate_name = "supermatter shard crate" crate_type = /obj/structure/closet/crate/secure/engineering dangerous = TRUE - -/datum/supply_pack/engine/supermatter_spray - name = "Supermatter Spray Crate" - desc = "The single thing that can truly heal the supermatter." - cost = 2000 - contains = list(/obj/item/supermatterspray) - crate_name = "supermatter shard crate" - crate_type = /obj/structure/closet/crate/engineering/electrical - + /datum/supply_pack/engine/tesla_coils name = "Tesla Coil Crate" desc = "Whether it's high-voltage executions, creating research points, or just plain old power generation: This pack of four Tesla coils can do it all!" diff --git a/code/modules/cargo/packs/materials.dm b/code/modules/cargo/packs/materials.dm index 6c1742896f..1ce3a6b084 100644 --- a/code/modules/cargo/packs/materials.dm +++ b/code/modules/cargo/packs/materials.dm @@ -129,14 +129,6 @@ /obj/item/rcd_ammo) crate_name = "rcd ammo" -/datum/supply_pack/materials/loom - name = "Loom" - desc = "A large pre-made loom." - cost = 1000 - contains = list(/obj/structure/loom/unanchored) - crate_name = "loom crate" - crate_type = /obj/structure/closet/crate/large - ////////////////////////////////////////////////////////////////////////////// ///////////////////////////// Canisters ////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm index dfaa6f0027..5265b2c2f6 100644 --- a/code/modules/cargo/packs/misc.dm +++ b/code/modules/cargo/packs/misc.dm @@ -87,37 +87,12 @@ crate_type = /obj/structure/closet/crate/wooden crate_name = "calligraphy crate" -/datum/supply_pack/misc/paper_work - name = "Freelance Paper work" - desc = "The Nanotrasen Primary Bureaucratic Database Intelligence (PDBI) reports that the station has not completed its funding and grant paperwork this solar cycle. In order to gain further funding, your station is required to fill out (10) ten of these forms or no additional capital will be disbursed. We have sent you ten copies of the following form and we expect every one to be up to Nanotrasen Standards." // Disbursement. It's not a typo, look it up. - cost = 700 // Net of 0 credits but makes (120 x 10 = 1200) - contains = list(/obj/item/folder/paperwork, - /obj/item/pen/fountain - ) - crate_name = "Paperwork" - -/datum/supply_pack/misc/paper_work/generate() - . = ..() - for(var/i in 1 to 9) - new /obj/item/folder/paperwork(.) ////////////////////////////////////////////////////////////////////////////// //////////////////////////////// Entertainment /////////////////////////////// ////////////////////////////////////////////////////////////////////////////// -/datum/supply_pack/misc/randombedsheets - name = "Bedsheet Crate (R)" - desc = "Snuggle up in some sweet sheets with this assorted bedsheet crate. Each set comes with eight random bedsheets for your slumbering pleasure!" - cost = 2000 - contains = list(/obj/item/bedsheet/random) - crate_name = "random bedsheet crate" - -/datum/supply_pack/misc/randombedsheets/generate() - . = ..() - for(var/i in 1 to 7) - new /obj/item/bedsheet/random(.) - /datum/supply_pack/misc/coloredsheets - name = "Bedsheet Crate (C)" + name = "Bedsheet Crate" desc = "Give your night life a splash of color with this crate filled with bedsheets! Contains a total of nine different-colored sheets." cost = 1250 contains = list(/obj/item/bedsheet/blue, diff --git a/code/modules/cargo/packs/organic.dm b/code/modules/cargo/packs/organic.dm index 97b7636f58..22cb518926 100644 --- a/code/modules/cargo/packs/organic.dm +++ b/code/modules/cargo/packs/organic.dm @@ -205,7 +205,7 @@ desc = "Need some meat? With this do-it-yourself kit you'll be swimming in it! Contains a monkey cube, an IV drip, and some cryoxadone!" cost = 2150 contraband = TRUE - contains = list(/obj/item/reagent_containers/food/snacks/monkeycube, + contains = list(/obj/item/reagent_containers/food/snacks/cube/monkey, /obj/item/restraints/handcuffs/cable, /obj/machinery/iv_drip, /obj/item/reagent_containers/glass/beaker/cryoxadone, diff --git a/code/modules/cargo/packs/science.dm b/code/modules/cargo/packs/science.dm index a3548a5eb6..51bb2b728f 100644 --- a/code/modules/cargo/packs/science.dm +++ b/code/modules/cargo/packs/science.dm @@ -10,24 +10,13 @@ group = "Science" crate_type = /obj/structure/closet/crate/science -/* For later -/datum/supply_pack/science/monkey +/datum/supply_pack/science/ape //Ape out! name = "Ape Cube Crate" desc = "Pss what a new test subject with supper strangth, speed, and love for bananas all at the same time? Say no more... Contains a single ape cube. Dont add water!" contraband = TRUE cost = 2500 - contains = list (/obj/item/reagent_containers/food/snacks/monkeycube/ape) + contains = list (/obj/item/reagent_containers/food/snacks/cube/ape) crate_name = "ape cube crate" -*/ - -/datum/supply_pack/science/aliens - name = "Advanced Alien Alloy Crate Crate" - desc = "Hello brothers from the stars!!! Our fellow brethren have made contact at long last and gave us gifts man! They really did build the prymi- Connection Error- Bro we’ll send you a sheet of advanced alien alloy." - cost = 15000 - DropPodOnly = TRUE - contraband = TRUE - contains = list(/obj/item/stack/sheet/mineral/abductor) - crate_name = "alien bro alloy crate" /datum/supply_pack/science/beakers name = "Chemistry Beakers Crate" diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm index aea7b95742..ee750b8df7 100644 --- a/code/modules/cargo/packs/security.dm +++ b/code/modules/cargo/packs/security.dm @@ -91,8 +91,8 @@ /obj/item/clothing/suit/armor/bulletproof, /obj/item/clothing/head/helmet/alt, /obj/item/clothing/head/helmet/alt, - /obj/item/clothing/gloves/combat, - /obj/item/clothing/gloves/combat, + /obj/item/clothing/gloves/tackler/combat/insulated, + /obj/item/clothing/gloves/tackler/combat/insulated, /obj/item/clothing/mask/gas, /obj/item/clothing/mask/gas) crate_name = "surplus russian clothing" @@ -109,7 +109,7 @@ /obj/item/clothing/head/ushanka, /obj/item/clothing/suit/armor/bulletproof, /obj/item/clothing/head/helmet/alt, - /obj/item/clothing/gloves/combat, + /obj/item/clothing/gloves/tackler/combat/insulated, /obj/item/clothing/mask/gas, /obj/item/gun/ballistic/shotgun/boltaction, /obj/item/ammo_box/a762) diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index 1deb702de4..f865cfddbb 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -84,3 +84,6 @@ var/next_keysend_reset = 0 var/next_keysend_trip_reset = 0 var/keysend_tripped = FALSE + + /// Messages currently seen by this client + var/list/seen_messages diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 0e5e80eaf3..a0c0832c2e 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -48,6 +48,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/UI_style = null var/buttons_locked = FALSE var/hotkeys = FALSE + var/chat_on_map = TRUE + var/max_chat_length = CHAT_MESSAGE_MAX_LENGTH + var/see_chat_non_mob = TRUE var/tgui_fancy = TRUE var/tgui_lock = TRUE var/windowflashing = TRUE @@ -91,8 +94,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/skin_tone = "caucasian1" //Skin color var/use_custom_skin_tone = FALSE var/eye_color = "000" //Eye color - var/horn_color = "85615a" //Horn color - var/wing_color = "fff" //Wing color var/datum/species/pref_species = new /datum/species/human() //Mutant race var/list/features = list("mcolor" = "FFF", "mcolor2" = "FFF", @@ -101,8 +102,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) "tail_human" = "None", "snout" = "Round", "horns" = "None", + "horns_color" = "85615a", "ears" = "None", "wings" = "None", + "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", @@ -150,6 +153,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", + "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE @@ -208,6 +212,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/show_mismatched_markings = FALSE //determines whether or not the markings lists should show markings that don't match the currently selected species. Intentionally left unsaved. + var/no_tetris_storage = FALSE + /datum/preferences/New(client/C) parent = C @@ -343,6 +349,16 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "[features["flavor_text"]]" else dat += "[TextPreview(features["flavor_text"])]...
    " + dat += "

    OOC notes

    " + dat += "Set OOC notes
    " + var/ooc_notes_len = length(features["ooc_notes"]) + if(ooc_notes_len <= 40) + if(!ooc_notes_len) + dat += "\[...\]" + else + dat += "[features["ooc_notes"]]" + else + dat += "[TextPreview(features["ooc_notes"])]...
    " dat += "

    Body

    " dat += "Gender:[gender == MALE ? "Male" : (gender == FEMALE ? "Female" : (gender == PLURAL ? "Non-binary" : "Object"))]
    " if(gender != NEUTER && pref_species.sexes) @@ -491,7 +507,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

    Horns

    " dat += "[features["horns"]]" - dat += "    Change
    " + dat += "    Change
    " mutant_category++ @@ -604,7 +620,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

    Decorative wings

    " dat += "[features["deco_wings"]]" - dat += "    Change
    " + dat += "    Change
    " if(pref_species.mutant_bodyparts["insect_wings"]) if(!mutant_category) @@ -613,7 +629,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

    Insect wings

    " dat += "[features["insect_wings"]]" - dat += "    Change
    " + dat += "    Change
    " mutant_category++ if(mutant_category >= MAX_MUTANT_ROWS) dat += "" @@ -822,6 +838,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "UI Style: [UI_style]
    " dat += "tgui Monitors: [(tgui_lock) ? "Primary" : "All"]
    " dat += "tgui Style: [(tgui_fancy) ? "Fancy" : "No Frills"]
    " + dat += "Show Runechat Chat Bubbles: [chat_on_map ? "Enabled" : "Disabled"]
    " + dat += "Runechat message char limit: [max_chat_length]
    " + dat += "See Runechat for non-mobs: [see_chat_non_mob ? "Enabled" : "Disabled"]
    " dat += "
    " dat += "Action Buttons: [(buttons_locked) ? "Locked In Place" : "Unlocked"]
    " dat += "Keybindings: [(hotkeys) ? "Hotkeys" : "Default"]
    " @@ -863,6 +882,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Widescreen: [widescreenpref ? "Enabled ([CONFIG_GET(string/default_view)])" : "Disabled (15x15)"]
    " dat += "Auto stand: [autostand ? "Enabled" : "Disabled"]
    " dat += "Auto OOC: [auto_ooc ? "Enabled" : "Disabled"]
    " + dat += "Force Slot Storage HUD: [no_tetris_storage ? "Enabled" : "Disabled"]
    " dat += "Screen Shake: [(screenshake==100) ? "Full" : ((screenshake==0) ? "None" : "[screenshake]")]
    " if (user && user.client && !user.client.prefs.screenshake==0) dat += "Damage Screen Shake: [(damagescreenshake==1) ? "On" : ((damagescreenshake==0) ? "Off" : "Only when down")]
    " @@ -1501,6 +1521,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(!isnull(msg)) features["flavor_text"] = html_decode(msg) + if("ooc_notes") + var/msg = stripped_multiline_input(usr, "Set always-visible OOC notes related to content preferences. THIS IS NOT FOR CHARACTE DESCRIPTIONS!!", "OOC notes", features["ooc_notes"], MAX_FLAVOR_LEN, TRUE) + if(!isnull(msg)) + features["ooc_notes"] = html_decode(msg) + if("hair") var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference","#"+hair_color) as color|null if(new_hair) @@ -1761,12 +1786,12 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["horns"] = new_horns if("horns_color") - var/new_horn_color = input(user, "Choose your character's horn colour:", "Character Preference","#"+horn_color) as color|null + var/new_horn_color = input(user, "Choose your character's horn colour:", "Character Preference","#"+features["horns_color"]) as color|null if(new_horn_color) if (new_horn_color == "#000000") - horn_color = "#85615A" + features["horns_color"] = "85615A" else - horn_color = sanitize_hexcolor(new_horn_color) + features["horns_color"] = sanitize_hexcolor(new_horn_color) if("wings") var/new_wings @@ -1775,12 +1800,12 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["wings"] = new_wings if("wings_color") - var/new_wing_color = input(user, "Choose your character's wing colour:", "Character Preference","#"+wing_color) as color|null + var/new_wing_color = input(user, "Choose your character's wing colour:", "Character Preference","#"+features["wings_color"]) as color|null if(new_wing_color) if (new_wing_color == "#000000") - wing_color = "#FFFFFF" + features["wings_color"] = "#FFFFFF" else - wing_color = sanitize_hexcolor(new_wing_color) + features["wings_color"] = sanitize_hexcolor(new_wing_color) if("frills") var/new_frills @@ -1834,7 +1859,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("s_tone") var/list/choices = GLOB.skin_tones - GLOB.nonstandard_skin_tones - if(CONFIG_GET(number/allow_custom_skintones)) + if(CONFIG_GET(flag/allow_custom_skintones)) choices += "custom" var/new_s_tone = input(user, "Choose your character's skin tone:", "Character Preference") as null|anything in choices if(new_s_tone) @@ -1963,7 +1988,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/max_D = CONFIG_GET(number/penis_max_inches_prefs) var/new_length = input(user, "Penis length in inches:\n([min_D]-[max_D])", "Character Preference") as num|null if(new_length) - features["cock_length"] = CLAMP(round(new_length), min_D, max_D) + features["cock_length"] = clamp(round(new_length), min_D, max_D) if("cock_shape") var/new_shape @@ -2131,6 +2156,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/pickedPDASkin = input(user, "Choose your PDA reskin.", "Character Preference", pda_skin) as null|anything in GLOB.pda_reskins if(pickedPDASkin) pda_skin = pickedPDASkin + if ("max_chat_length") + var/desiredlength = input(user, "Choose the max character length of shown Runechat messages. Valid range is 1 to [CHAT_MESSAGE_MAX_LENGTH] (default: [initial(max_chat_length)]))", "Character Preference", max_chat_length) as null|num + if (!isnull(desiredlength)) + max_chat_length = clamp(desiredlength, 1, CHAT_MESSAGE_MAX_LENGTH) if("hud_toggle_color") var/new_toggle_color = input(user, "Choose your HUD toggle flash color:", "Game Preference",hud_toggle_color) as color|null @@ -2160,7 +2189,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/danger = CONFIG_GET(number/threshold_body_size_slowdown) var/new_body_size = input(user, "Choose your desired sprite size:\n([min*100]%-[max*100]%), Warning: May make your character look distorted[danger > min ? ", and an exponential slowdown will occur for those smaller than [danger*100]%!" : "!"]", "Character Preference", features["body_size"]*100) as num|null if (new_body_size) - new_body_size = CLAMP(new_body_size * 0.01, min, max) + new_body_size = clamp(new_body_size * 0.01, min, max) var/dorfy if(danger > new_body_size) dorfy = alert(user, "The chosen size appears to be smaller than the threshold of [danger*100]%, which will lead to an added exponential slowdown. Are you sure about that?", "Dwarfism Alert", "Yes", "Move it to the threshold", "No") @@ -2201,6 +2230,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) autostand = !autostand if("auto_ooc") auto_ooc = !auto_ooc + if("no_tetris_storage") + no_tetris_storage = !no_tetris_storage if ("screenshake") var/desiredshake = input(user, "Set the amount of screenshake you want. \n(0 = disabled, 100 = full, 200 = maximum.)", "Character Preference", screenshake) as null|num if (!isnull(desiredshake)) @@ -2231,6 +2262,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) winset(user, null, "input.focus=true input.background-color=[COLOR_INPUT_ENABLED] mainwindow.macro=default") else winset(user, null, "input.focus=true input.background-color=[COLOR_INPUT_ENABLED] mainwindow.macro=old_default") + if("chat_on_map") + chat_on_map = !chat_on_map + if("see_chat_non_mob") + see_chat_non_mob = !see_chat_non_mob if("action_buttons") buttons_locked = !buttons_locked if("tgui_fancy") @@ -2440,9 +2475,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) organ_eyes.old_eye_color = eye_color character.hair_color = hair_color character.facial_hair_color = facial_hair_color - character.horn_color = horn_color - character.wing_color = wing_color - character.skin_tone = skin_tone character.dna.skin_tone_override = use_custom_skin_tone ? skin_tone : null character.hair_style = hair_style diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index a64d3e057d..3fa36cc254 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -5,7 +5,7 @@ // You do not need to raise this if you are adding new values that have sane defaults. // Only raise this value when changing the meaning/format/name/layout of an existing value // where you would want the updater procs below to run -#define SAVEFILE_VERSION_MAX 29 +#define SAVEFILE_VERSION_MAX 31 /* SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn @@ -162,7 +162,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(malformed_hockeys[hockey]) features["cock_shape"] = malformed_hockeys[hockey] features["cock_taur"] = TRUE - + if(current_version < 29) var/digestable var/devourable @@ -181,6 +181,19 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(lickable) ENABLE_BITFIELD(vore_flags,LICKABLE) + if(current_version < 30) + switch(features["taur"]) + if("Husky", "Lab", "Shepherd", "Fox", "Wolf") + features["taur"] = "Canine" + if("Panther", "Tiger") + features["taur"] = "Feline" + if("Cow") + features["taur"] = "Cow (Spotted)" + + if(current_version < 31) + S["wing_color"] >> features["wings_color"] + S["horn_color"] >> features["horns_color"] + /datum/preferences/proc/load_path(ckey,filename="preferences.sav") if(!ckey) return @@ -211,6 +224,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["lastchangelog"] >> lastchangelog S["UI_style"] >> UI_style S["hotkeys"] >> hotkeys + S["chat_on_map"] >> chat_on_map + S["max_chat_length"] >> max_chat_length + S["see_chat_non_mob"] >> see_chat_non_mob S["tgui_fancy"] >> tgui_fancy S["tgui_lock"] >> tgui_lock S["buttons_locked"] >> buttons_locked @@ -253,7 +269,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["autostand"] >> autostand S["cit_toggles"] >> cit_toggles S["preferred_chaos"] >> preferred_chaos - S["auto_ooc"] >> auto_ooc + S["auto_ooc"] >> auto_ooc + S["no_tetris_storage"] >> no_tetris_storage //try to fix any outdated data if necessary @@ -265,6 +282,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car lastchangelog = sanitize_text(lastchangelog, initial(lastchangelog)) UI_style = sanitize_inlist(UI_style, GLOB.available_ui_styles, GLOB.available_ui_styles[1]) hotkeys = sanitize_integer(hotkeys, 0, 1, initial(hotkeys)) + chat_on_map = sanitize_integer(chat_on_map, 0, 1, initial(chat_on_map)) + max_chat_length = sanitize_integer(max_chat_length, 1, CHAT_MESSAGE_MAX_LENGTH, initial(max_chat_length)) + see_chat_non_mob = sanitize_integer(see_chat_non_mob, 0, 1, initial(see_chat_non_mob)) tgui_fancy = sanitize_integer(tgui_fancy, 0, 1, initial(tgui_fancy)) tgui_lock = sanitize_integer(tgui_lock, 0, 1, initial(tgui_lock)) buttons_locked = sanitize_integer(buttons_locked, 0, 1, initial(buttons_locked)) @@ -290,10 +310,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car pda_skin = sanitize_inlist(pda_skin, GLOB.pda_reskins, PDA_SKIN_ALT) screenshake = sanitize_integer(screenshake, 0, 800, initial(screenshake)) damagescreenshake = sanitize_integer(damagescreenshake, 0, 2, initial(damagescreenshake)) - widescreenpref = sanitize_integer(widescreenpref, 0, 1, initial(widescreenpref)) + widescreenpref = sanitize_integer(widescreenpref, 0, 1, initial(widescreenpref)) autostand = sanitize_integer(autostand, 0, 1, initial(autostand)) cit_toggles = sanitize_integer(cit_toggles, 0, 65535, initial(cit_toggles)) auto_ooc = sanitize_integer(auto_ooc, 0, 1, initial(auto_ooc)) + no_tetris_storage = sanitize_integer(no_tetris_storage, 0, 1, initial(no_tetris_storage)) return 1 @@ -317,6 +338,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["lastchangelog"], lastchangelog) WRITE_FILE(S["UI_style"], UI_style) WRITE_FILE(S["hotkeys"], hotkeys) + WRITE_FILE(S["chat_on_map"], chat_on_map) + WRITE_FILE(S["max_chat_length"], max_chat_length) + WRITE_FILE(S["see_chat_non_mob"], see_chat_non_mob) WRITE_FILE(S["tgui_fancy"], tgui_fancy) WRITE_FILE(S["tgui_lock"], tgui_lock) WRITE_FILE(S["buttons_locked"], buttons_locked) @@ -358,6 +382,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["cit_toggles"], cit_toggles) WRITE_FILE(S["preferred_chaos"], preferred_chaos) WRITE_FILE(S["auto_ooc"], auto_ooc) + WRITE_FILE(S["no_tetris_storage"], no_tetris_storage) return 1 @@ -400,15 +425,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(newtype) pref_species = new newtype - if(!S["features["mcolor"]"] || S["features["mcolor"]"] == "#000") - WRITE_FILE(S["features["mcolor"]"] , "#FFF") - - if(!S["features["horn_color"]"] || S["features["horn_color"]"] == "#000") - WRITE_FILE(S["features["horn_color"]"] , "#85615a") - - if(!S["features["wing_color"]"] || S["features["wing_color"]"] == "#000") - WRITE_FILE(S["features["wing_color"]"] , "#FFF") - //Character S["real_name"] >> real_name S["nameless"] >> nameless @@ -432,8 +448,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["shirt_color"] >> shirt_color S["socks"] >> socks S["socks_color"] >> socks_color - S["horn_color"] >> horn_color - S["wing_color"] >> wing_color S["backbag"] >> backbag S["jumpsuit_style"] >> jumpsuit_style S["uplink_loc"] >> uplink_spawn_loc @@ -521,6 +535,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car else //We have no old flavortext, default to new S["feature_flavor_text"] >> features["flavor_text"] + S["feature_ooc_notes"] >> features["ooc_notes"] + S["vore_flags"] >> vore_flags S["vore_taste"] >> vore_taste S["belly_prefs"] >> belly_prefs @@ -543,15 +559,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(!custom_names[custom_name_id]) custom_names[custom_name_id] = get_default_name(custom_name_id) - if(!features["mcolor"] || features["mcolor"] == "#000") - features["mcolor"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F") - - if(!features["horn_color"] || features["horn_color"] == "#000") - features["horn_color"] = "85615a" - - if(!features["wing_color"] || features["wing_color"] == "#000") - features["wing_color"] = "FFFFFF" - nameless = sanitize_integer(nameless, 0, 1, initial(nameless)) be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name)) be_random_body = sanitize_integer(be_random_body, 0, 1, initial(be_random_body)) @@ -568,13 +575,18 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car hair_color = sanitize_hexcolor(hair_color, 3, 0) facial_hair_color = sanitize_hexcolor(facial_hair_color, 3, 0) eye_color = sanitize_hexcolor(eye_color, 3, 0) - use_custom_skin_tone = sanitize_integer(use_custom_skin_tone, FALSE, TRUE, initial(use_custom_skin_tone)) - if(use_custom_skin_tone && CONFIG_GET(number/allow_custom_skintones)) + + var/static/allow_custom_skintones + if(isnull(allow_custom_skintones)) + allow_custom_skintones = CONFIG_GET(flag/allow_custom_skintones) + use_custom_skin_tone = allow_custom_skintones ? sanitize_integer(use_custom_skin_tone, FALSE, TRUE, initial(use_custom_skin_tone)) : FALSE + if(use_custom_skin_tone) skin_tone = sanitize_hexcolor(skin_tone, 6, TRUE, "#FFFFFF") else skin_tone = sanitize_inlist(skin_tone, GLOB.skin_tones - GLOB.nonstandard_skin_tones, initial(skin_tone)) - horn_color = sanitize_hexcolor(horn_color, 3, FALSE) - wing_color = sanitize_hexcolor(wing_color, 3, FALSE, "#FFFFFF") + + features["horns_color"] = sanitize_hexcolor(features["horns_color"], 3, FALSE, "85615a") + features["wings_color"] = sanitize_hexcolor(features["wings_color"], 3, FALSE, "FFFFFF") backbag = sanitize_inlist(backbag, GLOB.backbaglist, initial(backbag)) jumpsuit_style = sanitize_inlist(jumpsuit_style, GLOB.jumpsuitlist, initial(jumpsuit_style)) uplink_spawn_loc = sanitize_inlist(uplink_spawn_loc, GLOB.uplink_spawn_loc_list, initial(uplink_spawn_loc)) @@ -599,7 +611,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car var/static/size_max if(!size_max) size_max = CONFIG_GET(number/body_size_max) - features["body_size"] = sanitize_integer(features["body_size"], size_min, size_max, RESIZE_DEFAULT_SIZE) + features["body_size"] = sanitize_num_clamp(features["body_size"], size_min, size_max, RESIZE_DEFAULT_SIZE, 0.01) var/static/list/B_sizes if(!B_sizes) @@ -633,6 +645,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car features["flavor_text"] = copytext(features["flavor_text"], 1, MAX_FLAVOR_LEN) + features["ooc_notes"] = copytext(features["ooc_notes"], 1, MAX_FLAVOR_LEN) joblessrole = sanitize_integer(joblessrole, 1, 3, initial(joblessrole)) //Validate job prefs @@ -688,8 +701,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["shirt_color"] , shirt_color) WRITE_FILE(S["socks"] , socks) WRITE_FILE(S["socks_color"] , socks_color) - WRITE_FILE(S["horn_color"] , horn_color) - WRITE_FILE(S["wing_color"] , wing_color) + WRITE_FILE(S["horns_color"] , features["horns_color"]) + WRITE_FILE(S["wings_color"] , features["wings_color"]) WRITE_FILE(S["backbag"] , backbag) WRITE_FILE(S["jumpsuit_style"] , jumpsuit_style) WRITE_FILE(S["uplink_loc"] , uplink_spawn_loc) @@ -736,6 +749,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["feature_has_womb"], features["has_womb"]) + WRITE_FILE(S["feature_ooc_notes"], features["ooc_notes"]) + //Custom names for(var/custom_name_id in GLOB.preferences_custom_names) var/savefile_slot_name = custom_name_id + "_name" //TODO remove this diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 9f1111e5d9..df05eee638 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -262,7 +262,15 @@ return random_look(owner) -/obj/item/clothing/under/chameleon +// Forgive me for my sins... +#define CHAMELEON_CLOTHING_DEFINE(path) \ +##path/syndicate/Initialize(mapload){\ + . = ..();\ + AddComponent(/datum/component/identification/syndicate, ID_COMPONENT_DEL_ON_IDENTIFY, ID_COMPONENT_EFFECT_NO_ACTIONS, ID_COMPONENT_IDENTIFY_WITH_DECONSTRUCTOR);\ +}\ +##path + +CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/under/chameleon) //starts off as black name = "black jumpsuit" icon_state = "black" @@ -300,7 +308,7 @@ . = ..() chameleon_action.emp_randomise(INFINITY) -/obj/item/clothing/suit/chameleon +CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/suit/chameleon) name = "armor" desc = "A slim armored vest that protects against most types of damage." icon_state = "armor" @@ -329,7 +337,7 @@ . = ..() chameleon_action.emp_randomise(INFINITY) -/obj/item/clothing/glasses/chameleon +CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/glasses/chameleon) name = "Optical Meson Scanner" desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition." icon_state = "meson" @@ -357,7 +365,7 @@ . = ..() chameleon_action.emp_randomise(INFINITY) -/obj/item/clothing/gloves/chameleon +CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/gloves/chameleon) desc = "These gloves will protect the wearer from electric shock." name = "insulated gloves" icon_state = "yellow" @@ -368,6 +376,9 @@ var/datum/action/item_action/chameleon/change/chameleon_action +CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/gloves/chameleon/insulated) + siemens_coefficient = 0 + /obj/item/clothing/gloves/chameleon/Initialize() . = ..() chameleon_action = new(src) @@ -386,7 +397,7 @@ . = ..() chameleon_action.emp_randomise(INFINITY) -/obj/item/clothing/head/chameleon +CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/head/chameleon) name = "grey cap" desc = "It's a baseball hat in a tasteful grey colour." icon_state = "greysoft" @@ -429,7 +440,7 @@ var/datum/action/item_action/chameleon/drone/randomise/randomise_action = new(src) randomise_action.UpdateButtonIcon() -/obj/item/clothing/mask/chameleon +CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/mask/chameleon) name = "gas mask" desc = "A face-covering mask that can be connected to an air supply. While good for concealing your identity, it isn't good for blocking gas flow." //More accurate icon_state = "gas_alt" @@ -486,7 +497,7 @@ /obj/item/clothing/mask/chameleon/drone/attack_self(mob/user) to_chat(user, "[src] does not have a voice changer.") -/obj/item/clothing/shoes/chameleon +CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/shoes/chameleon) name = "black shoes" icon_state = "black" desc = "A pair of black shoes." @@ -511,7 +522,7 @@ return chameleon_action.emp_randomise() -/obj/item/clothing/shoes/chameleon/noslip +CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/shoes/chameleon/noslip) name = "black shoes" icon_state = "black" desc = "A pair of black shoes." @@ -521,7 +532,7 @@ . = ..() chameleon_action.emp_randomise(INFINITY) -/obj/item/storage/backpack/chameleon +CHAMELEON_CLOTHING_DEFINE(/obj/item/storage/backpack/chameleon) name = "backpack" var/datum/action/item_action/chameleon/change/chameleon_action @@ -542,7 +553,7 @@ . = ..() chameleon_action.emp_randomise(INFINITY) -/obj/item/storage/belt/chameleon +CHAMELEON_CLOTHING_DEFINE(/obj/item/storage/belt/chameleon) name = "toolbelt" desc = "Holds tools." var/datum/action/item_action/chameleon/change/chameleon_action @@ -570,7 +581,7 @@ . = ..() chameleon_action.emp_randomise(INFINITY) -/obj/item/radio/headset/chameleon +CHAMELEON_CLOTHING_DEFINE(/obj/item/radio/headset/chameleon) name = "radio headset" var/datum/action/item_action/chameleon/change/chameleon_action @@ -591,7 +602,7 @@ . = ..() chameleon_action.emp_randomise(INFINITY) -/obj/item/pda/chameleon +CHAMELEON_CLOTHING_DEFINE(/obj/item/pda/chameleon) name = "PDA" var/datum/action/item_action/chameleon/change/pda/chameleon_action @@ -613,7 +624,7 @@ . = ..() chameleon_action.emp_randomise(INFINITY) -/obj/item/stamp/chameleon +CHAMELEON_CLOTHING_DEFINE(/obj/item/stamp/chameleon) var/datum/action/item_action/chameleon/change/chameleon_action /obj/item/stamp/chameleon/Initialize() @@ -627,7 +638,7 @@ . = ..() chameleon_action.emp_randomise(INFINITY) -/obj/item/clothing/neck/cloak/chameleon +CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/neck/cloak/chameleon) name = "black tie" desc = "A neosilk clip-on tie." icon = 'icons/obj/clothing/neck.dmi' diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index d484027ad5..a28061db10 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -173,12 +173,18 @@ SEE_PIXELS// if an object is located on an unlit area, but some of its pixels ar BLIND // can't see anything */ -/proc/generate_female_clothing(index,t_color,icon,type) - var/icon/female_clothing_icon = icon("icon"=icon, "icon_state"=t_color) - var/icon/female_s = icon("icon"='icons/mob/clothing/uniform.dmi', "icon_state"="[(type == FEMALE_UNIFORM_FULL) ? "female_full" : "female_top"]") - female_clothing_icon.Blend(female_s, ICON_MULTIPLY) - female_clothing_icon = fcopy_rsc(female_clothing_icon) - GLOB.female_clothing_icons[index] = female_clothing_icon +/proc/generate_alpha_masked_clothing(index,state,icon,female,alpha_masks) + var/icon/I = icon(icon, state) + if(female) + var/icon/female_s = icon('icons/mob/clothing/alpha_masks.dmi', "[(female == FEMALE_UNIFORM_FULL) ? "female_full" : "female_top"]") + I.Blend(female_s, ICON_MULTIPLY, -15, -15) //it's a 64x64 icon. + if(alpha_masks) + if(istext(alpha_masks)) + alpha_masks = list(alpha_masks) + for(var/alpha_state in alpha_masks) + var/icon/alpha = icon('icons/mob/clothing/alpha_masks.dmi', alpha_state) + I.Blend(alpha, ICON_MULTIPLY, -15, -15) + . = GLOB.alpha_masked_worn_icons[index] = fcopy_rsc(I) /obj/item/clothing/proc/weldingvisortoggle(mob/user) //proc to toggle welding visors on helmets, masks, goggles, etc. if(!can_use(user)) diff --git a/code/modules/clothing/gloves/tacklers.dm b/code/modules/clothing/gloves/tacklers.dm new file mode 100644 index 0000000000..ddbeeab7f6 --- /dev/null +++ b/code/modules/clothing/gloves/tacklers.dm @@ -0,0 +1,97 @@ +/obj/item/clothing/gloves/tackler + name = "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_state = "tackle" + item_state = "tackle" + transfer_prints = TRUE + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + resistance_flags = NONE + //custom_premium_price = 350 + /// For storing our tackler datum so we can remove it after + var/datum/component/tackler + /// See: [/datum/component/tackler/var/stamina_cost] + var/tackle_stam_cost = 25 + /// See: [/datum/component/tackler/var/base_knockdown] + var/base_knockdown = 1 SECONDS + /// See: [/datum/component/tackler/var/range] + var/tackle_range = 4 + /// See: [/datum/component/tackler/var/min_distance] + var/min_distance = 0 + /// See: [/datum/component/tackler/var/speed] + var/tackle_speed = 1 + /// See: [/datum/component/tackler/var/skill_mod] + var/skill_mod = 1 + +/obj/item/clothing/gloves/tackler/equipped(mob/user, slot) + . = ..() + if(!ishuman(user)) + return + if(slot == ITEM_SLOT_GLOVES) + var/mob/living/carbon/human/H = user + tackler = H.AddComponent(/datum/component/tackler, stamina_cost=tackle_stam_cost, base_knockdown = base_knockdown, range = tackle_range, speed = tackle_speed, skill_mod = skill_mod, min_distance = min_distance) + +/obj/item/clothing/gloves/tackler/dropped(mob/user) + . = ..() + if(tackler) + qdel(tackler) + +/obj/item/clothing/gloves/tackler/dolphin + name = "dolphin gloves" + desc = "Sleek, aerodynamic gripper gloves that are less effective at actually performing takedowns, but more effective at letting the user sail through the hallways and cause accidents." + icon_state = "tackledolphin" + item_state = "tackledolphin" + + tackle_stam_cost = 15 + base_knockdown = 0.5 SECONDS + tackle_range = 5 + tackle_speed = 2 + min_distance = 2 + skill_mod = -2 + +/obj/item/clothing/gloves/tackler/combat + name = "gorilla gloves" + desc = "Premium quality combative gloves, heavily reinforced to give the user an edge in close combat tackles, though they are more taxing to use than normal gripper gloves. Fireproof to boot!" + icon_state = "combat" + item_state = "blackgloves" + + tackle_stam_cost = 35 + base_knockdown = 1.5 SECONDS + tackle_range = 5 + skill_mod = 3 + + 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 + +/obj/item/clothing/gloves/tackler/combat/insulated + name = "guerrilla gloves" + desc = "Superior quality combative gloves, good for performing tackle takedowns as well as absorbing electrical shocks." + siemens_coefficient = 0 + permeability_coefficient = 0.05 + +/obj/item/clothing/gloves/tackler/rocket + name = "rocket gloves" + desc = "The ultimate in high risk, high reward, perfect for when you need to stop a criminal from fifty feet away or die trying. Banned in most Spinward gridiron football and rugby leagues." + icon_state = "tacklerocket" + item_state = "tacklerocket" + + tackle_stam_cost = 50 + base_knockdown = 2 SECONDS + tackle_range = 10 + min_distance = 7 + tackle_speed = 6 + skill_mod = 7 + +/obj/item/clothing/gloves/tackler/offbrand + name = "improvised gripper gloves" + desc = "Ratty looking fingerless gloves wrapped with sticky tape. Beware anyone wearing these, for they clearly have no shame and nothing to lose." + icon_state = "fingerless" + item_state = "fingerless" + + tackle_stam_cost = 30 + base_knockdown = 1.75 SECONDS + min_distance = 2 + skill_mod = -1 diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 9ad05efb7a..25ef367b48 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -243,7 +243,7 @@ icon_state = "knight_greyscale" item_state = "knight_greyscale" armor = list("melee" = 35, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 10, "bio" = 10, "rad" = 10, "fire" = 40, "acid" = 40) - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Can change color and add prefix + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS //Can change color and add prefix /obj/item/clothing/head/helmet/skull name = "skull helmet" @@ -273,7 +273,7 @@ //LightToggle -/obj/item/clothing/head/helment/ComponentInitialize() +/obj/item/clothing/head/helmet/ComponentInitialize() . = ..() AddElement(/datum/element/update_icon_updates_onmob) diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 9c96223a6f..764b50de8c 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -42,6 +42,7 @@ desc = "You put the cake on your head. Brilliant." icon_state = "hardhat0_cakehat" item_state = "hardhat0_cakehat" + hat_type = "cakehat" hitsound = 'sound/weapons/tap.ogg' flags_inv = HIDEEARS|HIDEHAIR armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 144b17e510..90b3d7d86b 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -73,18 +73,26 @@ resistance_flags = FLAMMABLE actions_types = list(/datum/action/item_action/adjust) dog_fashion = /datum/dog_fashion/head/clown + var/list/clownmask_designs = list() + +/obj/item/clothing/mask/gas/clown_hat/Initialize(mapload) + .=..() + clownmask_designs = list( + "True Form" = image(icon = src.icon, icon_state = "clown"), + "The Feminist" = image(icon = src.icon, icon_state = "sexyclown"), + "The Jester" = image(icon = src.icon, icon_state = "chaos"), + "The Madman" = image(icon = src.icon, icon_state = "joker"), + "The Rainbow Color" = image(icon = src.icon, icon_state = "rainbow") + ) /obj/item/clothing/mask/gas/clown_hat/ui_action_click(mob/user) if(!istype(user) || user.incapacitated()) return - var/list/options = list() - options["True Form"] = "clown" - options["The Feminist"] = "sexyclown" - options["The Madman"] = "joker" - options["The Rainbow Color"] ="rainbow" + var/static/list/options = list("True Form" = "clown", "The Feminist" = "sexyclown", "The Madman" = "joker", + "The Rainbow Color" ="rainbow", "The Jester" = "chaos") - var/choice = input(user,"To what form do you wish to Morph this mask?","Morph Mask") in options + var/choice = show_radial_menu(user,src, clownmask_designs, custom_check = FALSE, radius = 36, require_near = TRUE) if(src && choice && !user.incapacitated() && in_range(user,src)) icon_state = options[choice] @@ -93,7 +101,7 @@ var/datum/action/A = X A.UpdateButtonIcon() to_chat(user, "Your Clown Mask has now morphed into [choice], all praise the Honkmother!") - return 1 + return TRUE /obj/item/clothing/mask/gas/sexyclown name = "sexy-clown wig and mask" @@ -113,19 +121,26 @@ flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE actions_types = list(/datum/action/item_action/adjust) + var/list/mimemask_designs = list() + + +/obj/item/clothing/mask/gas/mime/Initialize(mapload) + .=..() + mimemask_designs = list( + "Blanc" = image(icon = src.icon, icon_state = "mime"), + "Excité" = image(icon = src.icon, icon_state = "sexymime"), + "Triste" = image(icon = src.icon, icon_state = "sadmime"), + "Effrayé" = image(icon = src.icon, icon_state = "scaredmime") + ) /obj/item/clothing/mask/gas/mime/ui_action_click(mob/user) if(!istype(user) || user.incapacitated()) return - var/list/options = list() - options["Blanc"] = "mime" - options["Triste"] = "sadmime" - options["Effrayé"] = "scaredmime" - options["Excité"] ="sexymime" + var/static/list/options = list("Blanc" = "mime", "Triste" = "sadmime", "Effrayé" = "scaredmime", "Excité" ="sexymime") - var/choice = input(user,"To what form do you wish to Morph this mask?","Morph Mask") in options + var/choice = show_radial_menu(user,src, mimemask_designs, custom_check = FALSE, radius = 36, require_near = TRUE) if(src && choice && !user.incapacitated() && in_range(user,src)) icon_state = options[choice] @@ -134,7 +149,7 @@ var/datum/action/A = X A.UpdateButtonIcon() to_chat(user, "Your Mime Mask has now morphed into [choice]!") - return 1 + return TRUE /obj/item/clothing/mask/gas/monkeymask name = "monkey mask" @@ -187,18 +202,25 @@ max_integrity = 100 actions_types = list(/datum/action/item_action/adjust) dog_fashion = null + var/list/tikimask_designs = list() +/obj/item/clothing/mask/gas/tiki_mask/Initialize(mapload) + .=..() + tikimask_designs = list( + "Original Tiki" = image(icon = src.icon, icon_state = "tiki_eyebrow"), + "Happy Tiki" = image(icon = src.icon, icon_state = "tiki_happy"), + "Confused Tiki" = image(icon = src.icon, icon_state = "tiki_confused"), + "Angry Tiki" = image(icon = src.icon, icon_state = "tiki_angry") + ) + /obj/item/clothing/mask/gas/tiki_mask/ui_action_click(mob/user) var/mob/M = usr - var/list/options = list() - options["Original Tiki"] = "tiki_eyebrow" - options["Happy Tiki"] = "tiki_happy" - options["Confused Tiki"] = "tiki_confused" - options["Angry Tiki"] ="tiki_angry" + var/static/list/options = list("Original Tiki" = "tiki_eyebrow", "Happy Tiki" = "tiki_happy", "Confused Tiki" = "tiki_confused", + "Angry Tiki" = "tiki_angry") - var/choice = input(M,"To what form do you wish to change this mask?","Morph Mask") in options + var/choice = show_radial_menu(user,src, tikimask_designs, custom_check = FALSE, radius = 36, require_near = TRUE) if(src && choice && !M.stat && in_range(M,src)) icon_state = options[choice] @@ -207,4 +229,4 @@ var/datum/action/A = X A.UpdateButtonIcon() to_chat(M, "The Tiki Mask has now changed into the [choice] Mask!") - return 1 + return TRUE diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 3813ced2c4..11df38cfdd 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -351,30 +351,40 @@ resistance_flags = FLAMMABLE max_integrity = 100 actions_types = list(/datum/action/item_action/adjust) + var/list/papermask_designs = list() +/obj/item/clothing/mask/paper/Initialize(mapload) + .=..() + papermask_designs = list( + "Blank" = image(icon = src.icon, icon_state = "plainmask"), + "Neutral" = image(icon = src.icon, icon_state = "neutralmask"), + "Eyes" = image(icon = src.icon, icon_state = "eyemask"), + "Sleeping" = image(icon = src.icon, icon_state = "sleepingmask"), + "Heart" = image(icon = src.icon, icon_state = "heartmask"), + "Core" = image(icon = src.icon, icon_state = "coremask"), + "Plus" = image(icon = src.icon, icon_state = "plusmask"), + "Square" = image(icon = src.icon, icon_state = "squaremask"), + "Bullseye" = image(icon = src.icon, icon_state = "bullseyemask"), + "Vertical" = image(icon = src.icon, icon_state = "verticalmask"), + "Horizontal" = image(icon = src.icon, icon_state = "horizontalmask"), + "X" = image(icon = src.icon, icon_state = "xmask"), + "Bugeyes" = image(icon = src.icon, icon_state = "bugmask"), + "Double" = image(icon = src.icon, icon_state = "doublemask"), + "Mark" = image(icon = src.icon, icon_state = "markmask") + ) + /obj/item/clothing/mask/paper/ui_action_click(mob/user) if(!istype(user) || user.incapacitated()) return - var/list/options = list() - options["Blank"] = "plainmask" - options["Neutral"] = "neutralmask" - options["Eyes"] = "eyemask" - options["Sleeping"] ="sleepingmask" - options["Heart"] = "heartmask" - options["Core"] = "coremask" - options["Plus"] = "plusmask" - options["Square"] ="squaremask" - options["Bullseye"] = "bullseyemask" - options["Vertical"] = "verticalmask" - options["Horizontal"] = "horizontalmask" - options["X"] ="xmask" - options["Bugeyes"] = "bugmask" - options["Double"] = "doublemask" - options["Mark"] = "markmask" + var/static/list/options = list("Blank" = "plainmask", "Neutral" = "neutralmask", "Eyes" = "eyemask", + "Sleeping" ="sleepingmask", "Heart" = "heartmask", "Core" = "coremask", + "Plus" = "plusmask", "Square" ="squaremask", "Bullseye" = "bullseyemask", + "Vertical" = "verticalmask", "Horizontal" = "horizontalmask", "X" ="xmask", + "Bugeyes" = "bugmask", "Double" = "doublemask", "Mark" = "markmask") - var/choice = input(user,"What symbol would you want on this mask?","Morph Mask") in options + var/choice = show_radial_menu(user,src, papermask_designs, custom_check = FALSE, radius = 36, require_near = TRUE) if(src && choice && !user.incapacitated() && in_range(user,src)) icon_state = options[choice] diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index 48cc92db61..7cd2e9b394 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -3,7 +3,7 @@ uniform = /obj/item/clothing/under/rank/centcom/officer shoes = /obj/item/clothing/shoes/combat/swat - gloves = /obj/item/clothing/gloves/combat + gloves = /obj/item/clothing/gloves/tackler/combat/insulated ears = /obj/item/radio/headset/headset_cent/alt /datum/outfit/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) @@ -69,8 +69,8 @@ id = /obj/item/card/id/ert/Security suit = /obj/item/clothing/suit/space/hardsuit/ert/sec glasses = /obj/item/clothing/glasses/hud/security/sunglasses - back = /obj/item/storage/backpack/security belt = /obj/item/storage/belt/security/full + back = /obj/item/storage/backpack/security backpack_contents = list(/obj/item/storage/box/engineer=1,\ /obj/item/storage/box/handcuffs=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index b1f6e7696d..d692f9c3fb 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -205,7 +205,7 @@ uniform = /obj/item/clothing/under/rank/centcom/commander suit = /obj/item/clothing/suit/armor/bulletproof shoes = /obj/item/clothing/shoes/combat/swat - gloves = /obj/item/clothing/gloves/combat + gloves = /obj/item/clothing/gloves/tackler/combat/insulated ears = /obj/item/radio/headset/headset_cent/commander glasses = /obj/item/clothing/glasses/eyepatch mask = /obj/item/clothing/mask/cigarette/cigar/cohiba @@ -234,7 +234,7 @@ uniform = /obj/item/clothing/under/syndicate suit = /obj/item/clothing/suit/space/officer shoes = /obj/item/clothing/shoes/combat/swat - gloves = /obj/item/clothing/gloves/combat + gloves = /obj/item/clothing/gloves/tackler/combat/insulated glasses = /obj/item/clothing/glasses/thermal/eyepatch ears = /obj/item/radio/headset/headset_cent/commander mask = /obj/item/clothing/mask/cigarette/cigar/havana @@ -316,7 +316,7 @@ uniform = /obj/item/clothing/under/costume/soviet head = /obj/item/clothing/head/pirate/captain shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat + gloves = /obj/item/clothing/gloves/tackler/combat/insulated ears = /obj/item/radio/headset/headset_cent glasses = /obj/item/clothing/glasses/thermal/eyepatch suit = /obj/item/clothing/suit/pirate/captain @@ -372,7 +372,7 @@ uniform = /obj/item/clothing/under/color/green suit = /obj/item/clothing/suit/space/hardsuit/deathsquad shoes = /obj/item/clothing/shoes/combat/swat - gloves = /obj/item/clothing/gloves/combat + gloves = /obj/item/clothing/gloves/tackler/combat/insulated mask = /obj/item/clothing/mask/gas/sechailer/swat glasses = /obj/item/clothing/glasses/hud/toggle/thermal back = /obj/item/storage/backpack/security @@ -431,7 +431,7 @@ glasses = /obj/item/clothing/glasses/debug ears = /obj/item/radio/headset/headset_cent/commander mask = /obj/item/clothing/mask/gas/welding/up - gloves = /obj/item/clothing/gloves/combat + gloves = /obj/item/clothing/gloves/tackler/combat/insulated belt = /obj/item/storage/belt/utility/chief/full l_pocket = /obj/item/gun/magic/wand/resurrection/debug r_pocket = /obj/item/gun/magic/wand/death/debug diff --git a/code/modules/clothing/outfits/vr.dm b/code/modules/clothing/outfits/vr.dm index ee350e3891..7a057eda41 100644 --- a/code/modules/clothing/outfits/vr.dm +++ b/code/modules/clothing/outfits/vr.dm @@ -17,7 +17,7 @@ name = "Syndicate VR Operative - Basic" uniform = /obj/item/clothing/under/syndicate shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat + gloves = /obj/item/clothing/gloves/tackler/combat/insulated back = /obj/item/storage/backpack id = /obj/item/card/id/syndicate belt = /obj/item/gun/ballistic/automatic/pistol diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 7a3ed902ea..46477097d0 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -143,6 +143,13 @@ max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes +/obj/item/clothing/shoes/winterboots/ice_boots + name = "ice hiking boots" + desc = "A pair of winter boots with special grips on the bottom, designed to prevent slipping on frozen surfaces." + icon_state = "iceboots" + item_state = "iceboots" + clothing_flags = NOSLIP_ICE + /obj/item/clothing/shoes/winterboots/christmasbootsr name = "red christmas boots" desc = "A pair of fluffy red christmas boots!" @@ -173,6 +180,10 @@ name = "mining boots" desc = "Steel-toed mining boots for mining in hazardous environments. Very good at keeping toes uncrushed." icon_state = "explorer" + cold_protection = FEET|LEGS + min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT + heat_protection = FEET|LEGS + max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF /obj/item/clothing/shoes/cult diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 8a7092d8a6..2e72c154d9 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -41,7 +41,7 @@ /obj/item/clothing/head/helmet/space/hardsuit/dropped(mob/user) ..() - if(suit) + if(suit && !ismob(loc)) //equipped() will handle mob cases, so it doesn't disengage twice. suit.RemoveHelmet() soundloop.stop(user) @@ -408,7 +408,6 @@ helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/owl mutantrace_variation = STYLE_DIGITIGRADE - //Wizard hardsuit /obj/item/clothing/head/helmet/space/hardsuit/wizard name = "gem-encrusted hardsuit helmet" @@ -473,6 +472,7 @@ name = "medical hardsuit" desc = "A special suit that protects against hazardous, low pressure environments. Built with lightweight materials for easier movement." item_state = "medical_hardsuit" + slowdown = 0.8 allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/firstaid, /obj/item/healthanalyzer, /obj/item/stack/medical) armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/medical @@ -748,63 +748,20 @@ allowed = null armor = list("melee" = 30, "bullet" = 15, "laser" = 30, "energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100) resistance_flags = FIRE_PROOF | ACID_PROOF - var/current_charges = 3 var/max_charges = 3 //How many charges total the shielding has + var/current_charges //if null, will default to max_chargs var/recharge_delay = 200 //How long after we've been shot before we can start recharging. 20 seconds here - var/recharge_cooldown = 0 //Time since we've last been shot var/recharge_rate = 1 //How quickly the shield recharges once it starts charging var/shield_state = "shield-old" - var/shield_on = "shield-old" /obj/item/clothing/suit/space/hardsuit/shielded/Initialize() . = ..() if(!allowed) allowed = GLOB.advanced_hardsuit_allowed -/obj/item/clothing/suit/space/hardsuit/shielded/check_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(current_charges > 0) - block_return[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] = 100 - block_return[BLOCK_RETURN_BLOCK_CAPACITY] = (block_return[BLOCK_RETURN_BLOCK_CAPACITY] || 0) + current_charges - return ..() - -/obj/item/clothing/suit/space/hardsuit/shielded/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - recharge_cooldown = world.time + recharge_delay - if(current_charges > 0) - var/datum/effect_system/spark_spread/s = new - s.set_up(2, 1, src) - s.start() - owner.visible_message("[owner]'s shields deflect [attack_text] in a shower of sparks!") - current_charges-- - if(recharge_rate) - START_PROCESSING(SSobj, src) - if(current_charges <= 0) - owner.visible_message("[owner]'s shield overloads!") - shield_state = "broken" - owner.update_inv_wear_suit() - return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL - return BLOCK_NONE - -/obj/item/clothing/suit/space/hardsuit/shielded/Destroy() - STOP_PROCESSING(SSobj, src) - return ..() - -/obj/item/clothing/suit/space/hardsuit/shielded/process() - if(world.time > recharge_cooldown && current_charges < max_charges) - current_charges = CLAMP((current_charges + recharge_rate), 0, max_charges) - playsound(loc, 'sound/magic/charge.ogg', 50, 1) - if(current_charges == max_charges) - playsound(loc, 'sound/machines/ding.ogg', 50, 1) - STOP_PROCESSING(SSobj, src) - shield_state = "[shield_on]" - if(ishuman(loc)) - var/mob/living/carbon/human/C = loc - C.update_inv_wear_suit() - -/obj/item/clothing/suit/space/hardsuit/shielded/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) +/obj/item/clothing/suit/space/hardsuit/shielded/ComponentInitialize() . = ..() - if(!isinhands) - var/file2use = style_flags & STYLE_ALL_TAURIC ? 'modular_citadel/icons/mob/64x32_effects.dmi' : 'icons/effects/effects.dmi' - . += mutable_appearance(file2use, shield_state, MOB_LAYER + 0.01) + AddComponent(/datum/component/shielded, current_charges, max_charges, recharge_delay, recharge_rate, ITEM_SLOT_OCLOTHING, shield_state) /obj/item/clothing/head/helmet/space/hardsuit/shielded resistance_flags = FIRE_PROOF | ACID_PROOF @@ -833,7 +790,6 @@ hardsuit_type = "ert_security" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red shield_state = "shield-red" - shield_on = "shield-red" /obj/item/clothing/suit/space/hardsuit/shielded/ctf/blue name = "blue shielded hardsuit" @@ -896,7 +852,6 @@ item_state = "swat_suit" hardsuit_type = "syndi" max_charges = 4 - current_charges = 4 recharge_delay = 15 armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) strip_delay = 130 diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 8bd7ee741d..bbfab5fda7 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -285,7 +285,7 @@ icon_state = "knight_greyscale" item_state = "knight_greyscale" armor = list("melee" = 35, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 10, "bio" = 10, "rad" = 10, "fire" = 40, "acid" = 40) - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Can change color and add prefix + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS //Can change color and add prefix /obj/item/clothing/suit/armor/vest/durathread name = "makeshift vest" diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index dfd0a0ef3b..6c4511324d 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -811,7 +811,7 @@ desc = "A dusty button up winter coat. The zipper tab looks like a tiny pickaxe." icon_state = "coatminer" item_state = "coatminer" - allowed = list(/obj/item/pickaxe, /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) + allowed = list(/obj/item/pickaxe, /obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) hoodtype = /obj/item/clothing/head/hooded/winterhood/miner diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index 8b5e87d63b..e392a6b2d1 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -199,10 +199,9 @@ icon_state = "battlemage" item_state = "battlemage" recharge_rate = 0 + max_charges = INFINITY current_charges = 15 - recharge_cooldown = INFINITY shield_state = "shield-red" - shield_on = "shield-red" min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard @@ -243,6 +242,7 @@ if(!istype(W)) to_chat(user, "The rune can only be used on battlemage armour!") return - W.current_charges += 8 - to_chat(user, "You charge \the [W]. It can now absorb [W.current_charges] hits.") + var/datum/component/shielded/S = GetComponent(/datum/component/shielded) + S.adjust_charges(8) + to_chat(user, "You charge \the [W]. It can now absorb [S.charges] hits.") qdel(src) diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index fe3aaf4bda..e0ecf24204 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -6,7 +6,7 @@ block_priority = BLOCK_PRIORITY_UNIFORM slot_flags = ITEM_SLOT_ICLOTHING armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - mutantrace_variation = STYLE_DIGITIGRADE + mutantrace_variation = STYLE_DIGITIGRADE|USE_TAUR_CLIP_MASK var/fitted = FEMALE_UNIFORM_FULL // For use in alternate clothing styles for women var/has_sensor = HAS_SENSORS // For the crew computer var/random_sensor = TRUE @@ -26,11 +26,13 @@ . += mutable_appearance('icons/effects/item_damage.dmi', "damageduniform") if(blood_DNA) . += mutable_appearance('icons/effects/blood.dmi', "uniformblood", color = blood_DNA_to_color()) + if(accessory_overlay) + . += accessory_overlay /obj/item/clothing/under/attackby(obj/item/I, mob/user, params) if((has_sensor == BROKEN_SENSORS) && istype(I, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/C = I - C.use(1) + I.use_tool(src, user, 0, 1) has_sensor = HAS_SENSORS to_chat(user,"You repair the suit sensors on [src] with [C].") return 1 @@ -99,8 +101,7 @@ if((flags_inv & HIDEACCESSORY) || (A.flags_inv & HIDEACCESSORY)) return TRUE - var/accessory_color = attached_accessory.icon_state - accessory_overlay = mutable_appearance('icons/mob/clothing/accessories.dmi', "[accessory_color]") + accessory_overlay = mutable_appearance('icons/mob/clothing/accessories.dmi', attached_accessory.icon_state) accessory_overlay.alpha = attached_accessory.alpha accessory_overlay.color = attached_accessory.color @@ -262,10 +263,13 @@ fitted = NO_FEMALE_UNIFORM if(!alt_covers_chest) // for the special snowflake suits that expose the chest when adjusted body_parts_covered &= ~CHEST + mutantrace_variation &= ~USE_TAUR_CLIP_MASK //How are we supposed to see the uniform otherwise? else fitted = initial(fitted) if(!alt_covers_chest) body_parts_covered |= CHEST + if(initial(mutantrace_variation) & USE_TAUR_CLIP_MASK) + mutantrace_variation |= USE_TAUR_CLIP_MASK return adjusted diff --git a/code/modules/clothing/under/costume.dm b/code/modules/clothing/under/costume.dm index 7e37d83baa..3e7bc755cb 100644 --- a/code/modules/clothing/under/costume.dm +++ b/code/modules/clothing/under/costume.dm @@ -130,25 +130,27 @@ var/obj/item/clothing/accessory/maidapron/A = new (src) attach_accessory(A) +/obj/item/clothing/under/costume/singer + desc = "Just looking at this makes you want to sing." + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON + body_parts_covered = CHEST|GROIN|ARMS + alternate_worn_layer = ABOVE_SHOES_LAYER + can_adjust = FALSE + /obj/item/clothing/under/costume/singer/yellow name = "yellow performer's outfit" - desc = "Just looking at this makes you want to sing." icon_state = "ysing" item_state = "ysing" body_parts_covered = CHEST|GROIN|ARMS fitted = NO_FEMALE_UNIFORM - alternate_worn_layer = ABOVE_SHOES_LAYER can_adjust = FALSE /obj/item/clothing/under/costume/singer/blue name = "blue performer's outfit" - desc = "Just looking at this makes you want to sing." icon_state = "bsing" item_state = "bsing" - body_parts_covered = CHEST|GROIN|ARMS alternate_worn_layer = ABOVE_SHOES_LAYER fitted = FEMALE_UNIFORM_TOP - can_adjust = FALSE /obj/item/clothing/under/costume/geisha name = "geisha suit" @@ -205,7 +207,7 @@ body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - mutantrace_variation = NONE + mutantrace_variation = USE_TAUR_CLIP_MASK /obj/item/clothing/under/costume/drfreeze name = "doctor freeze's jumpsuit" @@ -213,7 +215,7 @@ icon_state = "drfreeze" item_state = "drfreeze" can_adjust = FALSE - mutantrace_variation = NONE + mutantrace_variation = USE_TAUR_CLIP_MASK /obj/item/clothing/under/costume/lobster name = "foam lobster suit" @@ -222,7 +224,7 @@ item_state = "lobster" fitted = NO_FEMALE_UNIFORM can_adjust = FALSE - mutantrace_variation = NONE + mutantrace_variation = USE_TAUR_CLIP_MASK /obj/item/clothing/under/costume/gondola name = "gondola hide suit" @@ -248,7 +250,7 @@ icon_state = "christmasmaler" item_state = "christmasmaler" can_adjust = FALSE - mutantrace_variation = NONE + mutantrace_variation = USE_TAUR_CLIP_MASK /obj/item/clothing/under/costume/christmas/green name = "green christmas suit" @@ -262,7 +264,7 @@ icon_state = "christmasfemaler" item_state = "christmasfemaler" body_parts_covered = CHEST|GROIN - mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON|USE_TAUR_CLIP_MASK /obj/item/clothing/under/costume/christmas/croptop/green name = "green feminine christmas suit" @@ -287,7 +289,6 @@ item_state = "qipao_white" body_parts_covered = CHEST|GROIN can_adjust = FALSE - mutantrace_variation = NONE /obj/item/clothing/under/costume/qipao/red name = "Red Qipao" @@ -296,7 +297,6 @@ item_state = "qipao_red" body_parts_covered = CHEST|GROIN can_adjust = FALSE - mutantrace_variation = NONE /obj/item/clothing/under/costume/cheongsam name = "Black Cheongsam" @@ -305,7 +305,7 @@ item_state = "cheong" body_parts_covered = CHEST|GROIN can_adjust = FALSE - mutantrace_variation = NONE + mutantrace_variation = USE_TAUR_CLIP_MASK /obj/item/clothing/under/costume/cheongsam/white name = "White Cheongsam" @@ -323,7 +323,6 @@ item_state = "cheongr" body_parts_covered = CHEST|GROIN can_adjust = FALSE - mutantrace_variation = NONE /obj/item/clothing/under/costume/cloud name = "cloud" diff --git a/code/modules/clothing/under/jobs/civilian/clown_mime.dm b/code/modules/clothing/under/jobs/civilian/clown_mime.dm index 5b3b84fd6e..470a3695fc 100644 --- a/code/modules/clothing/under/jobs/civilian/clown_mime.dm +++ b/code/modules/clothing/under/jobs/civilian/clown_mime.dm @@ -30,6 +30,7 @@ item_state = "clown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE + mutantrace_variation = STYLE_DIGITIGRADE //The clown suit must look funny, no taur alpha masks where possible. /obj/item/clothing/under/rank/civilian/clown/blue name = "blue clown suit" @@ -90,6 +91,7 @@ desc = "A jolly dress, well suited to entertain your master, nuncle." icon_state = "jester" can_adjust = FALSE + mutantrace_variation = STYLE_DIGITIGRADE|USE_TAUR_CLIP_MASK /obj/item/clothing/under/rank/civilian/clown/jester/alt icon_state = "jester2" @@ -100,6 +102,7 @@ icon_state = "sexyclown" item_state = "sexyclown" can_adjust = FALSE + mutantrace_variation = STYLE_DIGITIGRADE|USE_TAUR_CLIP_MASK /obj/item/clothing/under/rank/civilian/clown/Initialize() . = ..() diff --git a/code/modules/clothing/under/jobs/command.dm b/code/modules/clothing/under/jobs/command.dm index 0d6e6aea62..a614e2fcb3 100644 --- a/code/modules/clothing/under/jobs/command.dm +++ b/code/modules/clothing/under/jobs/command.dm @@ -46,4 +46,4 @@ icon_state = "lewdcap" item_state = "lewdcap" can_adjust = FALSE - mutantrace_variation = NONE + mutantrace_variation = USE_TAUR_CLIP_MASK diff --git a/code/modules/clothing/under/jobs/medical.dm b/code/modules/clothing/under/jobs/medical.dm index 846aae4f18..f50e5161b6 100644 --- a/code/modules/clothing/under/jobs/medical.dm +++ b/code/modules/clothing/under/jobs/medical.dm @@ -22,7 +22,7 @@ icon_state = "cmoturtle" item_state = "w_suit" alt_covers_chest = TRUE - mutantrace_variation = NONE + mutantrace_variation = USE_TAUR_CLIP_MASK /obj/item/clothing/under/rank/medical/geneticist desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it." diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 0acbafe183..997f10a379 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -102,7 +102,7 @@ mob_overlay_icon = 'goon/icons/mob/worn_js_rank.dmi' icon_state = "assistant" item_state = "gy_suit" - mutantrace_variation = NONE + mutantrace_variation = USE_TAUR_CLIP_MASK /obj/item/clothing/under/croptop name = "crop top" @@ -120,7 +120,7 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0, "fire" = 95, "acid" = 95) slowdown = 1 body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - mutantrace_variation = NONE + mutantrace_variation = USE_TAUR_CLIP_MASK can_adjust = FALSE strip_delay = 80 var/next_extinguish = 0 @@ -195,7 +195,7 @@ icon_state = "squatteroutfit" item_state = "squatteroutfit" can_adjust = FALSE - mutantrace_variation = NONE + mutantrace_variation = USE_TAUR_CLIP_MASK /obj/item/clothing/under/misc/blue_camo name = "russian blue camo" @@ -203,7 +203,7 @@ icon_state = "russobluecamo" item_state = "russobluecamo" can_adjust = FALSE - mutantrace_variation = NONE + mutantrace_variation = USE_TAUR_CLIP_MASK /obj/item/clothing/under/misc/keyholesweater name = "keyhole sweater" @@ -237,7 +237,7 @@ icon_state = "tssuit" item_state = "r_suit" can_adjust = FALSE - mutantrace_variation = NONE + mutantrace_variation = USE_TAUR_CLIP_MASK /obj/item/clothing/under/misc/poly_shirt name = "polychromic button-up shirt" diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm index d0048326ff..8aa1ee429c 100644 --- a/code/modules/clothing/under/pants.dm +++ b/code/modules/clothing/under/pants.dm @@ -3,6 +3,7 @@ body_parts_covered = GROIN|LEGS fitted = NO_FEMALE_UNIFORM can_adjust = FALSE + mutantrace_variation = STYLE_DIGITIGRADE //how do they show up on taurs otherwise? /obj/item/clothing/under/pants/classicjeans name = "classic jeans" diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm index b1194da479..426e0e28d9 100644 --- a/code/modules/clothing/under/shorts.dm +++ b/code/modules/clothing/under/shorts.dm @@ -5,6 +5,7 @@ body_parts_covered = GROIN fitted = NO_FEMALE_UNIFORM can_adjust = FALSE + mutantrace_variation = STYLE_DIGITIGRADE //how do they show up on taurs otherwise? /obj/item/clothing/under/shorts/red name = "red athletic shorts" diff --git a/code/modules/clothing/under/skirt_dress.dm b/code/modules/clothing/under/skirt_dress.dm index a7e842282c..e1212cf337 100644 --- a/code/modules/clothing/under/skirt_dress.dm +++ b/code/modules/clothing/under/skirt_dress.dm @@ -1,4 +1,4 @@ -/obj/item/clothing/under/dress/skirt +/obj/item/clothing/under/dress mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON /obj/item/clothing/under/dress/skirt @@ -182,7 +182,6 @@ icon_state = "bride_white" item_state = "bride_white" can_adjust = FALSE - mutantrace_variation = NONE /obj/item/clothing/under/dress/wedding/orange name = "orange wedding dress" @@ -213,7 +212,6 @@ desc = "A fancy skirt made with polychromic threads." icon_state = "polyskirt" item_state = "rainbow" - mutantrace_variation = NONE var/list/poly_colors = list("#FFFFFF", "#F08080", "#808080") /obj/item/clothing/under/dress/skirt/polychromic/ComponentInitialize() @@ -226,5 +224,4 @@ icon_state = "polypleat" item_state = "rainbow" body_parts_covered = CHEST|GROIN|ARMS - mutantrace_variation = NONE poly_colors = list("#8CC6FF", "#808080", "#FF3535") diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index 4fc62893b5..8a88e99d05 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -57,8 +57,7 @@ icon_state = "tactifool" item_state = "bl_suit" has_sensor = TRUE - mutantrace_variation = NONE - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) /obj/item/clothing/under/syndicate/sniper name = "Tactical turtleneck suit" @@ -87,7 +86,7 @@ desc = "With a suit lined with this many pockets, you are ready to operate." icon_state = "syndicate_combat" can_adjust = FALSE - mutantrace_variation = NONE + mutantrace_variation = USE_TAUR_CLIP_MASK /obj/item/clothing/under/syndicate/rus_army name = "advanced military tracksuit" @@ -106,5 +105,5 @@ has_sensor = NO_SENSORS armor = list("melee" = 15, "bullet" = 5, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) alt_covers_chest = TRUE - mutantrace_variation = NONE + mutantrace_variation = USE_TAUR_CLIP_MASK diff --git a/code/modules/events/operative.dm b/code/modules/events/operative.dm index 7fca4188b7..6ef693a886 100644 --- a/code/modules/events/operative.dm +++ b/code/modules/events/operative.dm @@ -19,6 +19,8 @@ var/list/spawn_locs = list() for(var/obj/effect/landmark/carpspawn/L in GLOB.landmarks_list) spawn_locs += L.loc + for(var/obj/effect/landmark/loneopspawn/L in GLOB.landmarks_list) + spawn_locs += L.loc if(!spawn_locs.len) return MAP_ERROR diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm index c27393f83c..d5ab5c6f9c 100644 --- a/code/modules/events/pirates.dm +++ b/code/modules/events/pirates.dm @@ -58,6 +58,9 @@ var/list/candidates = pollGhostCandidates("Do you wish to be considered for pirate crew?", ROLE_TRAITOR) shuffle_inplace(candidates) + if(!SSmapping.empty_space) + SSmapping.empty_space = SSmapping.add_new_zlevel("Empty Area For Pirates", list(ZTRAIT_LINKAGE = SELFLOOPING)) + var/datum/map_template/shuttle/pirate/default/ship = new var/x = rand(TRANSITIONEDGE,world.maxx - TRANSITIONEDGE - ship.width) var/y = rand(TRANSITIONEDGE,world.maxy - TRANSITIONEDGE - ship.height) diff --git a/code/modules/events/sentience.dm b/code/modules/events/sentience.dm index 8fe68f509b..ba14a5307f 100644 --- a/code/modules/events/sentience.dm +++ b/code/modules/events/sentience.dm @@ -9,6 +9,8 @@ role_name = "random animal" var/animals = 1 var/one = "one" + /// Blacklisted mob_biotypes - Hey can we like, not have player controlled megafauna? + var/blacklisted_biotypes = MOB_EPIC fakeable = TRUE /datum/round_event/ghost_role/sentience/announce(fake) @@ -33,6 +35,8 @@ var/turf/T = get_turf(L) if(!T || !is_station_level(T.z)) continue + if(L.mob_biotypes & blacklisted_biotypes) //hey can you don't + continue if(!(L in GLOB.player_list) && !L.mind) potential += L @@ -50,7 +54,7 @@ SG.transfer_ckey(SA, FALSE) - SA.grant_all_languages(TRUE) + SA.grant_all_languages(TRUE, FALSE, FALSE) SA.sentience_act() diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 3b8f8de359..60f2aef629 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -22,7 +22,7 @@ if(turfs.len) //Pick a turf to spawn at if we can var/turf/T = pick(turfs) - new /datum/spacevine_controller(T) //spawn a controller at turf + new /datum/spacevine_controller(T, pick(subtypesof(/datum/spacevine_mutation)), rand(30,100), rand(5,10), src) //spawn a controller at turf with randomized stats and a single random mutation /datum/spacevine_mutation @@ -227,13 +227,13 @@ quality = NEGATIVE /datum/spacevine_mutation/thorns/on_cross(obj/structure/spacevine/holder, mob/living/crosser) - if(prob(severity) && istype(crosser) && !isvineimmune(holder)) + if(prob(severity) && istype(crosser) && !isvineimmune(crosser)) var/mob/living/M = crosser M.adjustBruteLoss(5) to_chat(M, "You cut yourself on the thorny vines.") /datum/spacevine_mutation/thorns/on_hit(obj/structure/spacevine/holder, mob/living/hitter, obj/item/I, expected_damage) - if(prob(severity) && istype(hitter) && !isvineimmune(holder)) + if(prob(severity) && istype(hitter) && !isvineimmune(hitter)) var/mob/living/M = hitter M.adjustBruteLoss(5) to_chat(M, "You cut yourself on the thorny vines.") @@ -251,7 +251,7 @@ holder.obj_integrity = holder.max_integrity /datum/spacevine_mutation/woodening/on_hit(obj/structure/spacevine/holder, mob/living/hitter, obj/item/I, expected_damage) - if(I.get_sharpness()) + if(I?.get_sharpness()) . = expected_damage * 0.5 else . = expected_damage @@ -344,16 +344,17 @@ switch(damage_type) if(BRUTE) if(damage_amount) - playsound(src, 'sound/weapons/slash.ogg', 50, 1) + playsound(src, 'sound/weapons/slash.ogg', 50, TRUE) else - playsound(src, 'sound/weapons/tap.ogg', 50, 1) + playsound(src, 'sound/weapons/tap.ogg', 50, TRUE) if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, 1) + playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) -/obj/structure/spacevine/Crossed(mob/crosser) - if(isliving(crosser)) - for(var/datum/spacevine_mutation/SM in mutations) - SM.on_cross(src, crosser) +/obj/structure/spacevine/Crossed(atom/movable/AM) + if(!isliving(AM)) + return + for(var/datum/spacevine_mutation/SM in mutations) + SM.on_cross(src, AM) //ATTACK HAND IGNORING PARENT RETURN VALUE /obj/structure/spacevine/attack_hand(mob/user) @@ -378,10 +379,9 @@ var/list/vine_mutations_list var/mutativeness = 1 -/datum/spacevine_controller/New(turf/location, list/muts, potency, production) +/datum/spacevine_controller/New(turf/location, list/muts, potency, production, datum/round_event/event = null) vines = list() growth_queue = list() - spawn_spacevine_piece(location, null, muts) START_PROCESSING(SSobj, src) vine_mutations_list = list() init_subtypes(/datum/spacevine_mutation/, vine_mutations_list) @@ -428,6 +428,7 @@ for(var/datum/spacevine_mutation/SM in SV.mutations) SM.on_birth(SV) location.Entered(SV) + return SV /datum/spacevine_controller/proc/VineDestroyed(obj/structure/spacevine/S) S.master = null @@ -531,14 +532,13 @@ qdel(src) /obj/structure/spacevine/CanPass(atom/movable/mover, turf/target) + . = ..() if(isvineimmune(mover)) - . = TRUE - else - . = ..() + return TRUE /proc/isvineimmune(atom/A) - . = FALSE if(isliving(A)) var/mob/living/M = A if(("vines" in M.faction) || ("plants" in M.faction)) - . = TRUE + return TRUE + return FALSE \ No newline at end of file diff --git a/code/modules/events/wormholes.dm b/code/modules/events/wormholes.dm index b7f8b8f911..1b4716b407 100644 --- a/code/modules/events/wormholes.dm +++ b/code/modules/events/wormholes.dm @@ -23,6 +23,9 @@ /datum/round_event/wormholes/start() for(var/turf/open/floor/T in world) if(is_station_level(T.z)) + var/area/A = get_area(T) + if(A.outdoors) + continue pick_turfs += T for(var/i = 1, i <= number_of_wormholes, i++) @@ -57,7 +60,7 @@ if(!(ismecha(M) && mech_sized)) return - if(ismovableatom(M)) + if(ismovable(M)) if(GLOB.portals.len) var/obj/effect/portal/P = pick(GLOB.portals) if(P && isturf(P.loc)) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index ea475b28d6..0c2cbc0c67 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -701,6 +701,9 @@ GLOBAL_LIST_INIT(hallucination_list, list( target.client.images |= speech_overlay sleep(30) target.client.images.Remove(speech_overlay) + var/spans = list(person.speech_span) + if (target.client?.prefs.chat_on_map) + target.create_chat_message(person, understood_language, chosen, spans, 0) else // Radio talk var/chosen = specific_message if(!chosen) diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 95b9f92873..ccce186304 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -396,6 +396,16 @@ list_reagents = list(/datum/reagent/consumable/orangejuice = 100) foodtype = FRUIT| BREAKFAST +/obj/item/reagent_containers/food/drinks/bottle/bio_carton + name = "small carton box" + desc = "A small biodegradable carton box made from plant biomatter." + icon_state = "eco_box" + item_state = "carton" + lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' + volume = 50 + isGlass = FALSE + /obj/item/reagent_containers/food/drinks/bottle/cream name = "milk cream" desc = "It's cream. Made from milk. What else did you think you'd find in there?" diff --git a/code/modules/food_and_drinks/food.dm b/code/modules/food_and_drinks/food.dm index 1342b1fcbf..203eb3eef6 100644 --- a/code/modules/food_and_drinks/food.dm +++ b/code/modules/food_and_drinks/food.dm @@ -25,7 +25,7 @@ pixel_y = rand(-5, 5) /obj/item/reagent_containers/food/proc/adjust_food_quality(new_quality) - food_quality = CLAMP(new_quality,0,100) + food_quality = clamp(new_quality,0,100) /obj/item/reagent_containers/food/proc/checkLiked(var/fraction, mob/M) if(last_check_time + 50 < world.time) diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index a485f0c864..ccac1d4a77 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -260,6 +260,7 @@ All foods are distributed among various categories. Use common sense. slice.desc = "[desc]" if(foodtype != initial(foodtype)) slice.foodtype = foodtype //if something happens that overrode our food type, make sure the slice carries that over + slice.adjust_food_quality(food_quality) /obj/item/reagent_containers/food/snacks/proc/generate_trash(atom/location) if(trash) diff --git a/code/modules/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm index d44f859823..7f75a93464 100644 --- a/code/modules/food_and_drinks/food/snacks/meat.dm +++ b/code/modules/food_and_drinks/food/snacks/meat.dm @@ -47,6 +47,7 @@ slice.name = "raw [subjectname] cutlet" else if(subjectjob) slice.name = "raw [subjectjob] cutlet" + slice.adjust_food_quality(food_quality) /obj/item/reagent_containers/food/snacks/meat/slab/human/initialize_cooked_food(obj/item/reagent_containers/food/snacks/meat/S, cooking_efficiency) ..() diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index 7e831b6cd6..4e6be19488 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -57,7 +57,6 @@ /obj/item/reagent_containers/food/snacks/sushi_basic name = "funa hosomaki" desc = "A small cylindrical kudzu skin, filled with rice and fish." - icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_basic" bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2) list_reagents = list(/datum/reagent/consumable/nutriment = 4) @@ -69,7 +68,6 @@ /obj/item/reagent_containers/food/snacks/sushi_adv name = "funa nigiri" desc = "A peace of carp lightly placed on some rice." - icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_adv" bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2) list_reagents = list(/datum/reagent/consumable/nutriment = 6) @@ -81,7 +79,6 @@ /obj/item/reagent_containers/food/snacks/sushi_pro name = "funa nigiri" desc = "A well prepared peace of the best of the carp fillet placed on rice. Looks fancy and fresh!" - icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_pro" bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2) @@ -222,36 +219,6 @@ tastes = list("meat" = 1, "onions" = 1, "garlic" = 1) foodtype = MEAT -/obj/item/reagent_containers/food/snacks/monkeycube - name = "monkey cube" - desc = "Just add water!" - icon_state = "monkeycube" - bitesize = 12 - list_reagents = list(/datum/reagent/consumable/nutriment = 2) - filling_color = "#CD853F" - tastes = list("the jungle" = 1, "bananas" = 1) - foodtype = MEAT | SUGAR - -/obj/item/reagent_containers/food/snacks/monkeycube/On_Consume(mob/living/carbon/M) - if(iscarbon(M)) - M.visible_message("[src] bursts out of [M]!
    ") - M.emote("scream") - M.DefaultCombatKnockdown(40) - M.adjustBruteLoss(60) - Expand() - return TRUE - return ..() - -/obj/item/reagent_containers/food/snacks/monkeycube/proc/Expand() - var/mob/spammer = get_mob_by_key(fingerprintslast) - var/mob/living/carbon/monkey/bananas = new(drop_location(), TRUE, spammer) - if (!QDELETED(bananas)) - visible_message("[src] expands!") - bananas.log_message("Spawned via [src] at [AREACOORD(src)], Last attached mob: [key_name(spammer)].", LOG_ATTACK) - else if (!spammer) // Visible message in case there are no fingerprints - visible_message("[src] fails to expand!") - qdel(src) - /obj/item/reagent_containers/food/snacks/enchiladas name = "enchiladas" desc = "Viva La Mexico!" @@ -372,3 +339,76 @@ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("meat" = 3, "smokey sauce" = 1) foodtype = MEAT + +////////////// Cubes ////////// + +/obj/item/reagent_containers/food/snacks/cube + name = "debug cube" + desc = "Just add water!" + icon_state = "monkeycube" + bitesize = 12 + list_reagents = list(/datum/reagent/consumable/nutriment = 2) + filling_color = "#CD853F" + tastes = list("broken" = 1, "code" = 1) + foodtype = MEAT | SUGAR + var/dried_being = /mob/living/carbon/monkey //What the cube will spawn mob wise + +/obj/item/reagent_containers/food/snacks/cube/On_Consume(mob/living/carbon/M) + if(iscarbon(M)) + M.visible_message("[src] bursts out of [M]!") + M.emote("scream") + M.DefaultCombatKnockdown(40) + M.adjustBruteLoss(60) + Expand() + return TRUE + return ..() + +/obj/item/reagent_containers/food/snacks/cube/proc/Expand() + var/mob/spammer = get_mob_by_key(fingerprintslast) + var/mob/living/water = new dried_being(drop_location(), TRUE, spammer) + if (!QDELETED(water)) + visible_message("[src] expands!") + water.log_message("Spawned via [src] at [AREACOORD(src)], Last attached mob: [key_name(spammer)].", LOG_ATTACK) + else if (!spammer) // Visible message in case there are no fingerprints + visible_message("[src] fails to expand!") + qdel(src) + +/obj/item/reagent_containers/food/snacks/cube/monkey + name = "monkey cube" + desc = "Just add water!" + tastes = list("the jungle" = 1, "bananas" = 1) + dried_being = /mob/living/carbon/monkey + +/obj/item/reagent_containers/food/snacks/cube/beno + name = "alien drone cube" + desc = "Just add water and run!" + tastes = list("the jungle" = 1, "acid" = 1) + dried_being = /mob/living/carbon/alien/humanoid/drone + +/obj/item/reagent_containers/food/snacks/cube/goat + name = "goat cube" + tastes = list("grass" = 1) + dried_being = /mob/living/simple_animal/hostile/retaliate/goat + +/obj/item/reagent_containers/food/snacks/cube/cow + name = "cow cube" + tastes = list("milk" = 1, "beef" = 1) + dried_being = /mob/living/simple_animal/cow + +/obj/item/reagent_containers/food/snacks/cube/ape + name = "ape cube" + desc = "Don't add water." + tastes = list("the jungle" = 1, "bananas" = 1, "jimmies" = 1) + dried_being = /mob/living/simple_animal/hostile/gorilla + +/obj/item/reagent_containers/food/snacks/cube/egg +//Well eggs normally are able to hatch into small birds, this one does not. +//Also in order to have a normal egg hatch you need a hen to lay the egg that is able to hatch, meaning this one is for on-demand hen needs. + name = "egg cube thing" + desc = "Just add water, hey wait a second..." + icon_state = "egg" + filling_color = "#F0E68C" + cooked_type = /obj/item/reagent_containers/food/snacks/boiledegg + list_reagents = list(/datum/reagent/consumable/eggyolk = 5) + tastes = list("dried eggs" = 1, "confusion" = 1) + dried_being = /mob/living/simple_animal/chicken diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index 6feb2df524..2463ed3ced 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -215,7 +215,6 @@ /obj/item/reagent_containers/food/snacks/tobiko name = "tobiko" desc = "Spider eggs wrapped in a thin salted Kudzu pod" - icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_egg" list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2) filling_color = "#FF3333" // R225 G051 B051 @@ -558,7 +557,6 @@ /obj/item/reagent_containers/food/snacks/riceball name = "onigiri" desc = "A ball of rice with some light salt and a wrap of Kudzu skin." - icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "riceball" list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/sodiumchloride = 2) tastes = list("rice" = 3, "salt" = 1) diff --git a/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm index 3cc4cfe63f..9096429228 100644 --- a/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm +++ b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm @@ -136,7 +136,6 @@ /obj/item/reagent_containers/food/snacks/tuna_sandwich name = "tuna sandwich" desc = "Both a salad and a sandwich in one." - icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "tunasandwich" trash = /obj/item/trash/plate bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3) diff --git a/code/modules/food_and_drinks/food/snacks_sushi.dm b/code/modules/food_and_drinks/food/snacks_sushi.dm index d16ca79001..3757759daf 100644 --- a/code/modules/food_and_drinks/food/snacks_sushi.dm +++ b/code/modules/food_and_drinks/food/snacks_sushi.dm @@ -3,7 +3,6 @@ /obj/item/reagent_containers/food/snacks/sushi_rice name = "Sushi Rice" desc = "A bowl of sticky rice for making sushi." - icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushi_rice" list_reagents = list(/datum/reagent/consumable/sodiumchloride = 5) tastes = list("rice" = 5, "salt" = 1) @@ -12,7 +11,6 @@ /obj/item/reagent_containers/food/snacks/sea_weed name = "Sea Weed Sheet" desc = "A thin, light salt sheet of plant mater. This is commenly used in sushi recipes," - icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sea_weed" list_reagents = list(/datum/reagent/consumable/sodiumchloride = 2) tastes = list("plants" = 2, "salt" = 1) @@ -21,7 +19,6 @@ /obj/item/reagent_containers/food/snacks/tuna name = "Canned Tuna" desc = "A small can of tuna fish beloved by felines." - icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "tuna_can" //trash = /obj/item/trash/tuna_used //I dont know if I like this idea - A Masked Cat list_reagents = list(/datum/reagent/consumable/sodiumchloride = 5, /datum/reagent/mercury = 2) @@ -32,7 +29,6 @@ /obj/item/reagent_containers/food/snacks/sushie_basic name = "Funa Hosomaki" desc = "A small cylindrical filled with rice and fish." - icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_basic" bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2) list_reagents = list(/datum/reagent/consumable/nutriment = 1) @@ -44,7 +40,6 @@ /obj/item/reagent_containers/food/snacks/sushie_adv name = "Funa Nigiri" desc = "A pice of carp lightly placed on some rice." - icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_adv" bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2) list_reagents = list(/datum/reagent/consumable/nutriment = 2) @@ -56,7 +51,6 @@ /obj/item/reagent_containers/food/snacks/sushie_pro name = "Funa Nigiri" desc = "A well prepared pice of the best of the carp fillet placed on rice. Looks fancy and fresh!" - icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_pro" bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1) @@ -68,7 +62,6 @@ /obj/item/reagent_containers/food/snacks/tobiko name = "Tobiko" desc = "Spider eggs wrapped in a thin salted Kudzu pod" - icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_egg" list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2) filling_color = "#FF3333" // R225 G051 B051 @@ -78,7 +71,6 @@ /obj/item/reagent_containers/food/snacks/riceball name = "Onigiri" desc = "A ball of rice with some light salt and a wrap of Kudzu skin." - icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "riceball" list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/sodiumchloride = 2) tastes = list("rice" = 4, "salt" = 1) diff --git a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm index 68cc84c639..feba35da97 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm @@ -118,7 +118,7 @@ break if(href_list["portion"]) - portion = CLAMP(input("How much drink do you want to dispense per glass?") as num, 0, 50) + portion = clamp(input("How much drink do you want to dispense per glass?") as num, 0, 50) if(href_list["pour"] || href_list["m_pour"]) if(glasses-- <= 0) diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index c94aba95b4..dcea93f06f 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -184,9 +184,9 @@ for (var/i=1 to meat_produced) var/obj/item/reagent_containers/food/snacks/meat/slab/newmeat = new typeofmeat - newmeat.adjust_food_quality(meat_quality) newmeat.name = "[sourcename] [newmeat.name]" if(istype(newmeat)) + newmeat.adjust_food_quality(meat_quality) newmeat.subjectname = sourcename newmeat.reagents.add_reagent (/datum/reagent/consumable/nutriment, sourcenutriment / meat_produced) // Thehehe. Fat guys go first if(sourcejob) diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm index 3d7341308b..2318c54508 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm @@ -78,7 +78,7 @@ playsound(src.loc, 'sound/machines/hiss.ogg', 50, 1) grinded -= required_grind for(var/i = 0, i < cube_production, i++) - new /obj/item/reagent_containers/food/snacks/monkeycube(src.loc) + new /obj/item/reagent_containers/food/snacks/cube/monkey(src.loc) to_chat(user, "The machine's display flashes that it has [grinded] monkeys worth of material left.") else to_chat(user, "The machine needs at least [required_grind] monkey(s) worth of material to produce a monkey cube. It only has [grinded].") diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index 94c8d7219c..19ded25b08 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -125,7 +125,7 @@ return else bomb_timer = input(user, "Set the [bomb] timer from [BOMB_TIMER_MIN] to [BOMB_TIMER_MAX].", bomb, bomb_timer) as num - bomb_timer = CLAMP(CEILING(bomb_timer / 2, 1), BOMB_TIMER_MIN, BOMB_TIMER_MAX) + bomb_timer = clamp(CEILING(bomb_timer / 2, 1), BOMB_TIMER_MIN, BOMB_TIMER_MAX) bomb_defused = FALSE var/message = "[ADMIN_LOOKUPFLW(user)] has trapped a [src] with [bomb] set to [bomb_timer * 2] seconds." diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm index 90036c0e2a..f25aaab6fd 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm @@ -68,7 +68,7 @@ /datum/reagent/consumable/sodiumchloride = 1, /datum/reagent/consumable/blackpepper = 1, /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/monkeycube = 1, + /obj/item/reagent_containers/food/snacks/cube/monkey = 1, /obj/item/reagent_containers/food/snacks/grown/banana = 1 ) result = /obj/item/reagent_containers/food/snacks/soup/monkeysdelight diff --git a/code/modules/goonchat/browserOutput.dm b/code/modules/goonchat/browserOutput.dm index 74432c7cbe..6d9e141309 100644 --- a/code/modules/goonchat/browserOutput.dm +++ b/code/modules/goonchat/browserOutput.dm @@ -138,7 +138,7 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("tmp/iconCache.sav")) //Cache of ico /datum/chatOutput/proc/setMusicVolume(volume = "") if(volume) - adminMusicVolume = CLAMP(text2num(volume), 0, 100) + adminMusicVolume = clamp(text2num(volume), 0, 100) //Sends client connection details to the chat to handle and save /datum/chatOutput/proc/sendClientData() diff --git a/code/modules/holodeck/holo_effect.dm b/code/modules/holodeck/holo_effect.dm index 7c3754b616..09dcd7fa64 100644 --- a/code/modules/holodeck/holo_effect.dm +++ b/code/modules/holodeck/holo_effect.dm @@ -62,7 +62,7 @@ s.set_up(3, 1, T) s.start() T.temperature = 5000 - T.hotspot_expose(50000,50000,1) + T.hotspot_expose(50000, 50000, TRUE, TRUE) diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index 6a3fd56208..28f3387097 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -40,14 +40,14 @@ updateUsrDialog() /obj/machinery/biogenerator/RefreshParts() - var/E = 0 - var/P = 0 - var/max_storage = 40 + var/E = 0.5 + var/P = 0.5 + var/max_storage = 20 for(var/obj/item/stock_parts/matter_bin/B in component_parts) - P += B.rating - max_storage = 40 * B.rating + P += B.rating * 0.5 + max_storage = max(20 * B.rating, max_storage) for(var/obj/item/stock_parts/manipulator/M in component_parts) - E += M.rating + E += M.rating * 0.5 efficiency = E productivity = P max_items = max_storage @@ -196,7 +196,7 @@ dat += "x5" if(ispath(D.build_path, /obj/item/stack)) dat += "x10" - dat += "([D.materials[SSmaterials.GetMaterialRef(/datum/material/biomass)]/efficiency])
    " + dat += "([CEILING(D.materials[SSmaterials.GetMaterialRef(/datum/material/biomass)]/efficiency, 1)])
    " dat += "" else dat += "
    No container inside, please insert container.
    " @@ -214,12 +214,16 @@ to_chat(usr, "The biogenerator is in the process of working.") return var/S = 0 + var/total = 0 for(var/obj/item/reagent_containers/food/snacks/grown/I in contents) S += 5 - if(I.reagents.get_reagent_amount(/datum/reagent/consumable/nutriment) < 0.1) - points += 1*productivity - else points += I.reagents.get_reagent_amount(/datum/reagent/consumable/nutriment)*10*productivity + var/nutri_amount = I.reagents.get_reagent_amount(/datum/reagent/consumable/nutriment) + if(nutri_amount < 0.1) + total += 1*productivity + else + total += nutri_amount*10*productivity qdel(I) + points += round(total) if(S) processing = TRUE update_icon() @@ -235,12 +239,13 @@ /obj/machinery/biogenerator/proc/check_cost(list/materials, multiplier = 1, remove_points = TRUE) if(materials.len != 1 || materials[1] != SSmaterials.GetMaterialRef(/datum/material/biomass)) return FALSE - if (materials[SSmaterials.GetMaterialRef(/datum/material/biomass)]*multiplier/efficiency > points) + var/cost = CEILING(materials[SSmaterials.GetMaterialRef(/datum/material/biomass)]*multiplier/efficiency, 1) + if (cost > points) menustat = "nopoints" return FALSE else if(remove_points) - points -= materials[SSmaterials.GetMaterialRef(/datum/material/biomass)]*multiplier/efficiency + points -= cost update_icon() updateUsrDialog() return TRUE @@ -311,7 +316,7 @@ else if(href_list["create"]) var/amount = (text2num(href_list["amount"])) //Can't be outside these (if you change this keep a sane limit) - amount = CLAMP(amount, 1, 50) + amount = clamp(amount, 1, 50) var/id = href_list["create"] if(!stored_research.researched_designs.Find(id)) //naughty naughty diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index 1775a1f9b1..a18dbe165d 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -199,8 +199,8 @@ if(!click_params || !click_params["icon-x"] || !click_params["icon-y"]) return //Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the table turf) - W.pixel_x = CLAMP(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2) - W.pixel_y = CLAMP(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) + W.pixel_x = clamp(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2) + W.pixel_y = clamp(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) else return ..() diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 718033ac56..b7665d7b5d 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -928,26 +928,26 @@ /// Tray Setters - The following procs adjust the tray or plants variables, and make sure that the stat doesn't go out of bounds./// /obj/machinery/hydroponics/proc/adjustNutri(adjustamt) - nutrilevel = CLAMP(nutrilevel + adjustamt, 0, maxnutri) + nutrilevel = clamp(nutrilevel + adjustamt, 0, maxnutri) /obj/machinery/hydroponics/proc/adjustWater(adjustamt) - waterlevel = CLAMP(waterlevel + adjustamt, 0, maxwater) + waterlevel = clamp(waterlevel + adjustamt, 0, maxwater) if(adjustamt>0) adjustToxic(-round(adjustamt/4))//Toxicity dilutation code. The more water you put in, the lesser the toxin concentration. /obj/machinery/hydroponics/proc/adjustHealth(adjustamt) if(myseed && !dead) - plant_health = CLAMP(plant_health + adjustamt, 0, myseed.endurance) + plant_health = clamp(plant_health + adjustamt, 0, myseed.endurance) /obj/machinery/hydroponics/proc/adjustToxic(adjustamt) - toxic = CLAMP(toxic + adjustamt, 0, 100) + toxic = clamp(toxic + adjustamt, 0, 100) /obj/machinery/hydroponics/proc/adjustPests(adjustamt) - pestlevel = CLAMP(pestlevel + adjustamt, 0, 10) + pestlevel = clamp(pestlevel + adjustamt, 0, 10) /obj/machinery/hydroponics/proc/adjustWeeds(adjustamt) - weedlevel = CLAMP(weedlevel + adjustamt, 0, 10) + weedlevel = clamp(weedlevel + adjustamt, 0, 10) /obj/machinery/hydroponics/proc/spawnplant() // why would you put strange reagent in a hydro tray you monster I bet you also feed them blood var/list/livingplants = list(/mob/living/simple_animal/hostile/tree, /mob/living/simple_animal/hostile/killertomato) diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index ef2eff707f..b18f4396d6 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -392,8 +392,7 @@ /datum/plant_gene/trait/battery/on_attackby(obj/item/reagent_containers/food/snacks/grown/G, obj/item/I, mob/user) if(istype(I, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = I - if(C.use(5)) + if(I.use_tool(src, user, 0, 5, max_level = JOB_SKILL_EXPERT)) to_chat(user, "You add some cable to [G] and slide it inside the battery encasing.") var/obj/item/stock_parts/cell/potato/pocell = new /obj/item/stock_parts/cell/potato(user.loc) pocell.icon_state = G.icon_state diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index aa0e789721..5e49a32a23 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -211,7 +211,7 @@ obj/item/seeds/proc/is_gene_forbidden(typepath) /// Setters procs /// /obj/item/seeds/proc/adjust_yield(adjustamt) if(yield != -1) // Unharvestable shouldn't suddenly turn harvestable - yield = CLAMP(yield + adjustamt, 0, 10) + yield = clamp(yield + adjustamt, 0, 10) if(yield <= 0 && get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) yield = 1 // Mushrooms always have a minimum yield of 1. @@ -220,39 +220,39 @@ obj/item/seeds/proc/is_gene_forbidden(typepath) C.value = yield /obj/item/seeds/proc/adjust_lifespan(adjustamt) - lifespan = CLAMP(lifespan + adjustamt, 10, 100) + lifespan = clamp(lifespan + adjustamt, 10, 100) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/lifespan) if(C) C.value = lifespan /obj/item/seeds/proc/adjust_endurance(adjustamt) - endurance = CLAMP(endurance + adjustamt, 10, 100) + endurance = clamp(endurance + adjustamt, 10, 100) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/endurance) if(C) C.value = endurance /obj/item/seeds/proc/adjust_production(adjustamt) if(yield != -1) - production = CLAMP(production + adjustamt, 1, 10) + production = clamp(production + adjustamt, 1, 10) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/production) if(C) C.value = production /obj/item/seeds/proc/adjust_potency(adjustamt) if(potency != -1) - potency = CLAMP(potency + adjustamt, 0, 100) + potency = clamp(potency + adjustamt, 0, 100) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/potency) if(C) C.value = potency /obj/item/seeds/proc/adjust_weed_rate(adjustamt) - weed_rate = CLAMP(weed_rate + adjustamt, 0, 10) + weed_rate = clamp(weed_rate + adjustamt, 0, 10) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_rate) if(C) C.value = weed_rate /obj/item/seeds/proc/adjust_weed_chance(adjustamt) - weed_chance = CLAMP(weed_chance + adjustamt, 0, 67) + weed_chance = clamp(weed_chance + adjustamt, 0, 67) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_chance) if(C) C.value = weed_chance @@ -261,7 +261,7 @@ obj/item/seeds/proc/is_gene_forbidden(typepath) /obj/item/seeds/proc/set_yield(adjustamt) if(yield != -1) // Unharvestable shouldn't suddenly turn harvestable - yield = CLAMP(adjustamt, 0, 10) + yield = clamp(adjustamt, 0, 10) if(yield <= 0 && get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) yield = 1 // Mushrooms always have a minimum yield of 1. @@ -270,39 +270,39 @@ obj/item/seeds/proc/is_gene_forbidden(typepath) C.value = yield /obj/item/seeds/proc/set_lifespan(adjustamt) - lifespan = CLAMP(adjustamt, 10, 100) + lifespan = clamp(adjustamt, 10, 100) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/lifespan) if(C) C.value = lifespan /obj/item/seeds/proc/set_endurance(adjustamt) - endurance = CLAMP(adjustamt, 10, 100) + endurance = clamp(adjustamt, 10, 100) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/endurance) if(C) C.value = endurance /obj/item/seeds/proc/set_production(adjustamt) if(yield != -1) - production = CLAMP(adjustamt, 1, 10) + production = clamp(adjustamt, 1, 10) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/production) if(C) C.value = production /obj/item/seeds/proc/set_potency(adjustamt) if(potency != -1) - potency = CLAMP(adjustamt, 0, 100) + potency = clamp(adjustamt, 0, 100) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/potency) if(C) C.value = potency /obj/item/seeds/proc/set_weed_rate(adjustamt) - weed_rate = CLAMP(adjustamt, 0, 10) + weed_rate = clamp(adjustamt, 0, 10) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_rate) if(C) C.value = weed_rate /obj/item/seeds/proc/set_weed_chance(adjustamt) - weed_chance = CLAMP(adjustamt, 0, 67) + weed_chance = clamp(adjustamt, 0, 67) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_chance) if(C) C.value = weed_chance diff --git a/code/modules/instruments/instruments/item.dm b/code/modules/instruments/instruments/item.dm index fa3e75e431..dde35a9f75 100644 --- a/code/modules/instruments/instruments/item.dm +++ b/code/modules/instruments/instruments/item.dm @@ -66,6 +66,11 @@ /obj/item/instrument/proc/is_tuned() return tune_time_left > 0 +/obj/item/instrument/dropped(mob/user) + . = ..() + if((loc != user) && (user.machine == src)) + user.set_machine(null) + /obj/item/instrument/interact(mob/user) ui_interact(user) diff --git a/code/modules/instruments/songs/_song.dm b/code/modules/instruments/songs/_song.dm index 67feb14457..0fb4418a30 100644 --- a/code/modules/instruments/songs/_song.dm +++ b/code/modules/instruments/songs/_song.dm @@ -213,7 +213,7 @@ /datum/song/proc/sanitize_tempo(new_tempo) new_tempo = abs(new_tempo) - return CLAMP(round(new_tempo, world.tick_lag), world.tick_lag, 5 SECONDS) + return clamp(round(new_tempo, world.tick_lag), world.tick_lag, 5 SECONDS) /datum/song/proc/get_bpm() return 600 / tempo @@ -222,7 +222,9 @@ tempo = sanitize_tempo(600 / bpm) /// Updates the window for our user. Override in subtypes. -/datum/song/proc/updateDialog(mob/user) +/datum/song/proc/updateDialog(mob/user = usr) + if(user.machine != src) + return ui_interact(user) /datum/song/process(wait) @@ -242,22 +244,22 @@ cached_linear_dropoff = volume_decrease_per_decisecond /datum/song/proc/set_volume(volume) - src.volume = CLAMP(volume, max(0, min_volume), min(100, max_volume)) + src.volume = clamp(volume, max(0, min_volume), min(100, max_volume)) update_sustain() updateDialog() /datum/song/proc/set_dropoff_volume(volume) - sustain_dropoff_volume = CLAMP(volume, INSTRUMENT_MIN_SUSTAIN_DROPOFF, 100) + sustain_dropoff_volume = clamp(volume, INSTRUMENT_MIN_SUSTAIN_DROPOFF, 100) update_sustain() updateDialog() /datum/song/proc/set_exponential_drop_rate(drop) - sustain_exponential_dropoff = CLAMP(drop, INSTRUMENT_EXP_FALLOFF_MIN, INSTRUMENT_EXP_FALLOFF_MAX) + sustain_exponential_dropoff = clamp(drop, INSTRUMENT_EXP_FALLOFF_MIN, INSTRUMENT_EXP_FALLOFF_MAX) update_sustain() updateDialog() /datum/song/proc/set_linear_falloff_duration(duration) - sustain_linear_duration = CLAMP(duration, 0.1, INSTRUMENT_MAX_TOTAL_SUSTAIN) + sustain_linear_duration = clamp(duration, 0.1, INSTRUMENT_MAX_TOTAL_SUSTAIN) update_sustain() updateDialog() @@ -277,8 +279,10 @@ // subtype for handheld instruments, like violin /datum/song/handheld -/datum/song/handheld/updateDialog(mob/user) - parent.ui_interact(user || usr) +/datum/song/handheld/updateDialog(mob/user = usr) + if(user.machine != src) + return + parent.ui_interact(user) /datum/song/handheld/should_stop_playing(mob/user) . = ..() @@ -290,8 +294,10 @@ // subtype for stationary structures, like pianos /datum/song/stationary -/datum/song/stationary/updateDialog(mob/user) - parent.ui_interact(user || usr) +/datum/song/stationary/updateDialog(mob/user = usr) + if(user.machine != src) + return + parent.ui_interact(user) /datum/song/stationary/should_stop_playing(mob/user) . = ..() diff --git a/code/modules/instruments/songs/editor.dm b/code/modules/instruments/songs/editor.dm index 873ff0e1a7..d9595797d7 100644 --- a/code/modules/instruments/songs/editor.dm +++ b/code/modules/instruments/songs/editor.dm @@ -230,7 +230,7 @@ else if(href_list["setnoteshift"]) var/amount = input(usr, "Set note shift", "Note Shift") as null|num if(!isnull(amount)) - note_shift = CLAMP(amount, note_shift_min, note_shift_max) + note_shift = clamp(amount, note_shift_min, note_shift_max) else if(href_list["setsustainmode"]) var/choice = input(usr, "Choose a sustain mode", "Sustain Mode") as null|anything in list("Linear", "Exponential") diff --git a/code/modules/instruments/songs/play_synthesized.dm b/code/modules/instruments/songs/play_synthesized.dm index 2573da324a..5e7c5652a0 100644 --- a/code/modules/instruments/songs/play_synthesized.dm +++ b/code/modules/instruments/songs/play_synthesized.dm @@ -52,8 +52,8 @@ if(!num) //it's an accidental accents[key] = oct_acc //if they misspelled it/fucked up that's on them lmao, no safety checks. else //octave - octaves[key] = CLAMP(num, octave_min, octave_max) - compiled_chord += CLAMP((note_offset_lookup[key] + octaves[key] * 12 + accent_lookup[accents[key]]), key_min, key_max) + octaves[key] = clamp(num, octave_min, octave_max) + compiled_chord += clamp((note_offset_lookup[key] + octaves[key] * 12 + accent_lookup[accents[key]]), key_min, key_max) compiled_chord += tempodiv //this goes last if(length(compiled_chord)) compiled_chords[++compiled_chords.len] = compiled_chord diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index e144e4dbe6..ef63ba97f8 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -79,7 +79,9 @@ for(var/I in assembly_components) var/obj/item/integrated_circuit/IC = I - . += IC.external_examine(user) + var/text = IC.external_examine(user) + if(text) + . += text if(opened) interact(user) diff --git a/code/modules/integrated_electronics/core/integrated_circuit.dm b/code/modules/integrated_electronics/core/integrated_circuit.dm index 0709b179d2..f90b584d76 100644 --- a/code/modules/integrated_electronics/core/integrated_circuit.dm +++ b/code/modules/integrated_electronics/core/integrated_circuit.dm @@ -36,7 +36,9 @@ a creative player the means to solve many problems. Circuits are held inside an /obj/item/integrated_circuit/examine(mob/user) interact(user) . = ..() - . += external_examine(user) + var/text = external_examine(user) + if(text) + . += text // Can be called via electronic_assembly/attackby() /obj/item/integrated_circuit/proc/additem(var/obj/item/I, var/mob/living/user) @@ -57,7 +59,7 @@ a creative player the means to solve many problems. Circuits are held inside an var/datum/integrated_io/activate/A = activators[k] if(A.linked.len) to_chat(user, "The '[A]' is connected to [A.get_linked_to_desc()].") - any_examine(user) + to_chat(user, any_examine(user)) interact(user) // This should be used when someone is examining from an 'outside' perspective, e.g. reading a screen or LED. diff --git a/code/modules/integrated_electronics/core/special_pins/index_pin.dm b/code/modules/integrated_electronics/core/special_pins/index_pin.dm index 06267eec61..e904c4c6d0 100644 --- a/code/modules/integrated_electronics/core/special_pins/index_pin.dm +++ b/code/modules/integrated_electronics/core/special_pins/index_pin.dm @@ -14,7 +14,7 @@ new_data = 0 if(isnum(new_data)) - data = CLAMP(round(new_data), 0, IC_MAX_LIST_LENGTH) + data = clamp(round(new_data), 0, IC_MAX_LIST_LENGTH) holder.on_data_written() /datum/integrated_io/index/display_pin_type() diff --git a/code/modules/integrated_electronics/subtypes/atmospherics.dm b/code/modules/integrated_electronics/subtypes/atmospherics.dm index 6b4f46f83d..219e30c57f 100644 --- a/code/modules/integrated_electronics/subtypes/atmospherics.dm +++ b/code/modules/integrated_electronics/subtypes/atmospherics.dm @@ -308,7 +308,7 @@ obj/item/integrated_circuit/atmospherics/connector/portableConnectorReturnAir() /obj/item/integrated_circuit/atmospherics/pump/filter/on_data_written() var/amt = get_pin_data(IC_INPUT, 5) - target_pressure = CLAMP(amt, 0, PUMP_MAX_PRESSURE) + target_pressure = clamp(amt, 0, PUMP_MAX_PRESSURE) /obj/item/integrated_circuit/atmospherics/pump/filter/do_work() activate_pin(2) diff --git a/code/modules/integrated_electronics/subtypes/data_transfer.dm b/code/modules/integrated_electronics/subtypes/data_transfer.dm index 8e1c715d83..8db1db4e00 100644 --- a/code/modules/integrated_electronics/subtypes/data_transfer.dm +++ b/code/modules/integrated_electronics/subtypes/data_transfer.dm @@ -125,7 +125,7 @@ /obj/item/integrated_circuit/transfer/pulsedemultiplexer/do_work() var/output_index = get_pin_data(IC_INPUT, 1) - if(output_index == CLAMP(output_index, 1, number_of_pins)) + if(output_index == clamp(output_index, 1, number_of_pins)) activate_pin(round(output_index + 1 ,1)) /obj/item/integrated_circuit/transfer/pulsedemultiplexer/medium diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm index 0be6fd8686..a0608bb5ed 100644 --- a/code/modules/integrated_electronics/subtypes/input.dm +++ b/code/modules/integrated_electronics/subtypes/input.dm @@ -389,8 +389,8 @@ activate_pin(3) return var/turf/T = get_turf(assembly) - var/target_x = CLAMP(get_pin_data(IC_INPUT, 1), 0, world.maxx) - var/target_y = CLAMP(get_pin_data(IC_INPUT, 2), 0, world.maxy) + var/target_x = clamp(get_pin_data(IC_INPUT, 1), 0, world.maxx) + var/target_y = clamp(get_pin_data(IC_INPUT, 2), 0, world.maxy) var/turf/A = locate(target_x, target_y, T.z) set_pin_data(IC_OUTPUT, 1, null) if(!A || !(A in view(T))) @@ -532,7 +532,7 @@ var/rad = get_pin_data(IC_INPUT, 2) if(isnum(rad)) - rad = CLAMP(rad, 0, 8) + rad = clamp(rad, 0, 8) radius = rad /obj/item/integrated_circuit/input/advanced_locator_list/do_work() @@ -594,7 +594,7 @@ /obj/item/integrated_circuit/input/advanced_locator/on_data_written() var/rad = get_pin_data(IC_INPUT, 2) if(isnum(rad)) - rad = CLAMP(rad, 0, 8) + rad = clamp(rad, 0, 8) radius = rad /obj/item/integrated_circuit/input/advanced_locator/do_work() @@ -865,7 +865,7 @@ var/translated = FALSE if(speaker && message) if(raw_message) - if(message_langs != get_default_language()) + if(message_langs != get_selected_language()) translated = TRUE set_pin_data(IC_OUTPUT, 1, speaker.GetVoice()) set_pin_data(IC_OUTPUT, 2, raw_message) diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm index d1cd852651..fd4e6abfc5 100644 --- a/code/modules/integrated_electronics/subtypes/manipulation.dm +++ b/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -236,7 +236,7 @@ var/mode = get_pin_data(IC_INPUT, 2) switch(ord) if(1) - mode = CLAMP(mode, GRAB_PASSIVE, max_grab) + mode = clamp(mode, GRAB_PASSIVE, max_grab) if(AM) if(check_target(AM, exclude_contents = TRUE)) acting_object.investigate_log("grabbed ([AM]) using [src].", INVESTIGATE_CIRCUIT) @@ -329,9 +329,9 @@ // If the item is in a grabber circuit we'll update the grabber's outputs after we've thrown it. var/obj/item/integrated_circuit/manipulation/grabber/G = A.loc - var/x_abs = CLAMP(T.x + target_x_rel, 0, world.maxx) - var/y_abs = CLAMP(T.y + target_y_rel, 0, world.maxy) - var/range = round(CLAMP(sqrt(target_x_rel*target_x_rel+target_y_rel*target_y_rel),0,8),1) + var/x_abs = clamp(T.x + target_x_rel, 0, world.maxx) + var/y_abs = clamp(T.y + target_y_rel, 0, world.maxy) + var/range = round(clamp(sqrt(target_x_rel*target_x_rel+target_y_rel*target_y_rel),0,8),1) //remove damage A.throwforce = 0 A.embedding = list("embed_chance" = 0) @@ -447,7 +447,7 @@ if(!S) activate_pin(4) return - if(materials.insert_item(S, CLAMP(get_pin_data(IC_INPUT, 2),0,100), multiplier = 1) ) + if(materials.insert_item(S, clamp(get_pin_data(IC_INPUT, 2),0,100), multiplier = 1) ) AfterMaterialInsert() activate_pin(3) else @@ -458,7 +458,7 @@ for(var/I in 1 to mtypes.len) var/datum/material/M = materials.materials[mtypes[I]] if(M) - var/U = CLAMP(get_pin_data(IC_INPUT, I+2),-100000,100000) + var/U = clamp(get_pin_data(IC_INPUT, I+2),-100000,100000) if(!U) continue if(!mt) //Invalid input diff --git a/code/modules/integrated_electronics/subtypes/output.dm b/code/modules/integrated_electronics/subtypes/output.dm index 6005709dde..47b6e151cb 100644 --- a/code/modules/integrated_electronics/subtypes/output.dm +++ b/code/modules/integrated_electronics/subtypes/output.dm @@ -112,7 +112,7 @@ var/brightness = get_pin_data(IC_INPUT, 2) if(new_color && isnum(brightness)) - brightness = CLAMP(brightness, 0, 10) + brightness = clamp(brightness, 0, 10) light_rgb = new_color light_brightness = brightness @@ -151,7 +151,7 @@ var/selected_sound = sounds[ID] if(!selected_sound) return - vol = CLAMP(vol ,0 , 100) + vol = clamp(vol ,0 , 100) playsound(get_turf(src), selected_sound, vol, freq, -1) var/atom/A = get_object() A.investigate_log("played a sound ([selected_sound]) as [type].", INVESTIGATE_CIRCUIT) diff --git a/code/modules/integrated_electronics/subtypes/reagents.dm b/code/modules/integrated_electronics/subtypes/reagents.dm index 0fc9f58db8..663ba9fe16 100644 --- a/code/modules/integrated_electronics/subtypes/reagents.dm +++ b/code/modules/integrated_electronics/subtypes/reagents.dm @@ -94,7 +94,7 @@ else direction_mode = SYRINGE_INJECT if(isnum(new_amount)) - new_amount = CLAMP(new_amount, 0, volume) + new_amount = clamp(new_amount, 0, volume) transfer_amount = new_amount @@ -222,7 +222,7 @@ else direction_mode = SYRINGE_INJECT if(isnum(new_amount)) - new_amount = CLAMP(new_amount, 0, 50) + new_amount = clamp(new_amount, 0, 50) transfer_amount = new_amount /obj/item/integrated_circuit/reagent/pump/do_work() @@ -468,7 +468,7 @@ else direction_mode = SYRINGE_INJECT if(isnum(new_amount)) - new_amount = CLAMP(new_amount, 0, 50) + new_amount = clamp(new_amount, 0, 50) transfer_amount = new_amount /obj/item/integrated_circuit/reagent/filter/do_work() diff --git a/code/modules/integrated_electronics/subtypes/smart.dm b/code/modules/integrated_electronics/subtypes/smart.dm index d0c47f0950..5dc866c556 100644 --- a/code/modules/integrated_electronics/subtypes/smart.dm +++ b/code/modules/integrated_electronics/subtypes/smart.dm @@ -57,8 +57,8 @@ activate_pin(3) return var/turf/T = get_turf(assembly) - var/target_x = CLAMP(get_pin_data(IC_INPUT, 1), 0, world.maxx) - var/target_y = CLAMP(get_pin_data(IC_INPUT, 2), 0, world.maxy) + var/target_x = clamp(get_pin_data(IC_INPUT, 1), 0, world.maxx) + var/target_y = clamp(get_pin_data(IC_INPUT, 2), 0, world.maxy) var/turf/A = locate(target_x, target_y, T.z) set_pin_data(IC_OUTPUT, 1, null) if(!A||A==T) diff --git a/code/modules/integrated_electronics/subtypes/time.dm b/code/modules/integrated_electronics/subtypes/time.dm index 1f1d5444bb..cae43718c2 100644 --- a/code/modules/integrated_electronics/subtypes/time.dm +++ b/code/modules/integrated_electronics/subtypes/time.dm @@ -64,7 +64,7 @@ /obj/item/integrated_circuit/time/delay/custom/do_work() var/delay_input = get_pin_data(IC_INPUT, 1) if(delay_input && isnum(delay_input) ) - var/new_delay = CLAMP(delay_input ,1 ,36000) //An hour. + var/new_delay = clamp(delay_input ,1 ,36000) //An hour. delay = new_delay ..() @@ -119,7 +119,7 @@ /obj/item/integrated_circuit/time/ticker/custom/on_data_written() var/delay_input = get_pin_data(IC_INPUT, 2) if(delay_input && isnum(delay_input) ) - var/new_delay = CLAMP(delay_input ,1 ,1 HOURS) + var/new_delay = clamp(delay_input ,1 ,1 HOURS) delay = new_delay ..() diff --git a/code/modules/integrated_electronics/subtypes/trig.dm b/code/modules/integrated_electronics/subtypes/trig.dm index cefa25e945..75580911c3 100644 --- a/code/modules/integrated_electronics/subtypes/trig.dm +++ b/code/modules/integrated_electronics/subtypes/trig.dm @@ -71,7 +71,7 @@ var/result = null var/A = get_pin_data(IC_INPUT, 1) if(!isnull(A)) - result = TAN(A) + result = tan(A) set_pin_data(IC_OUTPUT, 1, result) push_data() diff --git a/code/modules/integrated_electronics/subtypes/weaponized.dm b/code/modules/integrated_electronics/subtypes/weaponized.dm index 02340970af..2f6a2cd841 100644 --- a/code/modules/integrated_electronics/subtypes/weaponized.dm +++ b/code/modules/integrated_electronics/subtypes/weaponized.dm @@ -102,8 +102,8 @@ yo.data = round(yo.data, 1) var/turf/T = get_turf(assembly) - var/target_x = CLAMP(T.x + xo.data, 0, world.maxx) - var/target_y = CLAMP(T.y + yo.data, 0, world.maxy) + var/target_x = clamp(T.x + xo.data, 0, world.maxx) + var/target_y = clamp(T.y + yo.data, 0, world.maxy) assembly.visible_message("[assembly] fires [installed_gun]!") shootAt(locate(target_x, target_y, T.z)) @@ -191,7 +191,7 @@ var/datum/integrated_io/detonation_time = inputs[1] var/dt if(isnum(detonation_time.data) && detonation_time.data > 0) - dt = CLAMP(detonation_time.data, 1, 12)*10 + dt = clamp(detonation_time.data, 1, 12)*10 else dt = 15 addtimer(CALLBACK(attached_grenade, /obj/item/grenade.proc/prime), dt) @@ -293,9 +293,9 @@ // If the item is in a grabber circuit we'll update the grabber's outputs after we've thrown it. var/obj/item/integrated_circuit/manipulation/grabber/G = A.loc - var/x_abs = CLAMP(T.x + target_x_rel, 0, world.maxx) - var/y_abs = CLAMP(T.y + target_y_rel, 0, world.maxy) - var/range = round(CLAMP(sqrt(target_x_rel*target_x_rel+target_y_rel*target_y_rel),0,8),1) + var/x_abs = clamp(T.x + target_x_rel, 0, world.maxx) + var/y_abs = clamp(T.y + target_y_rel, 0, world.maxy) + var/range = round(clamp(sqrt(target_x_rel*target_x_rel+target_y_rel*target_y_rel),0,8),1) assembly.visible_message("\The [assembly] has thrown [A]!") log_attack("[assembly] [REF(assembly)] has thrown [A] with lethal force.") A.forceMove(drop_location()) @@ -324,7 +324,7 @@ /obj/item/integrated_circuit/weaponized/stun/do_work() - var/stunforce = CLAMP(get_pin_data(IC_INPUT, 1),1,70) + var/stunforce = clamp(get_pin_data(IC_INPUT, 1),1,70) var/mob/living/L = assembly.loc if(attempt_stun(L,stunforce)) activate_pin(2) diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index ee441c21f7..e10f009cec 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -66,6 +66,11 @@ // How much threat this job is worth in dynamic. Is subtracted if the player's not an antag, added if they are. var/threat = 0 + /// Starting skill levels. + var/list/starting_skills + /// Skill affinities to set + var/list/skill_affinities + //Only override this proc //H is usually a human unless an /equip override transformed it /datum/job/proc/after_spawn(mob/living/H, mob/M, latejoin = FALSE) @@ -142,7 +147,6 @@ return TRUE //Available in 0 days = available right now = player is old enough to play. return FALSE - /datum/job/proc/available_in_days(client/C) if(!C) return 0 @@ -166,6 +170,17 @@ /datum/job/proc/radio_help_message(mob/M) to_chat(M, "Prefix your message with :h to speak on your department's radio. To see other prefixes, look closely at your headset.") +/datum/job/proc/standard_assign_skills(datum/mind/M) + if(!starting_skills) + return + for(var/skill in starting_skills) + M.skill_holder.boost_skill_value_to(skill, starting_skills[skill], TRUE) //silent + // do wipe affinities though + M.skill_holder.skill_affinities = list() + for(var/skill in skill_affinities) + M.skill_holder.skill_affinities[skill] = skill_affinities[skill] + UNSETEMPTY(M.skill_holder.skill_affinities) //if we didn't set any. + /datum/outfit/job name = "Standard Gear" diff --git a/code/modules/jobs/job_types/ai.dm b/code/modules/jobs/job_types/ai.dm index efe574ab66..1395b90b39 100644 --- a/code/modules/jobs/job_types/ai.dm +++ b/code/modules/jobs/job_types/ai.dm @@ -17,6 +17,8 @@ var/do_special_check = TRUE threat = 5 + starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_BASIC)) + /datum/job/ai/equip(mob/living/carbon/human/H, visualsOnly, announce, latejoin, datum/outfit/outfit_override, client/preference_source = null) if(visualsOnly) CRASH("dynamic preview is unsupported") diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm index 019e50799e..42c6afaed8 100644 --- a/code/modules/jobs/job_types/atmospheric_technician.dm +++ b/code/modules/jobs/job_types/atmospheric_technician.dm @@ -5,7 +5,7 @@ department_flag = ENGSEC faction = "Station" total_positions = 3 - spawn_positions = 2 + spawn_positions = 3 supervisors = "the chief engineer" selection_color = "#ff9b3d" exp_requirements = 60 @@ -17,6 +17,10 @@ ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_EMERGENCY_STORAGE, ACCESS_CONSTRUCTION, ACCESS_MINERAL_STOREROOM) + + starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_BASIC)) + skill_affinities = list(/datum/skill/level/job/wiring = STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO) + display_order = JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN threat = 0.5 diff --git a/code/modules/jobs/job_types/chemist.dm b/code/modules/jobs/job_types/chemist.dm index 44b0e90ec8..571785526b 100644 --- a/code/modules/jobs/job_types/chemist.dm +++ b/code/modules/jobs/job_types/chemist.dm @@ -19,6 +19,9 @@ display_order = JOB_DISPLAY_ORDER_CHEMIST threat = 1.5 + starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) + skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL) + /datum/outfit/job/chemist name = "Chemist" jobtype = /datum/job/chemist diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm index 0d70e872ac..bd4732f3c3 100644 --- a/code/modules/jobs/job_types/chief_engineer.dm +++ b/code/modules/jobs/job_types/chief_engineer.dm @@ -27,6 +27,9 @@ ACCESS_HEADS, ACCESS_CONSTRUCTION, ACCESS_SEC_DOORS, ACCESS_MINISAT, ACCESS_CE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM) + starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_TRAINED)) + skill_affinities = list(/datum/skill/level/job/wiring = STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO) + display_order = JOB_DISPLAY_ORDER_CHIEF_ENGINEER blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/paraplegic, /datum/quirk/insanity) threat = 2 diff --git a/code/modules/jobs/job_types/chief_medical_officer.dm b/code/modules/jobs/job_types/chief_medical_officer.dm index 8dd7fafab3..478c33551d 100644 --- a/code/modules/jobs/job_types/chief_medical_officer.dm +++ b/code/modules/jobs/job_types/chief_medical_officer.dm @@ -29,6 +29,9 @@ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity) threat = 2 + starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) + skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL) + /datum/outfit/job/cmo name = "Chief Medical Officer" jobtype = /datum/job/cmo diff --git a/code/modules/jobs/job_types/curator.dm b/code/modules/jobs/job_types/curator.dm index d73d909f4f..440675c73c 100644 --- a/code/modules/jobs/job_types/curator.dm +++ b/code/modules/jobs/job_types/curator.dm @@ -41,4 +41,4 @@ if(visualsOnly) return - H.grant_all_languages(omnitongue=TRUE) + H.grant_all_languages(TRUE, TRUE, TRUE, LANGUAGE_CURATOR) diff --git a/code/modules/jobs/job_types/cyborg.dm b/code/modules/jobs/job_types/cyborg.dm index f84bd0d8d6..d88d888aec 100644 --- a/code/modules/jobs/job_types/cyborg.dm +++ b/code/modules/jobs/job_types/cyborg.dm @@ -12,6 +12,8 @@ exp_requirements = 120 exp_type = EXP_TYPE_CREW + starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_BASIC)) + display_order = JOB_DISPLAY_ORDER_CYBORG /datum/job/cyborg/equip(mob/living/carbon/human/H, visualsOnly = FALSE, announce = TRUE, latejoin = FALSE, datum/outfit/outfit_override = null, client/preference_source = null) diff --git a/code/modules/jobs/job_types/geneticist.dm b/code/modules/jobs/job_types/geneticist.dm index 2e8b18d772..4fb989f6e8 100644 --- a/code/modules/jobs/job_types/geneticist.dm +++ b/code/modules/jobs/job_types/geneticist.dm @@ -19,6 +19,8 @@ display_order = JOB_DISPLAY_ORDER_GENETICIST threat = 1.5 + starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) + /datum/outfit/job/geneticist name = "Geneticist" jobtype = /datum/job/geneticist diff --git a/code/modules/jobs/job_types/medical_doctor.dm b/code/modules/jobs/job_types/medical_doctor.dm index 3eaa2ae10a..0e8b2e645b 100644 --- a/code/modules/jobs/job_types/medical_doctor.dm +++ b/code/modules/jobs/job_types/medical_doctor.dm @@ -17,6 +17,9 @@ display_order = JOB_DISPLAY_ORDER_MEDICAL_DOCTOR threat = 0.5 + starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) + skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL) + /datum/outfit/job/doctor name = "Medical Doctor" jobtype = /datum/job/doctor diff --git a/code/modules/jobs/job_types/paramedic.dm b/code/modules/jobs/job_types/paramedic.dm index df6e1431ae..e8098daddc 100644 --- a/code/modules/jobs/job_types/paramedic.dm +++ b/code/modules/jobs/job_types/paramedic.dm @@ -19,6 +19,9 @@ threat = 0.5 + starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) + skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL) + /datum/outfit/job/paramedic name = "Paramedic" jobtype = /datum/job/paramedic diff --git a/code/modules/jobs/job_types/roboticist.dm b/code/modules/jobs/job_types/roboticist.dm index f9f1d20d3b..d9e891f057 100644 --- a/code/modules/jobs/job_types/roboticist.dm +++ b/code/modules/jobs/job_types/roboticist.dm @@ -16,6 +16,10 @@ access = list(ACCESS_ROBOTICS, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_TECH_STORAGE, ACCESS_MORGUE, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM, ACCESS_XENOBIOLOGY, ACCESS_GENETICS) minimal_access = list(ACCESS_ROBOTICS, ACCESS_TECH_STORAGE, ACCESS_MORGUE, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM) + starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_TRAINED)) + skill_affinities = list(/datum/skill/level/job/wiring = STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO) + + display_order = JOB_DISPLAY_ORDER_ROBOTICIST threat = 1 diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm index 66ddc90e9b..c5280d72db 100644 --- a/code/modules/jobs/job_types/station_engineer.dm +++ b/code/modules/jobs/job_types/station_engineer.dm @@ -18,6 +18,9 @@ minimal_access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM) + starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_TRAINED)) + skill_affinities = list(/datum/skill/level/job/wiring = STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO) + display_order = JOB_DISPLAY_ORDER_STATION_ENGINEER threat = 1 diff --git a/code/modules/jobs/job_types/virologist.dm b/code/modules/jobs/job_types/virologist.dm index 4ba65dff59..78f0ba4272 100644 --- a/code/modules/jobs/job_types/virologist.dm +++ b/code/modules/jobs/job_types/virologist.dm @@ -20,6 +20,9 @@ threat = 1.5 + starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) + skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL) + /datum/outfit/job/virologist name = "Virologist" jobtype = /datum/job/virologist diff --git a/code/modules/language/codespeak.dm b/code/modules/language/codespeak.dm index be325d14b0..5d658b1fce 100644 --- a/code/modules/language/codespeak.dm +++ b/code/modules/language/codespeak.dm @@ -46,7 +46,7 @@ return to_chat(user, "You start skimming through [src], and suddenly your mind is filled with codewords and responses.") - user.grant_language(/datum/language/codespeak) + user.grant_language(/datum/language/codespeak, TRUE, TRUE, LANGUAGE_MIND) use_charge(user) @@ -65,7 +65,7 @@ M.visible_message("[user] beats [M] over the head with [src]!", "[user] beats you over the head with [src]!", "You hear smacking.") else M.visible_message("[user] teaches [M] by beating [M.p_them()] over the head with [src]!", "As [user] hits you with [src], codewords and responses flow through your mind.", "You hear smacking.") - M.grant_language(/datum/language/codespeak) + M.grant_language(/datum/language/codespeak, TRUE, TRUE, LANGUAGE_MIND) use_charge(user) /obj/item/codespeak_manual/proc/use_charge(mob/user) diff --git a/code/modules/language/language_holder.dm b/code/modules/language/language_holder.dm index b307e66b39..6e3d27f2b8 100644 --- a/code/modules/language/language_holder.dm +++ b/code/modules/language/language_holder.dm @@ -1,149 +1,332 @@ -/datum/language_holder - var/list/languages = list(/datum/language/common) - var/list/shadow_languages = list() - var/only_speaks_language = null - var/selected_default_language = null - var/datum/language_menu/language_menu +/*!Language holders will either exist in an atom/movable or a mind. Creation of language holders happens +automatically when they are needed, for example when something tries to speak. +Where a mind is available, the mind language holder will be the one "in charge". The mind holder +will update its languages based on the atom holder, and will get updated as part of +transformations and other events that cause new languages to become available. +Every language holder has three lists of languages (and sources for each of them): +- understood_languages +- spoken_languages +- blocked_languages +Understood languages let you understand them, spoken languages lets you speak them +(if your tongue is compatible), and blocked languages will let you do neither no matter +what the source of the language is. +Language holders are designed to mostly only ever require the use the helpers in atom/movable +to achieve your goals, but it is also possible to work on them directly if needed. Any adding +and removing of languages and sources should only happen through the procs, as directly changing +these will mess something up somewhere down the line. +All atom movables have the initial_language_holder var which allows you to set the default language +holder to create. For example, /datum/language_holder/alien will give you xenocommon and a block for +galactic common. Human species also have a default language holder var that will be updated on +species change, initial_species_holder. +Key procs +* [grant_language](atom/movable.html#proc/grant_language) +* [remove_language](atom/movable.html#proc/remove_language) +* [add_blocked_language](atom/movable.html#proc/add_blocked_language) +* [remove_blocked_language](atom/movable.html#proc/remove_blocked_language) +* [grant_all_languages](atom/movable.html#proc/grant_all_languages) +* [remove_all_languages](atom/movable.html#proc/remove_all_languages) +* [has_language](atom/movable.html#proc/has_language) +* [can_speak_language](atom/movable.html#proc/can_speak_language) +* [get_selected_language](atom/movable.html#proc/get_selected_language) +* [update_atom_languages](atom/movable.html#proc/update_atom_languages) +*/ +/datum/language_holder + /// Understood languages. + var/list/understood_languages = list(/datum/language/common = list(LANGUAGE_MIND)) + /// A list of languages that can be spoken. Tongue organ may also set limits beyond this list. + var/list/spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM)) + /// A list of blocked languages. Used to prevent understanding and speaking certain languages, ie for certain mobs, mutations etc. + var/list/blocked_languages = list() + /// If true, overrides tongue limitations. var/omnitongue = FALSE + /// Handles displaying the language menu UI. + var/datum/language_menu/language_menu + /// Currently spoken language + var/selected_language + /// Tracks the entity that owns the holder. var/owner -/datum/language_holder/New(owner) - src.owner = owner - - languages = typecacheof(languages) - shadow_languages = typecacheof(shadow_languages) - -/datum/language_holder/Destroy() - owner = null - QDEL_NULL(language_menu) - languages.Cut() - shadow_languages.Cut() - return ..() - -/datum/language_holder/proc/copy(newowner) - var/datum/language_holder/copy = new(newowner) - copy.languages = src.languages.Copy() - // shadow languages are not copied. - copy.only_speaks_language = src.only_speaks_language - copy.selected_default_language = src.selected_default_language - // language menu is not copied, that's tied to the holder. - copy.omnitongue = src.omnitongue - return copy - -/datum/language_holder/proc/grant_language(datum/language/dt, shadow = FALSE) - if(shadow) - shadow_languages[dt] = TRUE - else - languages[dt] = TRUE - -/datum/language_holder/proc/grant_all_languages(omnitongue=FALSE) - for(var/la in GLOB.all_languages) - grant_language(la) - - if(omnitongue) - src.omnitongue = TRUE - -/datum/language_holder/proc/get_random_understood_language() - var/list/possible = list() - for(var/dt in languages) - possible += dt - . = safepick(possible) - -/datum/language_holder/proc/remove_language(datum/language/dt, shadow = FALSE) - if(shadow) - shadow_languages -= dt - else - languages -= dt - -/datum/language_holder/proc/remove_all_languages() - languages.Cut() - -/datum/language_holder/proc/has_language(datum/language/dt) - if(is_type_in_typecache(dt, languages)) - return LANGUAGE_KNOWN - else - var/atom/movable/AM = get_atom() - var/datum/language_holder/L = AM.get_language_holder(shadow=FALSE) - if(L != src) - if(is_type_in_typecache(dt, L.shadow_languages)) - return LANGUAGE_SHADOWED - return FALSE - -/datum/language_holder/proc/copy_known_languages_from(thing, replace=FALSE) - var/datum/language_holder/other - if(istype(thing, /datum/language_holder)) - other = thing - else if(ismovableatom(thing)) - var/atom/movable/AM = thing - other = AM.get_language_holder() - else if(istype(thing, /datum/mind)) - var/datum/mind/M = thing - other = M.get_language_holder() - - if(replace) - src.remove_all_languages() - - for(var/l in other.languages) - src.grant_language(l) - - -/datum/language_holder/proc/open_language_menu(mob/user) - if(!language_menu) - language_menu = new(src) - language_menu.ui_interact(user) - -/datum/language_holder/proc/get_atom() - if(ismovableatom(owner)) - . = owner - else if(istype(owner, /datum/mind)) +/// Initializes, and copies in the languages from the current atom if available. +/datum/language_holder/New(_owner) + owner = _owner + if(istype(owner, /datum/mind)) var/datum/mind/M = owner if(M.current) - . = M.current + update_atom_languages(M.current) + get_selected_language() + +/datum/language_holder/Destroy() + QDEL_NULL(language_menu) + return ..() + +/// Grants the supplied language. +/datum/language_holder/proc/grant_language(language, understood = TRUE, spoken = TRUE, source = LANGUAGE_MIND) + if(understood) + if(!understood_languages[language]) + understood_languages[language] = list() + understood_languages[language] |= source + . = TRUE + if(spoken) + if(!spoken_languages[language]) + spoken_languages[language] = list() + spoken_languages[language] |= source + . = TRUE + +/// Grants every language to understood and spoken, and gives omnitongue. +/datum/language_holder/proc/grant_all_languages(understood = TRUE, spoken = TRUE, grant_omnitongue = TRUE, source = LANGUAGE_MIND) + for(var/language in GLOB.all_languages) + grant_language(language, understood, spoken, source) + if(grant_omnitongue) // Overrides tongue limitations. + omnitongue = TRUE + return TRUE + +/// Removes a single language or source, removing all sources returns the pre-removal state of the language. +/datum/language_holder/proc/remove_language(language, understood = TRUE, spoken = TRUE, source = LANGUAGE_ALL) + if(understood && understood_languages[language]) + if(source == LANGUAGE_ALL) + understood_languages -= language + else + understood_languages[language] -= source + if(!length(understood_languages[language])) + understood_languages -= language + . = TRUE + + if(spoken && spoken_languages[language]) + if(source == LANGUAGE_ALL) + spoken_languages -= language + else + spoken_languages[language] -= source + if(!length(spoken_languages[language])) + spoken_languages -= language + . = TRUE + +/// Removes every language and optionally sets omnitongue false. If a non default source is supplied, only removes that source. +/datum/language_holder/proc/remove_all_languages(source = LANGUAGE_ALL, remove_omnitongue = FALSE) + for(var/language in GLOB.all_languages) + remove_language(language, TRUE, TRUE, source) + if(remove_omnitongue) + omnitongue = FALSE + return TRUE + +/// Adds a single language or list of languages to the blocked language list. +/datum/language_holder/proc/add_blocked_language(languages, source = LANGUAGE_MIND) + if(!islist(languages)) + languages = list(languages) + for(var/language in languages) + if(!blocked_languages[language]) + blocked_languages[language] = list() + blocked_languages[language] |= source + return TRUE + +/// Removes a single language or list of languages from the blocked language list. +/datum/language_holder/proc/remove_blocked_language(languages, source = LANGUAGE_MIND) + if(!islist(languages)) + languages = list(languages) + for(var/language in languages) + if(blocked_languages[language]) + if(source == LANGUAGE_ALL) + blocked_languages -= language + else + blocked_languages[language] -= source + if(!length(blocked_languages[language])) + blocked_languages -= language + return TRUE + +/// Checks if you have the language. If spoken is true, only checks if you can speak the language. +/datum/language_holder/proc/has_language(language, spoken = FALSE) + if(language in blocked_languages) + return FALSE + if(spoken) + return language in spoken_languages + return language in understood_languages + +/// Checks if you can speak the language. Tongue limitations should be supplied as an argument. +/datum/language_holder/proc/can_speak_language(language) + var/atom/movable/ouratom = get_atom() + var/tongue = ouratom.could_speak_language(language) + if((omnitongue || tongue) && has_language(language, TRUE)) + return TRUE + return FALSE + +/// Returns selected language if it can be spoken, or decides, sets and returns a new selected language if possible. +/datum/language_holder/proc/get_selected_language() + if(selected_language && can_speak_language(selected_language)) + return selected_language + selected_language = null + var/highest_priority + for(var/lang in spoken_languages) + var/datum/language/language = lang + var/priority = initial(language.default_priority) + if((!highest_priority || (priority > highest_priority)) && !(language in blocked_languages)) + if(can_speak_language(language)) + selected_language = language + highest_priority = priority + return selected_language + +/// Gets a random understood language, useful for hallucinations and such. +/datum/language_holder/proc/get_random_understood_language() + return pick(understood_languages) + +/// Gets a random spoken language, useful for forced speech and such. +/datum/language_holder/proc/get_random_spoken_language() + return pick(spoken_languages) + +/// Opens a language menu reading from the language holder. +/datum/language_holder/proc/open_language_menu(mob/user) + if(!language_menu) + language_menu = new (src) + language_menu.ui_interact(user) + +/// Gets the atom, since we some times need to check if the tongue has limitations. +/datum/language_holder/proc/get_atom() + if(owner) + if(istype(owner, /datum/mind)) + var/datum/mind/M = owner + return M.current + return owner + return FALSE + +/// Empties out the atom specific languages and updates them according to the supplied atoms language holder. +/datum/language_holder/proc/update_atom_languages(atom/movable/thing) + var/datum/language_holder/from_atom = thing.get_language_holder(FALSE) //Gets the atoms language holder + if(from_atom == src) //This could happen if called on an atom without a mind. + return FALSE + for(var/language in understood_languages) + remove_language(language, TRUE, FALSE, LANGUAGE_ATOM) + for(var/language in spoken_languages) + remove_language(language, FALSE, TRUE, LANGUAGE_ATOM) + for(var/language in blocked_languages) + remove_blocked_language(language, LANGUAGE_ATOM) + + copy_languages(from_atom) + get_selected_language() + return TRUE + +/// Copies all languages from the supplied atom/language holder. Source should be overridden when you +/// do not want the language overwritten by later atom updates or want to avoid blocked languages. +/datum/language_holder/proc/copy_languages(var/datum/language_holder/from_holder, source_override) + if(source_override) //No blocked languages here, for now only used by ling absorb. + for(var/language in from_holder.understood_languages) + grant_language(language, TRUE, FALSE, source_override) + for(var/language in from_holder.spoken_languages) + grant_language(language, FALSE, TRUE, source_override) + else + for(var/language in from_holder.understood_languages) + grant_language(language, TRUE, FALSE, from_holder.understood_languages[language]) + for(var/language in from_holder.spoken_languages) + grant_language(language, FALSE, TRUE, from_holder.spoken_languages[language]) + for(var/language in from_holder.blocked_languages) + add_blocked_language(language, from_holder.blocked_languages[language]) + return TRUE + + +//************************************************ +//* Specific language holders * +//* Use atom language sources only. * +//************************************************/ + /datum/language_holder/alien - languages = list(/datum/language/xenocommon) - -/datum/language_holder/monkey - languages = list(/datum/language/monkey) - -/datum/language_holder/swarmer - languages = list(/datum/language/swarmer) + understood_languages = list(/datum/language/xenocommon = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/xenocommon = list(LANGUAGE_ATOM)) + blocked_languages = list(/datum/language/common = list(LANGUAGE_ATOM)) /datum/language_holder/clockmob - languages = list(/datum/language/common, /datum/language/ratvar) - only_speaks_language = /datum/language/ratvar + understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/ratvar = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/ratvar = list(LANGUAGE_ATOM)) /datum/language_holder/construct - languages = list(/datum/language/common, /datum/language/narsie) + understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/narsie = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/narsie = list(LANGUAGE_ATOM)) /datum/language_holder/drone - languages = list(/datum/language/common, /datum/language/drone, /datum/language/machine) - only_speaks_language = /datum/language/drone + understood_languages = list(/datum/language/drone = list(LANGUAGE_ATOM), + /datum/language/machine = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/drone = list(LANGUAGE_ATOM)) + blocked_languages = list(/datum/language/common = list(LANGUAGE_ATOM)) /datum/language_holder/drone/syndicate - only_speaks_language = null + blocked_languages = null /datum/language_holder/dwarf - languages = list(/datum/language/common, /datum/language/dwarf) - only_speaks_language = /datum/language/dwarf + understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/dwarf = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/dwarf = list(LANGUAGE_ATOM)) -/datum/language_holder/slime - languages = list(/datum/language/common, /datum/language/slime) - only_speaks_language = /datum/language/slime +/datum/language_holder/jelly + understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/slime = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/slime = list(LANGUAGE_ATOM)) /datum/language_holder/lightbringer - // TODO change to a lightbringer specific sign language - languages = list(/datum/language/slime) + understood_languages = list(/datum/language/slime = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/slime = list(LANGUAGE_ATOM)) + blocked_languages = list(/datum/language/common = list(LANGUAGE_ATOM)) + +/datum/language_holder/lizard + understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/draconic = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/draconic = list(LANGUAGE_ATOM)) + +/datum/language_holder/lizard/ash + selected_language = /datum/language/draconic + +/datum/language_holder/monkey + understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/monkey = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/monkey = list(LANGUAGE_ATOM)) + +/datum/language_holder/mushroom + understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/mushroom = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/mushroom = list(LANGUAGE_ATOM)) + +/datum/language_holder/slime + understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/slime = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/slime = list(LANGUAGE_ATOM)) + +/datum/language_holder/swarmer + understood_languages = list(/datum/language/swarmer = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/swarmer = list(LANGUAGE_ATOM)) + blocked_languages = list(/datum/language/common = list(LANGUAGE_ATOM)) + +/datum/language_holder/sylvan + understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/sylvan = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/sylvan = list(LANGUAGE_ATOM)) + /datum/language_holder/synthetic - languages = list(/datum/language/common) - shadow_languages = list(/datum/language/common, /datum/language/machine, /datum/language/draconic, /datum/language/slime, /datum/language/dwarf) + understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/machine = list(LANGUAGE_ATOM), + /datum/language/draconic = list(LANGUAGE_ATOM), + /datum/language/slime = list(LANGUAGE_ATOM), + /datum/language/dwarf = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/machine = list(LANGUAGE_ATOM), + /datum/language/draconic = list(LANGUAGE_ATOM), + /datum/language/slime = list(LANGUAGE_ATOM), + /datum/language/dwarf = list(LANGUAGE_ATOM)) + +/datum/language_holder/venus + understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), + /datum/language/sylvan = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/sylvan = list(LANGUAGE_ATOM)) /datum/language_holder/empty - languages = list() - shadow_languages = list() + understood_languages = list() + spoken_languages = list() /datum/language_holder/universal/New() ..() - grant_all_languages(omnitongue=TRUE) + grant_all_languages() diff --git a/code/modules/language/language_menu.dm b/code/modules/language/language_menu.dm index d707c653e5..0df7c01fca 100644 --- a/code/modules/language/language_menu.dm +++ b/code/modules/language/language_menu.dm @@ -1,8 +1,8 @@ /datum/language_menu var/datum/language_holder/language_holder -/datum/language_menu/New(language_holder) - src.language_holder = language_holder +/datum/language_menu/New(_language_holder) + language_holder = _language_holder /datum/language_menu/Destroy() language_holder = null @@ -24,21 +24,20 @@ data["is_living"] = FALSE data["languages"] = list() - for(var/ld in GLOB.all_languages) - var/result = language_holder.has_language(ld) + for(var/lang in GLOB.all_languages) + var/result = language_holder.has_language(lang) || language_holder.has_language(lang, TRUE) if(!result) continue - var/shadow = result == LANGUAGE_SHADOWED - var/datum/language/LD = ld + var/datum/language/language = lang var/list/L = list() - L["name"] = initial(LD.name) - L["desc"] = initial(LD.desc) - L["key"] = initial(LD.key) - L["is_default"] = (LD == language_holder.selected_default_language) - L["shadow"] = shadow + L["name"] = initial(language.name) + L["desc"] = initial(language.desc) + L["key"] = initial(language.key) + L["is_default"] = (language == language_holder.selected_language) if(AM) - L["can_speak"] = AM.can_speak_in_language(LD) + L["can_speak"] = AM.can_speak_language(language) + L["can_understand"] = AM.has_language(language) data["languages"] += list(L) @@ -47,15 +46,15 @@ data["omnitongue"] = language_holder.omnitongue data["unknown_languages"] = list() - for(var/ld in GLOB.all_languages) - if(language_holder.has_language(ld)) + for(var/lang in GLOB.all_languages) + if(language_holder.has_language(lang) || language_holder.has_language(lang, TRUE)) continue - var/datum/language/LD = ld + var/datum/language/language = lang var/list/L = list() - L["name"] = initial(LD.name) - L["desc"] = initial(LD.desc) - L["key"] = initial(LD.key) + L["name"] = initial(language.name) + L["desc"] = initial(language.desc) + L["key"] = initial(language.key) data["unknown_languages"] += list(L) return data @@ -68,27 +67,51 @@ var/language_name = params["language_name"] var/datum/language/language_datum - for(var/ld in GLOB.all_languages) - var/datum/language/LD = ld - if(language_name == initial(LD.name)) - language_datum = LD + for(var/lang in GLOB.all_languages) + var/datum/language/language = lang + if(language_name == initial(language.name)) + language_datum = language var/is_admin = check_rights_for(user.client, R_ADMIN) switch(action) if("select_default") - if(language_datum && AM.can_speak_in_language(language_datum)) - language_holder.selected_default_language = language_datum + if(language_datum && AM.can_speak_language(language_datum)) + language_holder.selected_language = language_datum . = TRUE if("grant_language") if((is_admin || isobserver(AM)) && language_datum) - language_holder.grant_language(language_datum) + var/list/choices = list("Only Spoken", "Only Understood", "Both") + var/choice = input(user,"How do you want to add this language?","[language_datum]",null) as null|anything in choices + var/spoken = FALSE + var/understood = FALSE + switch(choice) + if("Only Spoken") + spoken = TRUE + if("Only Understood") + understood = TRUE + if("Both") + spoken = TRUE + understood = TRUE + language_holder.grant_language(language_datum, understood, spoken) if(is_admin) message_admins("[key_name_admin(user)] granted the [language_name] language to [key_name_admin(AM)].") log_admin("[key_name(user)] granted the language [language_name] to [key_name(AM)].") . = TRUE if("remove_language") if((is_admin || isobserver(AM)) && language_datum) - language_holder.remove_language(language_datum) + var/list/choices = list("Only Spoken", "Only Understood", "Both") + var/choice = input(user,"Which part do you wish to remove?","[language_datum]",null) as null|anything in choices + var/spoken = FALSE + var/understood = FALSE + switch(choice) + if("Only Spoken") + spoken = TRUE + if("Only Understood") + understood = TRUE + if("Both") + spoken = TRUE + understood = TRUE + language_holder.remove_language(language_datum, understood, spoken) if(is_admin) message_admins("[key_name_admin(user)] removed the [language_name] language to [key_name_admin(AM)].") log_admin("[key_name(user)] removed the language [language_name] to [key_name(AM)].") diff --git a/code/modules/language/sylvan.dm b/code/modules/language/sylvan.dm new file mode 100644 index 0000000000..1eb696259e --- /dev/null +++ b/code/modules/language/sylvan.dm @@ -0,0 +1,19 @@ +// The language of the vinebings. Yes, it's a shameless ripoff of elvish. +/datum/language/sylvan + name = "Sylvan" + desc = "A complicated, ancient language spoken by vine like beings." + speech_verb = "expresses" + ask_verb = "inquires" + exclaim_verb = "declares" + key = "h" + space_chance = 20 + syllables = list( + "fii", "sii", "rii", "rel", "maa", "ala", "san", "tol", "tok", "dia", "eres", + "fal", "tis", "bis", "qel", "aras", "losk", "rasa", "eob", "hil", "tanl", "aere", + "fer", "bal", "pii", "dala", "ban", "foe", "doa", "cii", "uis", "mel", "wex", + "incas", "int", "elc", "ent", "aws", "qip", "nas", "vil", "jens", "dila", "fa", + "la", "re", "do", "ji", "ae", "so", "qe", "ce", "na", "mo", "ha", "yu" + ) + icon = 'icons/obj/hydroponics/harvest.dmi' + icon_state = "lily" + default_priority = 90 diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 008724b10f..144037b3a7 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -267,7 +267,7 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums dat += "(Order book by SS13BN)

    " dat += "" dat += "" - dat += libcomp_menu[CLAMP(page,1,libcomp_menu.len)] + dat += libcomp_menu[clamp(page,1,libcomp_menu.len)] dat += "" dat += "
    AUTHORTITLECATEGORY
    <<<< >>>>
    " dat += "
    (Return to main menu)
    " diff --git a/code/modules/lighting/lighting_atom.dm b/code/modules/lighting/lighting_atom.dm index 8712a66290..779dd9c3ea 100644 --- a/code/modules/lighting/lighting_atom.dm +++ b/code/modules/lighting/lighting_atom.dm @@ -38,7 +38,7 @@ if (!light_power || !light_range) // We won't emit light anyways, destroy the light source. QDEL_NULL(light) else - if (!ismovableatom(loc)) // We choose what atom should be the top atom of the light here. + if (!ismovable(loc)) // We choose what atom should be the top atom of the light here. . = src else . = loc diff --git a/code/modules/mapping/dmm_suite.dm b/code/modules/mapping/dmm_suite.dm deleted file mode 100644 index c4ceec33ee..0000000000 --- a/code/modules/mapping/dmm_suite.dm +++ /dev/null @@ -1,63 +0,0 @@ -dmm_suite{ - /* - - dmm_suite version 1.0 - Released January 30th, 2011. - - NOTE: Map saving functionality removed - - defines the object /dmm_suite - - Provides the proc load_map() - - Loads the specified map file onto the specified z-level. - - provides the proc write_map() - - Returns a text string of the map in dmm format - ready for output to a file. - - provides the proc save_map() - - Returns a .dmm file if map is saved - - Returns FALSE if map fails to save - - The dmm_suite provides saving and loading of map files in BYOND's native DMM map - format. It approximates the map saving and loading processes of the Dream Maker - and Dream Seeker programs so as to allow editing, saving, and loading of maps at - runtime. - - ------------------------ - - To save a map at runtime, create an instance of /dmm_suite, and then call - write_map(), which accepts three arguments: - - A turf representing one corner of a three dimensional grid (Required). - - Another turf representing the other corner of the same grid (Required). - - Any, or a combination, of several bit flags (Optional, see documentation). - - The order in which the turfs are supplied does not matter, the /dmm_writer will - determine the grid containing both, in much the same way as DM's block() function. - write_map() will then return a string representing the saved map in dmm format; - this string can then be saved to a file, or used for any other purose. - - ------------------------ - - To load a map at runtime, create an instance of /dmm_suite, and then call load_map(), - which accepts two arguments: - - A .dmm file to load (Required). - - A number representing the z-level on which to start loading the map (Optional). - - The /dmm_suite will load the map file starting on the specified z-level. If no - z-level was specified, world.maxz will be increased so as to fit the map. Note - that if you wish to load a map onto a z-level that already has objects on it, - you will have to handle the removal of those objects. Otherwise the new map will - simply load the new objects on top of the old ones. - - Also note that all type paths specified in the .dmm file must exist in the world's - code, and that the /dmm_reader trusts that files to be loaded are in fact valid - .dmm files. Errors in the .dmm format will cause runtime errors. - - */ - - verb/load_map(var/dmm_file as file, var/x_offset as num, var/y_offset as num, var/z_offset as num, var/cropMap as num, var/measureOnly as num, no_changeturf as num){ - // dmm_file: A .dmm file to load (Required). - // z_offset: A number representing the z-level on which to start loading the map (Optional). - // cropMap: When true, the map will be cropped to fit the existing world dimensions (Optional). - // measureOnly: When true, no changes will be made to the world (Optional). - // no_changeturf: When true, turf/AfterChange won't be called on loaded turfs - } -} \ No newline at end of file diff --git a/code/datums/map_config.dm b/code/modules/mapping/map_config.dm similarity index 79% rename from code/datums/map_config.dm rename to code/modules/mapping/map_config.dm index 5fcd1ae93c..efa2655325 100644 --- a/code/datums/map_config.dm +++ b/code/modules/mapping/map_config.dm @@ -22,6 +22,7 @@ var/traits = null var/space_ruin_levels = 2 var/space_empty_levels = 1 + var/station_ruin_budget = -1 // can be set to manually override the station ruins budget on maps that don't support station ruins, stopping the error from being unable to place the ruins. var/minetype = "lavaland" @@ -38,6 +39,10 @@ var/year_offset = 540 //The offset of ingame year from the actual IRL year. You know you want to make a map that takes place in the 90's. Don't lie. + // "fun things" + /// Orientation to load in by default. + var/orientation = SOUTH //byond defaults to placing everyting SOUTH. + /proc/load_map_config(filename = "data/next_map.json", default_to_box, delete_after, error_if_missing = TRUE) var/datum/map_config/config = new if (default_to_box) @@ -130,6 +135,9 @@ log_world("map_config space_empty_levels is not a number!") return + if("station_ruin_budget" in json) + station_ruin_budget = json["station_ruin_budget"] + temp = json["year_offset"] if (isnum(temp)) year_offset = temp @@ -139,13 +147,18 @@ if ("minetype" in json) minetype = json["minetype"] - + if ("maptype" in json) maptype = json["maptype"] if ("announcertype" in json) announcertype = json["announcertype"] + if ("orientation" in json) + orientation = json["orientation"] + if(!(orientation in GLOB.cardinals)) + orientation = SOUTH + allow_custom_shuttles = json["allow_custom_shuttles"] != FALSE defaulted = FALSE @@ -161,3 +174,23 @@ /datum/map_config/proc/MakeNextMap() return config_filename == "data/next_map.json" || fcopy(config_filename, "data/next_map.json") + +/// badmin moments. Keep up to date with LoadConfig()! +/datum/map_config/proc/WriteNextMap() + var/list/jsonlist = list() + jsonlist["map_name"] = map_name + jsonlist["map_path"] = map_path + jsonlist["map_file"] = map_file + jsonlist["shuttles"] = shuttles + jsonlist["traits"] = traits + jsonlist["space_ruin_levels"] = space_ruin_levels + jsonlist["year_offset"] = year_offset + jsonlist["minetype"] = minetype + jsonlist["maptype"] = maptype + jsonlist["announcertype"] = announcertype + jsonlist["orientation"] = orientation + jsonlist["allow_custom_shuttles"] = allow_custom_shuttles + if(fexists("data/next_map.json")) + fdel("data/next_map.json") + var/F = file("data/next_map.json") + WRITE_FILE(F, json_encode(jsonlist)) diff --git a/code/modules/mapping/map_orientation_pattern.dm b/code/modules/mapping/map_orientation_pattern.dm new file mode 100644 index 0000000000..565c25bef1 --- /dev/null +++ b/code/modules/mapping/map_orientation_pattern.dm @@ -0,0 +1,46 @@ +GLOBAL_LIST_INIT(map_orientation_patterns, list( + TEXT_NORTH = new /datum/map_orientation_pattern/north, + TEXT_SOUTH = new /datum/map_orientation_pattern/south, + TEXT_EAST = new /datum/map_orientation_pattern/east, + TEXT_WEST = new /datum/map_orientation_pattern/west + )) + +/datum/map_orientation_pattern + var/invert_x + var/invert_y + var/swap_xy + var/xi + var/yi + var/turn_angle + +/datum/map_orientation_pattern/north + invert_y = TRUE + invert_x = TRUE + swap_xy = FALSE + xi = -1 + yi = 1 + turn_angle = 180 + +/datum/map_orientation_pattern/south + invert_y = FALSE + invert_x = FALSE + swap_xy = FALSE + xi = 1 + yi = -1 + turn_angle = 0 + +/datum/map_orientation_pattern/east + invert_y = TRUE + invert_x = FALSE + swap_xy = TRUE + xi = 1 + yi = 1 + turn_angle = 90 + +/datum/map_orientation_pattern/west + invert_y = FALSE + invert_x = TRUE + swap_xy = TRUE + xi = -1 + yi = -1 + turn_angle = 270 diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index 3e361179de..087552fada 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -1,11 +1,14 @@ /datum/map_template var/name = "Default Template Name" - var/width = 0 + var/width = 0 //all these are for SOUTH! var/height = 0 - var/mappath = null + var/zdepth = 1 + var/mappath var/loaded = 0 // Times loaded this round var/datum/parsed_map/cached_map var/keep_cached_map = FALSE + var/default_annihilate = FALSE + var/list/ztraits //zlevel traits for load_new_z /datum/map_template/New(path = null, rename = null, cache = FALSE) if(path) @@ -15,16 +18,45 @@ if(rename) name = rename -/datum/map_template/proc/preload_size(path, cache = FALSE) +/datum/map_template/Destroy() + QDEL_NULL(cached_map) + return ..() + +/datum/map_template/proc/preload_size(path = mappath, force_cache = FALSE) + if(cached_map) + return cached_map.parsed_bounds var/datum/parsed_map/parsed = new(file(path)) - var/bounds = parsed?.bounds + var/bounds = parsed?.parsed_bounds if(bounds) - width = bounds[MAP_MAXX] // Assumes all templates are rectangular, have a single Z level, and begin at 1,1,1 - height = bounds[MAP_MAXY] - if(cache) + width = bounds[MAP_MAXX] - bounds[MAP_MINX] + 1 + height = bounds[MAP_MAXY] - bounds[MAP_MINY] + 1 + zdepth = bounds[MAP_MAXZ] - bounds[MAP_MINZ] + 1 + if(force_cache || keep_cached_map) cached_map = parsed return bounds +/datum/map_template/proc/get_parsed_bounds() + return preload_size(mappath) + +/datum/map_template/proc/get_last_loaded_bounds() + if(cached_map) + return cached_map.bounds + return get_parsed_bounds() + +/datum/map_template/proc/get_last_loaded_turf_block() + if(!cached_map) + CRASH("Improper use of get_last_loaded_turf_block, no cached_map.") + var/list/B = cached_map.bounds + return block(locate(B[MAP_MINX], B[MAP_MINY], B[MAP_MINZ]), locate(B[MAP_MAXX], B[MAP_MAXY], B[MAP_MAXZ])) + +/datum/map_template/proc/get_size(orientation = SOUTH) + if(!width || !height || !zdepth) + preload_size(mappath) + var/rotate = (orientation & (NORTH|SOUTH)) != NONE + if(rotate) + return list(height, width, zdepth) + return list(width, height, zdepth) + /datum/parsed_map/proc/initTemplateBounds() var/list/obj/machinery/atmospherics/atmos_machines = list() var/list/obj/structure/cable/cables = list() @@ -55,12 +87,12 @@ SSmachines.setup_template_powernets(cables) SSair.setup_template_machinery(atmos_machines) -/datum/map_template/proc/load_new_z() - var/x = round((world.maxx - width)/2) - var/y = round((world.maxy - height)/2) +/datum/map_template/proc/load_new_z(orientation = SOUTH, list/ztraits = src.ztraits || list(ZTRAIT_AWAY = TRUE), centered = TRUE) + var/x = centered? max(round((world.maxx - width) / 2), 1) : 1 + var/y = centered? max(round((world.maxy - height) / 2), 1) : 1 - var/datum/space_level/level = SSmapping.add_new_zlevel(name, list(ZTRAIT_AWAY = TRUE)) - var/datum/parsed_map/parsed = load_map(file(mappath), x, y, level.z_value, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=TRUE) + var/datum/space_level/level = SSmapping.add_new_zlevel(name, ztraits) + var/datum/parsed_map/parsed = load_map(file(mappath), x, y, level.z_value, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop = TRUE, orientation = orientation) var/list/bounds = parsed.bounds if(!bounds) return FALSE @@ -71,31 +103,67 @@ parsed.initTemplateBounds() smooth_zlevel(world.maxz) log_game("Z-level [name] loaded at [x],[y],[world.maxz]") + on_map_loaded(world.maxz, parsed.bounds) return level -/datum/map_template/proc/load(turf/T, centered = FALSE) +//Override for custom behavior +/datum/map_template/proc/on_map_loaded(z, list/bounds) + loaded++ + +/** + * Proc to trigger a load at a specific area. Calls on_map_loaded(T.z, loaded_bounds) afterwards. + * + * @params + * * turf/T - Turf to load at + * * centered - Center at T or load with the bottomright corner being at T + * * orientation - SOUTH is default, anything else rotates the map to face it with the point of reference being the map itself is facing south by default. Cardinals only, don't be a 4head and put in multiple flags. It won't work or be pretty if you try. + * * annihilate - Should we destroy stuff in our bounds while loading + * * force_cache - Should we force the parsed shuttle to cache instead of being GC'd post loading if it wasn't going to be cached by default + * * rotate_placement_to_orientation - Has no effect if centered. Should we rotate where we load it around the turf we're loading at? Used for stuff like engine submaps when the station is rotated. + * + */ +/datum/map_template/proc/load(turf/T, centered = FALSE, orientation = SOUTH, annihilate = default_annihilate, force_cache = FALSE, rotate_placement_to_orientation = FALSE) + var/old_T = T if(centered) - T = locate(T.x - round(width/2) , T.y - round(height/2) , T.z) + T = locate(T.x - round(((orientation & (NORTH|SOUTH))? width : height) / 2) , T.y - round(((orientation & (NORTH|SOUTH)) ? height : width) / 2) , T.z) // %180 catches East/West (90,270) rotations on true, North/South (0,180) rotations on false + else if(rotate_placement_to_orientation && (orientation != SOUTH)) + var/newx = T.x + var/newy = T.y + if(orientation == NORTH) + newx -= width + newy -= height - 1 + else if(orientation == WEST) + newy -= width + else if(orientation == EAST) + newx -= height - 1 + // eh let's not silently fail. + if(!ISINRANGE(newx, 1, world.maxx) || !ISINRANGE(newy, 1, world.maxy)) + stack_trace("Warning: Rotation placed a map template load spot ([COORD(T)]) out of bounds of the game world. Clamping to world borders, this might cause issues.") + T = locate(clamp(newx, 1, world.maxx), clamp(newy, 1, world.maxy), T.z) if(!T) return - if(T.x+width > world.maxx) + if(T.x+width-1 > world.maxx) return - if(T.y+height > world.maxy) + if(T.y+height-1 > world.maxy) return - var/list/border = block(locate(max(T.x-1, 1), max(T.y-1, 1), T.z), - locate(min(T.x+width+1, world.maxx), min(T.y+height+1, world.maxy), T.z)) - for(var/L in border) - var/turf/turf_to_disable = L + var/list/border = block(locate(max(T.x - 1, 1), max(T.y - 1, 1), T.z), + locate(min(T.x + width + 1, world.maxx), min(T.y + height + 1, world.maxy), T.z)) + for(var/i in border) + var/turf/turf_to_disable = i SSair.remove_from_active(turf_to_disable) //stop processing turfs along the border to prevent runtimes, we return it in initTemplateBounds() turf_to_disable.atmos_adjacent_turfs?.Cut() + if(annihilate == MAP_TEMPLATE_ANNIHILATE_PRELOAD) + annihilate_bounds(old_T, centered, orientation) + // Accept cached maps, but don't save them automatically - we don't want // ruins clogging up memory for the whole round. - var/datum/parsed_map/parsed = cached_map || new(file(mappath)) - cached_map = keep_cached_map ? parsed : null - if(!parsed.load(T.x, T.y, T.z, cropMap=TRUE, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=TRUE)) + var/is_cached = cached_map + var/datum/parsed_map/parsed = is_cached || new(file(mappath)) + cached_map = (force_cache || keep_cached_map) ? parsed : is_cached + if(!parsed.load(T.x, T.y, T.z, cropMap=TRUE, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=TRUE, orientation = orientation, annihilate_tiles = (annihilate == MAP_TEMPLATE_ANNIHILATE_LOADING))) return var/list/bounds = parsed.bounds if(!bounds) @@ -108,19 +176,36 @@ parsed.initTemplateBounds() log_game("[name] loaded at [T.x],[T.y],[T.z]") + on_map_loaded(T.z, parsed.bounds) + return bounds -/datum/map_template/proc/get_affected_turfs(turf/T, centered = FALSE) - var/turf/placement = T - if(centered) - var/turf/corner = locate(placement.x - round(width/2), placement.y - round(height/2), placement.z) - if(corner) - placement = corner - return block(placement, locate(placement.x+width-1, placement.y+height-1, placement.z)) - +//This, get_affected_turfs, and load() calculations for bounds/center can probably be optimized. Later. +/datum/map_template/proc/annihilate_bounds(turf/origin, centered = FALSE, orientation = SOUTH) + var/deleted_atoms = 0 + log_world("Annihilating objects in map loading location.") + var/list/turfs_to_clean = get_affected_turfs(origin, centered, orientation) + if(turfs_to_clean.len) + var/list/kill_these = list() + for(var/i in turfs_to_clean) + var/turf/T = i + kill_these += T.contents + for(var/i in kill_these) + qdel(i) + CHECK_TICK + deleted_atoms++ + log_world("Annihilated [deleted_atoms] objects.") //for your ever biggening badminnery kevinz000 //⤠- Cyberboss -/proc/load_new_z_level(var/file, var/name) +/proc/load_new_z_level(file, name, orientation, list/ztraits) var/datum/map_template/template = new(file, name) - template.load_new_z() + return template.load_new_z(orientation, ztraits) + +/datum/map_template/proc/get_affected_turfs(turf/T, centered = FALSE, orientation = SOUTH) + var/turf/placement = T + if(centered) + var/turf/corner = locate(placement.x - round(((orientation & (NORTH|SOUTH))? width : height) / 2), placement.y - round(((orientation & (NORTH|SOUTH))? height : width) / 2), placement.z) // %180 catches East/West (90,270) rotations on true, North/South (0,180) rotations on false + if(corner) + placement = corner + return block(placement, locate(placement.x + ((orientation & (NORTH|SOUTH)) ? width : height) - 1, placement.y + ((orientation & (NORTH|SOUTH))? height : width) - 1, placement.z)) diff --git a/code/modules/mapping/preloader.dm b/code/modules/mapping/preloader.dm index 4b61663f66..16adb43113 100644 --- a/code/modules/mapping/preloader.dm +++ b/code/modules/mapping/preloader.dm @@ -7,13 +7,21 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) parent_type = /datum var/list/attributes var/target_path + var/turn_angle + var/swap_x + var/swap_y + var/swap_xy -/world/proc/preloader_setup(list/the_attributes, path) - if(the_attributes.len) +/world/proc/preloader_setup(list/the_attributes, path, turn_angle, swap_x, swap_y, swap_xy) + if(length(the_attributes) || turn_angle) GLOB.use_preloader = TRUE var/datum/map_preloader/preloader_local = GLOB._preloader preloader_local.attributes = the_attributes preloader_local.target_path = path + preloader_local.turn_angle = turn_angle + preloader_local.swap_x = swap_x + preloader_local.swap_y = swap_y + preloader_local.swap_xy = swap_xy /world/proc/preloader_load(atom/what) GLOB.use_preloader = FALSE @@ -29,6 +37,21 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) GLOB.dirty_vars += message #endif what.vars[attribute] = value + // handle post processing, so things like directions on subtypes don't break. + if(preloader_local.turn_angle) //safe way to check for if this is necessary + what.dir = turn(what.dir, preloader_local.turn_angle) + var/px = what.pixel_x + var/py = what.pixel_y + if(preloader_local.swap_y) //same order of operations as the load rotation, mirror and then x/y swapping. + py = -py + if(preloader_local.swap_x) + px = -px + if(preloader_local.swap_xy) + var/opx = px + px = py + py = opx + what.pixel_x = px + what.pixel_y = py /area/template_noop name = "Area Passthrough" diff --git a/code/modules/mapping/reader.dm b/code/modules/mapping/reader.dm index 86b501c455..a792ee280f 100644 --- a/code/modules/mapping/reader.dm +++ b/code/modules/mapping/reader.dm @@ -1,6 +1,12 @@ /////////////////////////////////////////////////////////////// //SS13 Optimized Map loader ////////////////////////////////////////////////////////////// +/* + * Notes: + * This does NOT support map files where more than one Z is in each grid set, as defined in the file. + * MultiZ map files ARE supported (however very much discouraged), as long as each gridset only contains one z. + * This assumes that for the most part, map files are properly formed, either DMM or TGM standard formats. If you feed it bad data, expect to crash. + */ #define SPACE_KEY "space" /datum/grid_set @@ -9,6 +15,12 @@ var/zcrd var/gridLines +/datum/grid_set/proc/height(key_len) + return length(gridLines) + +/datum/grid_set/proc/width(key_len) + return gridLines[1] / key_len + /datum/parsed_map var/original_path var/key_len = 0 @@ -19,9 +31,13 @@ /// Unoffset bounds. Null on parse failure. var/list/parsed_bounds + var/width + var/height /// Offset bounds. Same as parsed_bounds until load(). var/list/bounds + var/datum/map_template/template_host + // raw strings used to represent regexes more accurately // '' used to avoid confusing syntax highlighting var/static/regex/dmmRegex = new(@'"([a-zA-Z]+)" = \(((?:.|\n)*?)\)\n(?!\t)|\((\d+),(\d+),(\d+)\) = \{"([a-zA-Z\n]*)"\}', "g") @@ -39,24 +55,58 @@ /// - `cropMap`: When true, the map will be cropped to fit the existing world dimensions (Optional). /// - `measureOnly`: When true, no changes will be made to the world (Optional). /// - `no_changeturf`: When true, [turf/AfterChange] won't be called on loaded turfs -/// - `x_lower`, `x_upper`, `y_lower`, `y_upper`: Coordinates (relative to the map) to crop to (Optional). +/// - `x_lower`, `x_upper`, `y_lower`, `y_upper`: Coordinates (relative to the game world) to crop to (Optional). /// - `placeOnTop`: Whether to use [turf/PlaceOnTop] rather than [turf/ChangeTurf] (Optional). -/proc/load_map(dmm_file as file, x_offset as num, y_offset as num, z_offset as num, cropMap as num, measureOnly as num, no_changeturf as num, x_lower = -INFINITY as num, x_upper = INFINITY as num, y_lower = -INFINITY as num, y_upper = INFINITY as num, placeOnTop = FALSE as num) - var/datum/parsed_map/parsed = new(dmm_file, x_lower, x_upper, y_lower, y_upper, measureOnly) +/proc/load_map( + dmm_file as file, + x_offset as num, + y_offset as num, + z_offset as num, + cropMap as num, + measureOnly as num, + no_changeturf as num, + x_lower = -INFINITY as num, + x_upper = INFINITY as num, + y_lower = -INFINITY as num, + y_upper = INFINITY as num, + placeOnTop = FALSE as num, + orientation = SOUTH as num, + annihilate_tiles = FALSE, + crop_relative_to_game_world = TRUE + ) + var/datum/parsed_map/parsed = new(dmm_file, measureOnly = measureOnly) if(parsed.bounds && !measureOnly) - parsed.load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop) + parsed.load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, orientation, annihilate_tiles) return parsed -/// Parse a map, possibly cropping it. -/datum/parsed_map/New(tfile, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper=INFINITY, measureOnly=FALSE) +/** + * Parse a map, possibly cropping it. + * Do not use the crop function unless strictly necessary. + * WARNING: Crop function crops based on the tiles you'd see in the map editor. If you're planning to load it in in a different orientation later, you better have done the math. + * It's recommended that you do not crop using this at all. + */ +/datum/parsed_map/New(tfile, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, z_lower = -INFINITY, z_upper = INFINITY, measureOnly = FALSE) + _parse(tfile, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, measureOnly) + +/datum/parsed_map/proc/_parse(tfile, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, measureOnly) + var/static/parsing = FALSE + UNTIL(!parsing) + // do not multithread this or bad things happen + parsing = TRUE + _do_parse(tfile, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, measureOnly) + parsing = FALSE + +/datum/parsed_map/proc/_do_parse(tfile, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, measureOnly) if(isfile(tfile)) original_path = "[tfile]" tfile = file2text(tfile) else if(isnull(tfile)) // create a new datum without loading a map return - bounds = parsed_bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) + ASSERT(x_upper >= x_lower) + ASSERT(y_upper >= y_lower) + ASSERT(z_upper >= z_lower) var/stored_index = 1 //multiz lool @@ -81,21 +131,19 @@ if(!key_len) CRASH("Coords before model definition in DMM") - var/curr_x = text2num(dmmRegex.group[3]) - - if(curr_x < x_lower || curr_x > x_upper) + // NOTE: We are assuming each coordset only contains one z. + var/curr_z = text2num(dmmRegex.group[5]) + if(curr_z < z_lower || curr_z > z_upper) continue + + var/curr_x = text2num(dmmRegex.group[3]) + var/curr_y = text2num(dmmRegex.group[4]) var/datum/grid_set/gridSet = new gridSet.xcrd = curr_x - //position of the currently processed square - gridSet.ycrd = text2num(dmmRegex.group[4]) - gridSet.zcrd = text2num(dmmRegex.group[5]) - - bounds[MAP_MINX] = min(bounds[MAP_MINX], CLAMP(gridSet.xcrd, x_lower, x_upper)) - bounds[MAP_MINZ] = min(bounds[MAP_MINZ], gridSet.zcrd) - bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], gridSet.zcrd) + gridSet.ycrd = curr_y + gridSet.zcrd = curr_z var/list/gridLines = splittext(dmmRegex.group[6], "\n") gridSet.gridLines = gridLines @@ -105,102 +153,142 @@ if(leadingBlanks > 1) gridLines.Cut(1, leadingBlanks) // Remove all leading blank lines. - if(!gridLines.len) // Skip it if only blank lines exist. + var/lines = length(gridLines) + if(lines && gridLines[lines] == "") + // remove one trailing blank line + gridLines.len-- + lines-- + // y crop + var/right_length = y_upper - curr_y + 1 + if(lines > right_length) + lines = gridLines.len = right_length + if(!lines) // blank continue + var/width = length(gridLines[1]) / key_len + // x crop + var/right_width = x_upper - curr_x + 1 + if(width > right_width) + for(var/i in 1 to lines) + gridLines[i] = copytext(gridLines[i], 1, key_len * right_width) + + // during the actual load we're starting at the top and working our way down + gridSet.ycrd += lines - 1 + + // Safe to proceed, commit gridset to list and record coords. gridSets += gridSet - - if(gridLines.len && gridLines[gridLines.len] == "") - gridLines.Cut(gridLines.len) // Remove only one blank line at the end. - - bounds[MAP_MINY] = min(bounds[MAP_MINY], CLAMP(gridSet.ycrd, y_lower, y_upper)) - gridSet.ycrd += gridLines.len - 1 // Start at the top and work down - bounds[MAP_MAXY] = max(bounds[MAP_MAXY], CLAMP(gridSet.ycrd, y_lower, y_upper)) - - var/maxx = gridSet.xcrd - if(gridLines.len) //Not an empty map - maxx = max(maxx, gridSet.xcrd + length(gridLines[1]) / key_len - 1) - - bounds[MAP_MAXX] = CLAMP(max(bounds[MAP_MAXX], maxx), x_lower, x_upper) + bounds[MAP_MINX] = min(bounds[MAP_MINX], curr_x) + bounds[MAP_MAXX] = max(bounds[MAP_MAXX], curr_x + width - 1) + bounds[MAP_MINY] = min(bounds[MAP_MINY], curr_y) + bounds[MAP_MAXY] = max(bounds[MAP_MAXY], curr_y + lines - 1) + bounds[MAP_MINZ] = min(bounds[MAP_MINZ], curr_z) + bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], curr_z) CHECK_TICK // Indicate failure to parse any coordinates by nulling bounds if(bounds[1] == 1.#INF) bounds = null + else + width = bounds[MAP_MAXX] - bounds[MAP_MINX] + 1 + height = bounds[MAP_MAXY] - bounds[MAP_MINY] + 1 parsed_bounds = bounds +/datum/parsed_map/Destroy() + if(template_host && template_host.cached_map == src) + template_host.cached_map = null + . = ..() + return QDEL_HINT_HARDDEL_NOW + /// Load the parsed map into the world. See [/proc/load_map] for arguments. -/datum/parsed_map/proc/load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop) +/datum/parsed_map/proc/load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, orientation, annihilate_tiles, datum/map_orientation_pattern/forced_pattern) //How I wish for RAII Master.StartLoadingMap() - . = _load_impl(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop) + . = _load_impl(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, orientation, annihilate_tiles, forced_pattern) Master.StopLoadingMap() // Do not call except via load() above. -/datum/parsed_map/proc/_load_impl(x_offset = 1, y_offset = 1, z_offset = world.maxz + 1, cropMap = FALSE, no_changeturf = FALSE, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, placeOnTop = FALSE) +// Lower/upper here refers to the actual map template's parsed coordinates, NOT ACTUAL COORDINATES! Figure it out yourself my head hurts too much to implement that too. +/datum/parsed_map/proc/_load_impl(x_offset = 1, y_offset = 1, z_offset = world.maxz + 1, cropMap = FALSE, no_changeturf = FALSE, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, placeOnTop = FALSE, orientation = SOUTH, annihilate_tiles = FALSE, datum/map_orientation_pattern/forced_pattern) var/list/areaCache = list() var/list/modelCache = build_cache(no_changeturf) var/space_key = modelCache[SPACE_KEY] var/list/bounds src.bounds = bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) + var/datum/map_orientation_pattern/mode = forced_pattern || GLOB.map_orientation_patterns["[orientation]"] || GLOB.map_orientation_patterns["[SOUTH]"] + var/invert_y = mode.invert_y + var/invert_x = mode.invert_x + var/swap_xy = mode.swap_xy + var/xi = mode.xi + var/yi = mode.yi + var/turn_angle = round(SIMPLIFY_DEGREES(mode.turn_angle), 90) + var/delta_swap = x_offset - y_offset + // less checks later + var/do_crop = x_lower > -INFINITY || x_upper < INFINITY || y_lower > -INFINITY || y_upper < INFINITY - for(var/I in gridSets) - var/datum/grid_set/gset = I - var/ycrd = gset.ycrd + y_offset - 1 - var/zcrd = gset.zcrd + z_offset - 1 - if(!cropMap && ycrd > world.maxy) - world.maxy = ycrd // Expand Y here. X is expanded in the loop below - var/zexpansion = zcrd > world.maxz + for(var/__I in gridSets) + var/datum/grid_set/gridset = __I + var/parsed_z = gridset.zcrd + z_offset - 1 + var/zexpansion = parsed_z > world.maxz if(zexpansion) if(cropMap) continue else - while (zcrd > world.maxz) //create a new z_level if needed + while(parsed_z > world.maxz) world.incrementMaxZ() if(!no_changeturf) WARNING("Z-level expansion occurred without no_changeturf set, this may cause problems when /turf/AfterChange is called") + //these values are the same until a new gridset is reached. + var/edge_dist_x = gridset.xcrd - 1 //from left side, 0 is right on the x_offset + var/edge_dist_y = gridset.ycrd - length(gridset.gridLines) //from bottom, 0 is right on the y_offset + var/actual_x_starting = invert_x? (x_offset + width - edge_dist_x - 1) : (x_offset + edge_dist_x) //this value is not changed, cache. + //this value is changed + var/actual_y = invert_y? (y_offset + edge_dist_y) : (y_offset + gridset.ycrd - 1) + for(var/line in gridset.gridLines) + var/actual_x = actual_x_starting + for(var/pos = 1 to (length(line) - key_len + 1) step key_len) + var/placement_x = swap_xy? (actual_y + delta_swap) : actual_x + var/placement_y = swap_xy? (actual_x - delta_swap) : actual_y + if(do_crop && ((placement_x < x_lower) || (placement_x > x_upper) || (placement_y < y_lower) || (placement_y > y_upper))) + continue + if(placement_x > world.maxx) + if(cropMap) + actual_x += xi + continue + else + world.maxx = placement_x + if(placement_y > world.maxy) + if(cropMap) + break + else + world.maxy = placement_y + if(placement_x < 1) + actual_x += xi + continue + if(placement_y < 1) + break + var/model_key = copytext(line, pos, pos + key_len) + var/no_afterchange = no_changeturf || zexpansion + if(!no_afterchange || (model_key != space_key)) + var/list/cache = modelCache[model_key] + if(!cache) + CRASH("Undefined model key in DMM: [model_key]") + build_coordinate(areaCache, cache, locate(placement_x, placement_y, parsed_z), no_afterchange, placeOnTop, turn_angle, annihilate_tiles, swap_xy, invert_y, invert_x) - for(var/line in gset.gridLines) - if((ycrd - y_offset + 1) < y_lower || (ycrd - y_offset + 1) > y_upper) //Reverse operation and check if it is out of bounds of cropping. - --ycrd - continue - if(ycrd <= world.maxy && ycrd >= 1) - var/xcrd = gset.xcrd + x_offset - 1 - for(var/tpos = 1 to length(line) - key_len + 1 step key_len) - if((xcrd - x_offset + 1) < x_lower || (xcrd - x_offset + 1) > x_upper) //Same as above. - ++xcrd - continue //X cropping. - if(xcrd > world.maxx) - if(cropMap) - break - else - world.maxx = xcrd - - if(xcrd >= 1) - var/model_key = copytext(line, tpos, tpos + key_len) - var/no_afterchange = no_changeturf || zexpansion - if(!no_afterchange || (model_key != space_key)) - var/list/cache = modelCache[model_key] - if(!cache) - CRASH("Undefined model key in DMM: [model_key]") - build_coordinate(areaCache, cache, locate(xcrd, ycrd, zcrd), no_afterchange, placeOnTop) - - // only bother with bounds that actually exist - bounds[MAP_MINX] = min(bounds[MAP_MINX], xcrd) - bounds[MAP_MINY] = min(bounds[MAP_MINY], ycrd) - bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd) - bounds[MAP_MAXX] = max(bounds[MAP_MAXX], xcrd) - bounds[MAP_MAXY] = max(bounds[MAP_MAXY], ycrd) - bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd) - #ifdef TESTING - else - ++turfsSkipped - #endif - CHECK_TICK - ++xcrd - --ycrd - - CHECK_TICK + // only bother with bounds that actually exist + bounds[MAP_MINX] = min(bounds[MAP_MINX], placement_x) + bounds[MAP_MINY] = min(bounds[MAP_MINY], placement_y) + bounds[MAP_MINZ] = min(bounds[MAP_MINZ], parsed_z) + bounds[MAP_MAXX] = max(bounds[MAP_MAXX], placement_x) + bounds[MAP_MAXY] = max(bounds[MAP_MAXY], placement_y) + bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], parsed_z) + #ifdef TESTING + else + ++turfsSkipped + #endif + actual_x += xi + CHECK_TICK + actual_y += yi + CHECK_TICK if(!no_changeturf) for(var/t in block(locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]))) @@ -294,7 +382,7 @@ .[model_key] = list(members, members_attributes) -/datum/parsed_map/proc/build_coordinate(list/areaCache, list/model, turf/crds, no_changeturf as num, placeOnTop as num) +/datum/parsed_map/proc/build_coordinate(list/areaCache, list/model, turf/crds, no_changeturf as num, placeOnTop as num, turn_angle as num, annihilate_tiles = FALSE, swap_xy, invert_y, invert_x) var/index var/list/members = model[1] var/list/members_attributes = model[2] @@ -306,6 +394,8 @@ //The next part of the code assumes there's ALWAYS an /area AND a /turf on a given tile //first instance the /area and remove it from the members list index = members.len + if(annihilate_tiles && crds) + crds.empty(null) if(members[index] != /area/template_noop) var/atype = members[index] world.preloader_setup(members_attributes[index], atype)//preloader for assigning set variables on atom creation @@ -332,20 +422,20 @@ //instanciate the first /turf var/turf/T if(members[first_turf_index] != /turf/template_noop) - T = instance_atom(members[first_turf_index],members_attributes[first_turf_index],crds,no_changeturf,placeOnTop) + T = instance_atom(members[first_turf_index],members_attributes[first_turf_index],crds,no_changeturf,placeOnTop,turn_angle, swap_xy, invert_y, invert_x) if(T) //if others /turf are presents, simulates the underlays piling effect index = first_turf_index + 1 while(index <= members.len - 1) // Last item is an /area var/underlay = T.appearance - T = instance_atom(members[index],members_attributes[index],crds,no_changeturf,placeOnTop)//instance new turf + T = instance_atom(members[index],members_attributes[index],crds,no_changeturf,placeOnTop,turn_angle, swap_xy, invert_y, invert_x)//instance new turf T.underlays += underlay index++ //finally instance all remainings objects/mobs for(index in 1 to first_turf_index-1) - instance_atom(members[index],members_attributes[index],crds,no_changeturf,placeOnTop) + instance_atom(members[index],members_attributes[index],crds,no_changeturf,placeOnTop,turn_angle, swap_xy, invert_y, invert_x) //Restore initialization to the previous value SSatoms.map_loader_stop() @@ -354,8 +444,8 @@ //////////////// //Instance an atom at (x,y,z) and gives it the variables in attributes -/datum/parsed_map/proc/instance_atom(path,list/attributes, turf/crds, no_changeturf, placeOnTop) - world.preloader_setup(attributes, path) +/datum/parsed_map/proc/instance_atom(path,list/attributes, turf/crds, no_changeturf, placeOnTop, turn_angle = 0, swap_xy, invert_y, invert_x) + world.preloader_setup(attributes, path, turn_angle, invert_x, invert_y, swap_xy) if(crds) if(ispath(path, /turf)) @@ -471,6 +561,7 @@ // fallback: string return text -/datum/parsed_map/Destroy() - ..() - return QDEL_HINT_HARDDEL_NOW +/datum/parsed_map/vv_edit_var(var_name, var_value) + if(var_name == NAMEOF(src, dmmRegex) || var_name == NAMEOF(src, trimQuotesRegex) || var_name == NAMEOF(src, trimRegex)) + return FALSE + return ..() diff --git a/code/modules/mapping/ruins.dm b/code/modules/mapping/ruins.dm index 34ce6ef35c..193106c294 100644 --- a/code/modules/mapping/ruins.dm +++ b/code/modules/mapping/ruins.dm @@ -11,9 +11,17 @@ for(var/turf/check in get_affected_turfs(central_turf,1)) var/area/new_area = get_area(check) - if(!(istype(new_area, allowed_areas)) || check.flags_1 & NO_RUINS_1) - valid = FALSE + valid = FALSE // set to false before we check + if(check.flags_1 & NO_RUINS_1) break + for(var/type in allowed_areas) + if(istype(new_area, type)) // it's at least one of our types so it's whitelisted + valid = TRUE + break + + if(!valid) + break + if(!valid) continue @@ -51,7 +59,7 @@ new /obj/effect/landmark/ruin(center, src) return center -/proc/seedRuins(list/z_levels = null, budget = 0, whitelist = /area/space, list/potentialRuins) +/proc/seedRuins(list/z_levels = null, budget = 0, whitelist = list(/area/space), list/potentialRuins) if(!z_levels || !z_levels.len) WARNING("No Z levels provided - Not generating ruins") return diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index 30eed6c8f0..a45275e0c8 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -24,7 +24,9 @@ body_parts_covered = HEAD flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT + cold_protection = HEAD max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT + heat_protection = HEAD armor = list("melee" = 30, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50) resistance_flags = FIRE_PROOF diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm index c14aa097bb..439929b9c1 100644 --- a/code/modules/mining/equipment/regenerative_core.dm +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -65,7 +65,7 @@ qdel(src) /obj/item/organ/regenerative_core/on_life() - ..() + . = ..() if(owner.health < owner.crit_threshold) ui_action_click() @@ -75,31 +75,28 @@ apply_healing_core(target, user) /obj/item/organ/regenerative_core/proc/apply_healing_core(atom/target, mob/user) - if(ishuman(target)) - var/mob/living/carbon/human/H = target - if(inert) - to_chat(user, "[src] has decayed and can no longer be used to heal.") - return - else - if(H.stat == DEAD) - to_chat(user, "[src] are useless on the dead.") - return - if(H != user) - H.visible_message("[user] forces [H] to apply [src]... [H.p_they()] quickly regenerate all injuries!") - SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "other")) - else - to_chat(user, "You start to smear [src] on yourself. It feels and smells disgusting, but you feel amazingly refreshed in mere moments.") - SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self")) - if(AmBloodsucker(H)) - H.revive(full_heal = FALSE) - else - H.revive(full_heal = TRUE) - qdel(src) - user.log_message("[user] used [src] to heal [H]! Wake the fuck up, Samurai!", LOG_ATTACK, color="green") //Logging for 'old' style legion core use, when clicking on a sprite of yourself or another. + if(!user || !ishuman(target)) + return + var/mob/living/carbon/human/H = target + if(inert) + to_chat(user, "[src] has decayed and can no longer be used to heal.") + return + if(H.stat == DEAD) + to_chat(user, "[src] are useless on the dead.") + return + if(H != user) + H.visible_message("[user] forces [H] to apply [src]... Black tendrils entangle and reinforce [H.p_them()]!") + SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "other")) + else + to_chat(user, "You start to smear [src] on yourself. Disgusting tendrils hold you together and allow you to keep moving, but for how long?") + SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self")) + H.apply_status_effect(STATUS_EFFECT_REGENERATIVE_CORE) + qdel(src) + user.log_message("[user] used [src] to heal [H == user ? "[H.p_them()]self" : H]! Wake the fuck up, Samurai!", LOG_ATTACK, color="green") //Logging for 'old' style legion core use, when clicking on a sprite of yourself or another. /obj/item/organ/regenerative_core/attack_self(mob/user) //Knouli's first hack! Allows for the use of the core in hand rather than needing to click on the target, yourself, to selfheal. Its a rip of the proc just above - but skips on distance check and only uses 'user' rather than 'target' . = ..() - apply_healing_core(user) + apply_healing_core(user, user) /obj/item/organ/regenerative_core/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE) diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 56e1a04b95..9767ff3866 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -428,7 +428,7 @@ /obj/item/projectile/hook/on_hit(atom/target) . = ..() - if(ismovableatom(target)) + if(ismovable(target)) var/atom/movable/A = target if(A.anchored) return @@ -564,7 +564,7 @@ /obj/item/book_of_babel/attack_self(mob/user) to_chat(user, "You flip through the pages of the book, quickly and conveniently learning every language in existence. Somewhat less conveniently, the aging book crumbles to dust in the process. Whoops.") - user.grant_all_languages(omnitongue=TRUE) + user.grant_all_languages() new /obj/effect/decal/cleanable/ash(get_turf(user)) qdel(src) @@ -659,6 +659,7 @@ nemesis_factions = list("mining", "boss") var/transform_cooldown var/swiping = FALSE + var/bleed_stacks_per_hit = 3 total_mass = 2.75 total_mass_on = 5 @@ -701,12 +702,11 @@ user.changeNext_move(CLICK_CD_MELEE * 0.5) //when closed, it attacks very rapidly /obj/item/melee/transforming/cleaving_saw/nemesis_effects(mob/living/user, mob/living/target) - var/datum/status_effect/saw_bleed/B = target.has_status_effect(STATUS_EFFECT_SAWBLEED) + var/datum/status_effect/stacking/saw_bleed/B = target.has_status_effect(STATUS_EFFECT_SAWBLEED) if(!B) - if(!active) //This isn't in the above if-check so that the else doesn't care about active - target.apply_status_effect(STATUS_EFFECT_SAWBLEED) + target.apply_status_effect(STATUS_EFFECT_SAWBLEED,bleed_stacks_per_hit) else - B.add_bleed(B.bleed_buildup) + B.add_stacks(bleed_stacks_per_hit) /obj/item/melee/transforming/cleaving_saw/attack(mob/living/target, mob/living/carbon/human/user) if(!active || swiping || !target.density || get_turf(target) == get_turf(user)) @@ -833,13 +833,13 @@ force = 0 var/ghost_counter = ghost_check() - force = CLAMP((ghost_counter * 4), 0, 75) + force = clamp((ghost_counter * 4), 0, 75) user.visible_message("[user] strikes with the force of [ghost_counter] vengeful spirits!") return ..() /obj/item/melee/ghost_sword/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) var/ghost_counter = ghost_check() - final_block_chance += CLAMP((ghost_counter * 5), 0, 75) + final_block_chance += clamp((ghost_counter * 5), 0, 75) owner.visible_message("[owner] is protected by a ring of [ghost_counter] ghosts!") return ..() diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index d4703b8d94..c2ef59cc2b 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -37,16 +37,19 @@ /obj/machinery/mineral/ore_redemption/RefreshParts() var/ore_pickup_rate_temp = 15 var/point_upgrade_temp = 1 - var/ore_multiplier_temp = 1 + var/avg_bin_level = 0 + var/bins = 0 for(var/obj/item/stock_parts/matter_bin/B in component_parts) - ore_multiplier_temp = 0.65 + (0.35 * B.rating) + avg_bin_level = B.rating + bins++ for(var/obj/item/stock_parts/manipulator/M in component_parts) ore_pickup_rate_temp = 15 * M.rating for(var/obj/item/stock_parts/micro_laser/L in component_parts) point_upgrade_temp = 0.65 + (0.35 * L.rating) + avg_bin_level /= bins? bins : 1 + ore_multiplier = STANDARD_PART_LEVEL_ORE_COEFFICIENT(avg_bin_level) ore_pickup_rate = ore_pickup_rate_temp point_upgrade = point_upgrade_temp - ore_multiplier = round(ore_multiplier_temp, 0.01) /obj/machinery/mineral/ore_redemption/examine(mob/user) . = ..() diff --git a/code/modules/mining/machine_silo.dm b/code/modules/mining/machine_silo.dm index c0356dd1ab..09246abc46 100644 --- a/code/modules/mining/machine_silo.dm +++ b/code/modules/mining/machine_silo.dm @@ -116,7 +116,7 @@ GLOBAL_LIST_EMPTY(silo_access_logs) var/list/logs = GLOB.silo_access_logs[REF(src)] var/len = LAZYLEN(logs) var/num_pages = 1 + round((len - 1) / 30) - var/page = CLAMP(log_page, 1, num_pages) + var/page = clamp(log_page, 1, num_pages) if(num_pages > 1) for(var/i in 1 to num_pages) if(i == page) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 56ca94eedd..988197f04f 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -55,6 +55,7 @@ new /datum/data/mining_equipment("Spare Suit Voucher", /obj/item/suit_voucher, 2000), new /datum/data/mining_equipment("Super Resonator", /obj/item/resonator/upgraded, 2500), new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500), + new /datum/data/mining_equipment("Ice hiking boots", /obj/item/clothing/shoes/winterboots/ice_boots, 2500), new /datum/data/mining_equipment("Luxury Shelter Capsule", /obj/item/survivalcapsule/luxury, 3000), new /datum/data/mining_equipment("Luxury Bar Capsule", /obj/item/survivalcapsule/luxuryelite, 10000), new /datum/data/mining_equipment("Nanotrasen Minebot", /mob/living/simple_animal/hostile/mining_drone, 800), @@ -239,7 +240,7 @@ prize_list += list( new /datum/data/mining_equipment("Extra Id", /obj/item/card/id/mining, 250), new /datum/data/mining_equipment("Science Goggles", /obj/item/clothing/glasses/science, 250), - new /datum/data/mining_equipment("Monkey Cube", /obj/item/reagent_containers/food/snacks/monkeycube, 300), + new /datum/data/mining_equipment("Monkey Cube", /obj/item/reagent_containers/food/snacks/cube/monkey, 300), new /datum/data/mining_equipment("Toolbelt", /obj/item/storage/belt/utility, 350), new /datum/data/mining_equipment("Royal Cape of the Liberator", /obj/item/bedsheet/rd/royal_cape, 500), new /datum/data/mining_equipment("Grey Slime Extract", /obj/item/slime_extract/grey, 1000), diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index c7c34b0389..e85d4a2e75 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -70,7 +70,6 @@ singular_name = "uranium ore chunk" points = 30 custom_materials = list(/datum/material/uranium=MINERAL_MATERIAL_AMOUNT) - material_flags = MATERIAL_NO_EFFECTS refined_type = /obj/item/stack/sheet/mineral/uranium /obj/item/stack/ore/iron @@ -319,7 +318,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ throwforce = 2 w_class = WEIGHT_CLASS_TINY custom_materials = list(/datum/material/iron = 400) - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS var/string_attached var/list/sideslist = list("heads","tails") var/cooldown = 0 @@ -364,12 +363,11 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ /obj/item/coin/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/CC = W if(string_attached) to_chat(user, "There already is a string attached to this coin!") return - if (CC.use(1)) + if (W.use_tool(src, user, 0, 1, max_level = JOB_SKILL_BASIC)) add_overlay("coin_string_overlay") string_attached = 1 to_chat(user, "You attach a string to the coin.") diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 35b1a69761..f7e1f24b63 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -392,6 +392,8 @@ character.update_parallax_teleport() + job.standard_assign_skills(character.mind) + SSticker.minds += character.mind var/mob/living/carbon/human/humanc diff --git a/code/modules/mob/dead/new_player/preferences_setup.dm b/code/modules/mob/dead/new_player/preferences_setup.dm index b669e30a06..9a0d9f9242 100644 --- a/code/modules/mob/dead/new_player/preferences_setup.dm +++ b/code/modules/mob/dead/new_player/preferences_setup.dm @@ -18,16 +18,10 @@ hair_color = random_short_color() facial_hair_color = hair_color eye_color = random_eye_color() - horn_color = "85615a" - wing_color = "fff" if(!pref_species) var/rando_race = pick(GLOB.roundstart_races) pref_species = new rando_race() - features = random_features(pref_species?.id) - if(gender == MALE || gender != FEMALE) - features["body_model"] = gender - else if(gender == PLURAL) - features["body_model"] = pick(MALE,FEMALE) + features = random_features(pref_species?.id, gender) age = rand(AGE_MIN,AGE_MAX) /datum/preferences/proc/update_preview_icon(equip_job = TRUE) diff --git a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm index ab278b2e82..6514cb4f80 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm @@ -16,6 +16,7 @@ from doing this unless you absolutely know what you are doing, and have defined a conversion in savefile.dm */ + /proc/init_sprite_accessory_subtypes(prototype, list/L, list/male, list/female, roundstart = FALSE, skip_prototype = TRUE)//Roundstart argument builds a specific list for roundstart parts where some parts may be locked if(!istype(L)) L = list() @@ -55,19 +56,19 @@ var/gender = NEUTER //Determines if the accessory will be skipped or included in random hair generations var/gender_specific //Something that can be worn by either gender, but looks different on each var/color_src = MUTCOLORS //Currently only used by mutantparts so don't worry about hair and stuff. This is the source that this accessory will get its color from. Default is MUTCOLOR, but can also be HAIR, FACEHAIR, EYECOLOR and 0 if none. - var/hasinner //Decides if this sprite has an "inner" part, such as the fleshy parts on ears. var/locked = FALSE //Is this part locked from roundstart selection? Used for parts that apply effects var/dimension_x = 32 var/dimension_y = 32 var/center = FALSE //Should we center the sprite? + var/list/relevant_layers //list of layers that this accessory uses. As of now only used in species.handle_mutant_bodyparts(), but that's where most sprite accessories are anyway. + var/mutant_part_string //Also used in species.handle_mutant_bodyparts() to generate the overlay icon state. + var/alpha_mask_state //Special / holdover traits for Citadel specific sprites. var/extra = FALSE var/extra_color_src = MUTCOLORS2 //The color source for the extra overlay. - var/extra_icon = 'modular_citadel/icons/mob/mam_tails.dmi' var/extra2 = FALSE var/extra2_color_src = MUTCOLORS3 - var/extra2_icon = 'modular_citadel/icons/mob/mam_tails.dmi' //for snowflake/donor specific sprites var/list/ckeys_allowed diff --git a/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.dm b/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.dm index 6c0659f851..c8e7aca26d 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.dm @@ -4,6 +4,8 @@ *******************************************/ /datum/sprite_accessory/xeno_dorsal icon = 'modular_citadel/icons/mob/xeno_parts_greyscale.dmi' + mutant_part_string = "xenodorsal" + relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER) /datum/sprite_accessory/xeno_dorsal/standard name = "Standard" @@ -22,9 +24,12 @@ *******************************************/ /datum/sprite_accessory/xeno_tail icon = 'modular_citadel/icons/mob/xeno_parts_greyscale.dmi' + mutant_part_string = "tail" + relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER) /datum/sprite_accessory/xeno_tail/none name = "None" + relevant_layers = null /datum/sprite_accessory/xeno_tail/standard name = "Xenomorph Tail" @@ -35,6 +40,8 @@ *******************************************/ /datum/sprite_accessory/xeno_head icon = 'modular_citadel/icons/mob/xeno_parts_greyscale.dmi' + mutant_part_string = "xhead" + relevant_layers = list(BODY_ADJ_LAYER) /datum/sprite_accessory/xeno_head/standard name = "Standard" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm index 8f043125b2..9950f0d76a 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm @@ -4,10 +4,12 @@ /datum/sprite_accessory/body_markings icon = 'icons/mob/mutant_bodyparts.dmi' + relevant_layers = list(BODY_ADJ_LAYER) /datum/sprite_accessory/body_markings/none name = "None" icon_state = "none" + relevant_layers = null /datum/sprite_accessory/body_markings/dtiger name = "Dark Tiger Body" @@ -45,6 +47,7 @@ icon_state = "none" ckeys_allowed = list("yousshouldnteverbeseeingthisyoumeme") icon = 'modular_citadel/icons/mob/markings_notmammals.dmi' + relevant_layers = null /datum/sprite_accessory/mam_body_markings/plain name = "Plain" @@ -219,10 +222,12 @@ /datum/sprite_accessory/insect_fluff icon = 'icons/mob/wings.dmi' color_src = 0 + relevant_layers = list(BODY_FRONT_LAYER) /datum/sprite_accessory/insect_fluff/none name = "None" icon_state = "none" + relevant_layers = null /datum/sprite_accessory/insect_fluff/plain name = "Plain" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/caps.dm b/code/modules/mob/dead/new_player/sprite_accessories/caps.dm index debb4865ba..822fcf960d 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/caps.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/caps.dm @@ -1,7 +1,8 @@ datum/sprite_accessory/caps icon = 'icons/mob/mutant_bodyparts.dmi' color_src = HAIR + relevant_layers = list(BODY_ADJ_LAYER) /datum/sprite_accessory/caps/round name = "Round" - icon_state = "round" \ No newline at end of file + icon_state = "round" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm index c91bd633a5..bc269ccf62 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm @@ -1,9 +1,12 @@ /datum/sprite_accessory/ears icon = 'icons/mob/mutant_bodyparts.dmi' + mutant_part_string = "ears" + relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER) /datum/sprite_accessory/ears/none name = "None" icon_state = "none" + relevant_layers = null /****************************************** *************** Human Ears **************** @@ -29,9 +32,10 @@ /datum/sprite_accessory/ears/human/bigwolfinner name = "Big Wolf (ALT)" icon_state = "bigwolfinner" - hasinner = 1 icon = 'modular_citadel/icons/mob/mam_ears.dmi' color_src = MATRIXED + extra = TRUE + extra_color_src = NONE /datum/sprite_accessory/ears/human/bigwolfdark name = "Dark Big Wolf" @@ -42,15 +46,17 @@ /datum/sprite_accessory/ears/human/bigwolfinnerdark name = "Dark Big Wolf (ALT)" icon_state = "bigwolfinnerdark" - hasinner = 1 icon = 'modular_citadel/icons/mob/mam_ears.dmi' color_src = MATRIXED + extra = TRUE + extra_color_src = NONE /datum/sprite_accessory/ears/cat name = "Cat" icon_state = "cat" - hasinner = 1 color_src = HAIR + extra = TRUE + extra_color_src = NONE /datum/sprite_accessory/ears/human/cow name = "Cow" @@ -172,10 +178,13 @@ /datum/sprite_accessory/mam_ears icon = 'modular_citadel/icons/mob/mam_ears.dmi' color_src = MATRIXED + mutant_part_string = "ears" + relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER) /datum/sprite_accessory/mam_ears/none name = "None" icon_state = "none" + relevant_layers = null /datum/sprite_accessory/mam_ears/axolotl name = "Axolotl" @@ -196,7 +205,8 @@ /datum/sprite_accessory/mam_ears/bigwolfinner name = "Big Wolf (ALT)" icon_state = "bigwolfinner" - hasinner = 1 + extra = TRUE + extra_color_src = NONE /datum/sprite_accessory/mam_ears/bigwolfdark name = "Dark Big Wolf" @@ -205,13 +215,16 @@ /datum/sprite_accessory/mam_ears/bigwolfinnerdark name = "Dark Big Wolf (ALT)" icon_state = "bigwolfinnerdark" - hasinner = 1 + extra = TRUE + extra_color_src = NONE /datum/sprite_accessory/mam_ears/cat name = "Cat" icon_state = "cat" - hasinner = 1 + icon = 'icons/mob/mutant_bodyparts.dmi' color_src = HAIR + extra = TRUE + extra_color_src = NONE /datum/sprite_accessory/mam_ears/catbig name = "Cat, Big" @@ -309,4 +322,4 @@ /datum/sprite_accessory/mam_ears/bunny name = "Bunny" - icon_state = "bunny" \ No newline at end of file + icon_state = "bunny" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/frills.dm b/code/modules/mob/dead/new_player/sprite_accessories/frills.dm index 93c4af6df0..0aaec309a4 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/frills.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/frills.dm @@ -1,9 +1,11 @@ /datum/sprite_accessory/frills icon = 'icons/mob/mutant_bodyparts.dmi' + relevant_layers = list(BODY_ADJ_LAYER) /datum/sprite_accessory/frills/none name = "None" icon_state = "none" + relevant_layers = null /datum/sprite_accessory/frills/simple name = "Simple" @@ -15,4 +17,4 @@ /datum/sprite_accessory/frills/aquatic name = "Aquatic" - icon_state = "aqua" \ No newline at end of file + icon_state = "aqua" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/horns.dm b/code/modules/mob/dead/new_player/sprite_accessories/horns.dm index a630ead7b3..6126b6c04b 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/horns.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/horns.dm @@ -1,10 +1,12 @@ /datum/sprite_accessory/horns icon = 'icons/mob/mutant_bodyparts.dmi' color_src = HORNCOLOR + relevant_layers = list(BODY_ADJ_LAYER) /datum/sprite_accessory/horns/none name = "None" icon_state = "none" + relevant_layers = null /datum/sprite_accessory/horns/simple name = "Simple" @@ -33,4 +35,4 @@ /datum/sprite_accessory/horns/guilmon name = "Guilmon" - icon_state = "guilmon" \ No newline at end of file + icon_state = "guilmon" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm b/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm index d47607f6fd..110ac69201 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm @@ -5,6 +5,7 @@ /datum/sprite_accessory/screen icon = 'modular_citadel/icons/mob/ipc_screens.dmi' color_src = null + relevant_layers = list(BODY_ADJ_LAYER) /datum/sprite_accessory/screen/blank name = "Blank" @@ -132,6 +133,7 @@ /datum/sprite_accessory/antenna icon = 'modular_citadel/icons/mob/ipc_antennas.dmi' color_src = MUTCOLORS2 + relevant_layers = list(BODY_ADJ_LAYER) recommended_species = list("ipc") /datum/sprite_accessory/antenna/none diff --git a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm index fe154ffeec..cbb38a3a6a 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm @@ -21,29 +21,42 @@ /datum/sprite_accessory/taur icon = 'modular_citadel/icons/mob/mam_taur.dmi' - extra_icon = 'modular_citadel/icons/mob/mam_taur.dmi' - extra = TRUE - extra2_icon = 'modular_citadel/icons/mob/mam_taur.dmi' - extra2 = TRUE center = TRUE dimension_x = 64 - var/taur_mode = NONE //Must be a single specific tauric suit variation bitflag. Don't do FLAG_1|FLAG_2 - var/alt_taur_mode = NONE //Same as above. color_src = MATRIXED recommended_species = list("human", "lizard", "insect", "mammal", "xeno", "jelly", "slimeperson", "podweak") + relevant_layers = list(BODY_ADJ_UPPER_LAYER, BODY_FRONT_LAYER) + var/taur_mode = NONE //Must be a single specific tauric suit variation bitflag. Don't do FLAG_1|FLAG_2 + var/alt_taur_mode = NONE //Same as above. + var/hide_legs = USE_QUADRUPED_CLIP_MASK + +/datum/sprite_accessory/taur/New() + switch(hide_legs) + if(USE_QUADRUPED_CLIP_MASK) + alpha_mask_state = "taur_mask_def" + if(USE_SNEK_CLIP_MASK) + alpha_mask_state = "taur_mask_naga" /datum/sprite_accessory/taur/none - dimension_x = 32 - center = FALSE name = "None" icon_state = "None" + dimension_x = 32 + center = FALSE recommended_species = null + relevant_layers = null + hide_legs = FALSE /datum/sprite_accessory/taur/cow name = "Cow" icon_state = "cow" taur_mode = STYLE_HOOF_TAURIC alt_taur_mode = STYLE_PAW_TAURIC + color_src = MUTCOLORS + +/datum/sprite_accessory/taur/cow/spotted + name = "Cow (Spotted)" + icon_state = "cow_spotted" + color_src = MATRIXED /datum/sprite_accessory/taur/deer name = "Deer" @@ -56,27 +69,21 @@ name = "Drake" icon_state = "drake" taur_mode = STYLE_PAW_TAURIC + color_src = MUTCOLORS + extra = TRUE /datum/sprite_accessory/taur/drider name = "Drider" icon_state = "drider" color_src = MUTCOLORS + extra = TRUE /datum/sprite_accessory/taur/eevee name = "Eevee" icon_state = "eevee" taur_mode = STYLE_PAW_TAURIC color_src = MUTCOLORS - -/datum/sprite_accessory/taur/fox - name = "Fox" - icon_state = "fox" - taur_mode = STYLE_PAW_TAURIC - -/datum/sprite_accessory/taur/husky - name = "Husky" - icon_state = "husky" - taur_mode = STYLE_PAW_TAURIC + extra = TRUE /datum/sprite_accessory/taur/horse name = "Horse" @@ -84,15 +91,11 @@ taur_mode = STYLE_HOOF_TAURIC alt_taur_mode = STYLE_PAW_TAURIC -/datum/sprite_accessory/taur/lab - name = "Lab" - icon_state = "lab" - taur_mode = STYLE_PAW_TAURIC - /datum/sprite_accessory/taur/naga name = "Naga" icon_state = "naga" taur_mode = STYLE_SNEK_TAURIC + hide_legs = USE_SNEK_CLIP_MASK /datum/sprite_accessory/taur/otie name = "Otie" @@ -104,29 +107,26 @@ icon_state = "pede" taur_mode = STYLE_PAW_TAURIC color_src = MUTCOLORS - -/datum/sprite_accessory/taur/panther - name = "Panther" - icon_state = "panther" - taur_mode = STYLE_PAW_TAURIC - -/datum/sprite_accessory/taur/shepherd - name = "Shepherd" - icon_state = "shepherd" - taur_mode = STYLE_PAW_TAURIC + extra = TRUE + extra2 = TRUE /datum/sprite_accessory/taur/tentacle name = "Tentacle" icon_state = "tentacle" taur_mode = STYLE_SNEK_TAURIC color_src = MUTCOLORS + hide_legs = USE_SNEK_CLIP_MASK -/datum/sprite_accessory/taur/tiger - name = "Tiger" - icon_state = "tiger" +/datum/sprite_accessory/taur/canine + name = "Canine" + icon_state = "canine" taur_mode = STYLE_PAW_TAURIC + color_src = MUTCOLORS + extra = TRUE -/datum/sprite_accessory/taur/wolf - name = "Wolf" - icon_state = "wolf" +/datum/sprite_accessory/taur/feline + name = "Feline" + icon_state = "feline" taur_mode = STYLE_PAW_TAURIC + color_src = MUTCOLORS + extra = TRUE diff --git a/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm b/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm index c016e9b119..60e8ed1007 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm @@ -1,5 +1,7 @@ /datum/sprite_accessory/snouts icon = 'icons/mob/mutant_bodyparts.dmi' + mutant_part_string = "snout" + relevant_layers = list(BODY_ADJ_LAYER, BODY_FRONT_LAYER) /datum/sprite_accessory/snouts/sharp name = "Sharp" @@ -152,11 +154,14 @@ color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_snouts.dmi' recommended_species = list("mammal", "slimeperson", "insect", "podweak") + mutant_part_string = "snout" + relevant_layers = list(BODY_ADJ_LAYER, BODY_FRONT_LAYER) /datum/sprite_accessory/mam_snouts/none name = "None" icon_state = "none" recommended_species = null + relevant_layers = null /datum/sprite_accessory/mam_snouts/bird name = "Beak" @@ -383,4 +388,4 @@ /datum/sprite_accessory/mam_snouts/froundlight name = "Round + Light (Top)" icon_state = "froundlight" - color_src = MUTCOLORS \ No newline at end of file + color_src = MUTCOLORS diff --git a/code/modules/mob/dead/new_player/sprite_accessories/pines.dm b/code/modules/mob/dead/new_player/sprite_accessories/spines.dm similarity index 87% rename from code/modules/mob/dead/new_player/sprite_accessories/pines.dm rename to code/modules/mob/dead/new_player/sprite_accessories/spines.dm index 4ccbc3d9ea..54749d5ea9 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/pines.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/spines.dm @@ -1,12 +1,15 @@ /datum/sprite_accessory/spines icon = 'icons/mob/mutant_bodyparts.dmi' + relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER) /datum/sprite_accessory/spines_animated icon = 'icons/mob/mutant_bodyparts.dmi' + relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER) /datum/sprite_accessory/spines/none name = "None" icon_state = "none" + relevant_layers = null /datum/sprite_accessory/spines_animated/none name = "None" @@ -50,4 +53,4 @@ /datum/sprite_accessory/spines_animated/aqautic name = "Aquatic" - icon_state = "aqua" \ No newline at end of file + icon_state = "aqua" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm index 90980743e1..2bb0d6ba77 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm @@ -1,8 +1,12 @@ /datum/sprite_accessory/tails icon = 'icons/mob/mutant_bodyparts.dmi' + mutant_part_string = "tail" + relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER) /datum/sprite_accessory/tails_animated icon = 'icons/mob/mutant_bodyparts.dmi' + mutant_part_string = "tailwag" + relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER) /****************************************** ************* Lizard Tails **************** @@ -43,10 +47,12 @@ /datum/sprite_accessory/tails/lizard/none name = "None" icon_state = "None" + relevant_layers = null /datum/sprite_accessory/tails_animated/lizard/none name = "None" icon_state = "None" + relevant_layers = null /datum/sprite_accessory/tails/lizard/axolotl name = "Axolotl" @@ -85,10 +91,12 @@ /datum/sprite_accessory/tails/human/none name = "None" icon_state = "none" + relevant_layers = null /datum/sprite_accessory/tails_animated/human/none name = "None" icon_state = "none" + relevant_layers = null /datum/sprite_accessory/tails/human/ailurus name = "Red Panda" @@ -502,20 +510,25 @@ color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_tails.dmi' recommended_species = list("mammal", "slimeperson", "podweak", "felinid", "insect") + mutant_part_string = "tail" + relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER) /datum/sprite_accessory/mam_tails/none name = "None" icon_state = "none" recommended_species = null + relevant_layers = null /datum/sprite_accessory/mam_tails_animated color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_tails.dmi' + mutant_part_string = "tailwag" + relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER) /datum/sprite_accessory/mam_tails_animated/none name = "None" icon_state = "none" - color_src = MATRIXED + relevant_layers = null /datum/sprite_accessory/mam_tails/ailurus name = "Red Panda" @@ -576,7 +589,7 @@ /datum/sprite_accessory/mam_tails_animated/catbig name = "Cat, Big" icon_state = "catbig" - + /datum/sprite_accessory/mam_tails/twocat name = "Cat, Double" icon_state = "twocat" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/wings.dm b/code/modules/mob/dead/new_player/sprite_accessories/wings.dm index 9c1eb6a3fa..34767a10f1 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/wings.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/wings.dm @@ -3,9 +3,11 @@ /datum/sprite_accessory/wings/none name = "None" icon_state = "none" + relevant_layers = null /datum/sprite_accessory/wings_open icon = 'icons/mob/wings.dmi' + relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER) /datum/sprite_accessory/wings_open/angel name = "Angel" @@ -17,6 +19,7 @@ /datum/sprite_accessory/wings icon = 'icons/mob/wings.dmi' + relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER) /datum/sprite_accessory/wings/angel name = "Angel" @@ -32,10 +35,13 @@ /datum/sprite_accessory/deco_wings icon = 'icons/mob/wings.dmi' color_src = WINGCOLOR + mutant_part_string = "insect_wings" + relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER) /datum/sprite_accessory/deco_wings/none name = "None" icon_state = "none" + relevant_layers = null /datum/sprite_accessory/deco_wings/angel name = "Angel" @@ -44,6 +50,7 @@ dimension_x = 46 center = TRUE dimension_y = 34 + relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER) /datum/sprite_accessory/deco_wings/bat name = "Bat" @@ -130,10 +137,12 @@ /datum/sprite_accessory/insect_wings icon = 'icons/mob/wings.dmi' color_src = WINGCOLOR + relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER) /datum/sprite_accessory/insect_wings/none name = "None" icon_state = "none" + relevant_layers = null /datum/sprite_accessory/insect_wings/bat name = "Bat" @@ -231,10 +240,12 @@ /datum/sprite_accessory/insect_markings // Extra markings for insects ported from tg. icon = 'icons/mob/insect_markings.dmi' color_src = null + relevant_layers = list(BODY_ADJ_LAYER) /datum/sprite_accessory/insect_markings/none name = "None" icon_state = "none" + relevant_layers = null /datum/sprite_accessory/insect_markings/reddish name = "Reddish" @@ -290,4 +301,4 @@ /datum/sprite_accessory/insect_markings/witchwing name = "Witch Wing" - icon_state = "witchwing" \ No newline at end of file + icon_state = "witchwing" diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index b2d02d8fa2..b8e56f3d7c 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -570,7 +570,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp views |= i var/new_view = input("Choose your new view", "Modify view range", 7) as null|anything in views if(new_view) - client.change_view(CLAMP(new_view, 7, max_view)) + client.change_view(clamp(new_view, 7, max_view)) else client.change_view(CONFIG_GET(string/default_view)) @@ -937,3 +937,20 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp spawners_menu = new(src) spawners_menu.ui_interact(src) + +/mob/dead/observer/verb/game_info() + set name = "Game info" + set desc = "Shows various info relating to the game mode, antagonists etc." + set category = "Ghost" + if(!started_as_observer && can_reenter_corpse) + to_chat(src, "You cannot see this info unless you are an observer or you've chosen Do Not Resuscitate!") + return + var/list/stuff = list("[SSticker.mode.name]") + stuff += "Antagonists:\n" + for(var/datum/antagonist/A in GLOB.antagonists) + if(A.owner) + stuff += "[A.owner] the [A.name]" + var/ghost_info = SSticker.mode.ghost_info() + if(ghost_info) + stuff += ghost_info + to_chat(src,stuff.Join("\n")) diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm index 8712f39531..c5c7350b47 100644 --- a/code/modules/mob/dead/observer/say.dm +++ b/code/modules/mob/dead/observer/say.dm @@ -33,6 +33,9 @@ else to_follow = V.source var/link = FOLLOW_LINK(src, to_follow) + // Create map text prior to modifying message for goonchat + if (client?.prefs.chat_on_map && (client.prefs.see_chat_non_mob || ismob(speaker))) + create_chat_message(speaker, message_language, raw_message, spans, message_mode) // Recompose the message, because it's scrambled by default message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode, FALSE, source) to_chat(src, "[link] [message]") diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 9f7d2067de..fad3a7e534 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -333,7 +333,8 @@ I.moveToNullspace() else I.forceMove(newloc) - I.dropped(src) + if(I.dropped(src) == ITEM_RELOCATED_BY_DROPPED) + return FALSE return TRUE //Outdated but still in use apparently. This should at least be a human proc. diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index f32d84ae73..90621ecd3f 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -229,7 +229,7 @@ var/adjusted_amount if(amount >= 0 && maximum) var/brainloss = get_brain_damage() - var/new_brainloss = CLAMP(brainloss + amount, 0, maximum) + var/new_brainloss = clamp(brainloss + amount, 0, maximum) if(brainloss > new_brainloss) //brainloss is over the cap already return 0 adjusted_amount = new_brainloss - brainloss @@ -245,23 +245,17 @@ . = adjusted_amount */ -/obj/item/organ/brain/on_life() - if(damage >= BRAIN_DAMAGE_DEATH) //rip - to_chat(owner, "The last spark of life in your brain fizzles out...") - owner.death() - brain_death = TRUE - return - ..() - -/obj/item/organ/brain/on_death() - if(damage <= BRAIN_DAMAGE_DEATH) //rip - brain_death = FALSE - ..() - - /obj/item/organ/brain/applyOrganDamage(var/d, var/maximum = maxHealth) - ..() - + . = ..() + if(!. || !owner) + return + if(damage >= BRAIN_DAMAGE_DEATH) //rip + if(owner.stat != DEAD) + to_chat(owner, "The last spark of life in your brain fizzles out...") + owner.death() + brain_death = TRUE + else + brain_death = FALSE /obj/item/organ/brain/check_damage_thresholds(mob/M) . = ..() diff --git a/code/modules/mob/living/brain/say.dm b/code/modules/mob/living/brain/say.dm index b7d7e1d7fc..7f6d5215a0 100644 --- a/code/modules/mob/living/brain/say.dm +++ b/code/modules/mob/living/brain/say.dm @@ -25,10 +25,3 @@ /mob/living/brain/treat_message(message) message = capitalize(message) return message - -/mob/living/brain/could_speak_in_language(datum/language/dt) - if(istype(container, /obj/item/mmi/posibrain/soul_vessel)) - // soul vessels can only speak ratvarian. - . = ispath(dt, /datum/language/ratvar) - else - . = ..() diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index bbe9a89a37..a3600e6827 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -12,6 +12,13 @@ bubble_icon = "alien" type_of_meat = /obj/item/reagent_containers/food/snacks/meat/slab/xeno + /// How much brute damage without armor piercing they do against mobs in melee + var/meleeSlashHumanPower = 20 + /// How much power they have for DefaultCombatKnockdown when attacking humans + var/meleeKnockdownPower = 100 + /// How much brute damage they do to simple animals + var/meleeSlashSAPower = 35 + var/obj/item/card/id/wear_id = null // Fix for station bounced radios -- Skie var/has_fine_manipulation = 0 var/move_delay_add = 0 // movement delay to add diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm index 183bf07e8c..072c4e0231 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm @@ -4,6 +4,7 @@ maxHealth = 125 health = 125 icon_state = "aliend" + meleeKnockdownPower = 80 /mob/living/carbon/alien/humanoid/drone/Initialize() AddAbility(new/obj/effect/proc_holder/alien/evolve(null)) diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index faea8e9bbc..0ce8482ca1 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -1,9 +1,12 @@ /mob/living/carbon/alien/humanoid/hunter name = "alien hunter" caste = "h" - maxHealth = 125 - health = 125 + maxHealth = 170 + health = 170 icon_state = "alienh" + meleeKnockdownPower = 75 + meleeSlashHumanPower = 20 + meleeSlashSAPower = 45 var/obj/screen/leap_icon = null /mob/living/carbon/alien/humanoid/hunter/create_internal_organs() @@ -63,11 +66,12 @@ if(hit_atom) if(isliving(hit_atom)) var/mob/living/L = hit_atom - if(L.run_block(src, 0, "the [name]", ATTACK_TYPE_TACKLE, 0, src) & BLOCK_SUCCESS) + if(L.mob_run_block(src, 0, "the [name]", ATTACK_TYPE_TACKLE, 0, src, null, null) & BLOCK_SUCCESS) DefaultCombatKnockdown(40, 1, 1) else L.visible_message("[src] pounces on [L]!", "[src] pounces on you!") L.DefaultCombatKnockdown(100) + L.Stagger(4 SECONDS) sleep(2)//Runtime prevention (infinite bump() calls on hulks) step_towards(src,L) diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm index 7c6443cfae..67cf6f7d25 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm @@ -1,9 +1,10 @@ /mob/living/carbon/alien/humanoid/sentinel name = "alien sentinel" caste = "s" - maxHealth = 150 - health = 150 + maxHealth = 140 + health = 140 icon_state = "aliens" + meleeSlashHumanPower = 15 /mob/living/carbon/alien/humanoid/sentinel/Initialize() AddAbility(new /obj/effect/proc_holder/alien/sneak) diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 048b5062ec..c813ce40f0 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -112,7 +112,6 @@ return A return FALSE - /mob/living/carbon/alien/humanoid/check_breath(datum/gas_mixture/breath) if(breath && breath.total_moles() > 0 && !sneaking) playsound(get_turf(src), pick('sound/voice/lowHiss2.ogg', 'sound/voice/lowHiss3.ogg', 'sound/voice/lowHiss4.ogg'), 50, 0, -5) diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm index 1d613db07a..5ebf6210d0 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm @@ -1,4 +1,3 @@ - /mob/living/carbon/alien/humanoid/grabbedby(mob/living/carbon/user, supress_message = 0) if(user == src && pulling && grab_state >= GRAB_AGGRESSIVE && !pulling.anchored && iscarbon(pulling)) devour_mob(pulling, devour_time = 60) diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm index fd6a73ae7b..67c9285377 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/life.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm @@ -1,5 +1,3 @@ - - /mob/living/carbon/alien/humanoid/proc/adjust_body_temperature(current, loc_temp, boost) var/temperature = current var/difference = abs(current-loc_temp) //get difference diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 6141a97c12..1200220ce4 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -11,6 +11,10 @@ pressure_resistance = 200 //Because big, stompy xenos should not be blown around like paper. butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/xeno = 20, /obj/item/stack/sheet/animalhide/xeno = 3) + meleeKnockdownPower = 125 + meleeSlashHumanPower = 30 + meleeSlashSAPower = 60 + var/alt_inhands_file = 'icons/mob/alienqueen.dmi' /mob/living/carbon/alien/humanoid/royal/can_inject(mob/user, error_msg, target_zone, penetrate_thick = FALSE, bypass_immunity = FALSE) diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index fb26a40350..93050a4f9d 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -6,6 +6,7 @@ mob_size = MOB_SIZE_SMALL density = FALSE hud_type = /datum/hud/larva + mouse_opacity = MOUSE_OPACITY_OPAQUE maxHealth = 25 health = 25 diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm index b57f9653a9..8485fece85 100644 --- a/code/modules/mob/living/carbon/alien/organs.dm +++ b/code/modules/mob/living/carbon/alien/organs.dm @@ -77,6 +77,9 @@ alien_powers = list(/obj/effect/proc_holder/alien/transfer) /obj/item/organ/alien/plasmavessel/on_life() + . = ..() + if(!.) + return //If there are alien weeds on the ground then heal if needed or give some plasma if(locate(/obj/structure/alien/weeds) in owner.loc) if(owner.health >= owner.maxHealth) 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 5352329f99..0e8764a372 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -23,6 +23,8 @@ /obj/item/organ/body_egg/alien_embryo/on_life() . = ..() + if(!owner) + return switch(stage) if(2, 3) if(prob(2)) diff --git a/code/modules/mob/living/carbon/alien/status_procs.dm b/code/modules/mob/living/carbon/alien/status_procs.dm index 4a63a72686..71d61cab25 100644 --- a/code/modules/mob/living/carbon/alien/status_procs.dm +++ b/code/modules/mob/living/carbon/alien/status_procs.dm @@ -20,5 +20,5 @@ /mob/living/carbon/alien/AdjustStun(amount, updating = 1, ignore_canstun = 0) . = ..() if(!.) - move_delay_add = CLAMP(move_delay_add + round(amount/2), 0, 10) + move_delay_add = clamp(move_delay_add + round(amount/2), 0, 10) */ diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 25f0cb5b89..821b432ea5 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -7,6 +7,7 @@ update_body_parts() //to update the carbon's new bodyparts appearance GLOB.carbon_list += src blood_volume = (BLOOD_VOLUME_NORMAL * blood_ratio) + add_movespeed_modifier(/datum/movespeed_modifier/carbon_crawling) /mob/living/carbon/Destroy() //This must be done first, so the mob ghosts correctly before DNA etc is nulled @@ -98,6 +99,8 @@ /mob/living/carbon/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) . = ..() var/hurt = TRUE + if(GetComponent(/datum/component/tackler)) + return if(throwingdatum?.thrower && iscyborg(throwingdatum.thrower)) var/mob/living/silicon/robot/R = throwingdatum.thrower if(!R.emagged) @@ -196,7 +199,7 @@ to_chat(src, "You set [I] down gently on the ground.") return - adjustStaminaLossBuffered(I.getweight()*2)//CIT CHANGE - throwing items shall be more tiring than swinging em. Doubly so. + adjustStaminaLossBuffered(I.getweight(src, STAM_COST_THROW_MULT, SKILL_THROW_STAM_COST)) if(thrown_thing) visible_message("[src] has thrown [thrown_thing].") @@ -537,10 +540,16 @@ return 1 /mob/living/carbon/proc/spew_organ(power = 5, amt = 1) + var/list/spillable_organs = list() + for(var/A in internal_organs) + var/obj/item/organ/O = A + if(!(O.organ_flags & ORGAN_NO_DISMEMBERMENT)) + spillable_organs += O for(var/i in 1 to amt) - if(!internal_organs.len) + if(!spillable_organs.len) break //Guess we're out of organs! - var/obj/item/organ/guts = pick(internal_organs) + var/obj/item/organ/guts = pick(spillable_organs) + spillable_organs -= guts var/turf/T = get_turf(src) guts.Remove() guts.forceMove(T) @@ -548,6 +557,7 @@ guts.throw_at(throw_target, power, 4, src) + /mob/living/carbon/fully_replace_character_name(oldname,newname) ..() if(dna) @@ -572,9 +582,9 @@ become_husk("burn") med_hud_set_health() if(stat == SOFT_CRIT) - add_movespeed_modifier(MOVESPEED_ID_CARBON_SOFTCRIT, TRUE, multiplicative_slowdown = SOFTCRIT_ADD_SLOWDOWN) + add_movespeed_modifier(/datum/movespeed_modifier/carbon_softcrit) else - remove_movespeed_modifier(MOVESPEED_ID_CARBON_SOFTCRIT, TRUE) + remove_movespeed_modifier(/datum/movespeed_modifier/carbon_softcrit) /mob/living/carbon/update_stamina() var/stam = getStaminaLoss() diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 9c4f0316b7..9a4f905dd1 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -9,7 +9,7 @@ if(istype(src.glasses, /obj/item/clothing/glasses)) //glasses var/obj/item/clothing/glasses/GFP = src.glasses number += GFP.flash_protect - + if(istype(src.wear_mask, /obj/item/clothing/mask)) //mask var/obj/item/clothing/mask/MFP = src.wear_mask number += MFP.flash_protect @@ -77,24 +77,22 @@ SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "embedded", /datum/mood_event/embedded) /mob/living/carbon/attacked_by(obj/item/I, mob/living/user) - //CIT CHANGES START HERE - combatmode and resting checks - var/totitemdamage = I.force + var/totitemdamage = pre_attacked_by(I, user) if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) totitemdamage *= 0.5 if(!CHECK_MOBILITY(user, MOBILITY_STAND)) totitemdamage *= 0.5 if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) totitemdamage *= 1.5 - //CIT CHANGES END HERE var/impacting_zone = (user == src)? check_zone(user.zone_selected) : ran_zone(user.zone_selected) - if((user != src) && (run_block(I, totitemdamage, "the [I]", ATTACK_TYPE_MELEE, I.armour_penetration, user, impacting_zone) & BLOCK_SUCCESS)) + if((user != src) && (mob_run_block(I, totitemdamage, "the [I]", ATTACK_TYPE_MELEE, I.armour_penetration, user, impacting_zone, null) & BLOCK_SUCCESS)) return FALSE var/obj/item/bodypart/affecting = get_bodypart(impacting_zone) if(!affecting) //missing limb? we select the first bodypart (you can never have zero, because of chest) affecting = bodyparts[1] SEND_SIGNAL(I, COMSIG_ITEM_ATTACK_ZONE, src, user, affecting) send_item_attack_message(I, user, affecting.name) - I.do_stagger_action(src, user) + I.do_stagger_action(src, user, totitemdamage) if(I.force) apply_damage(totitemdamage, I.damtype, affecting) //CIT CHANGE - replaces I.force with totitemdamage if(I.damtype == BRUTE && affecting.status == BODYPART_ORGANIC) @@ -275,7 +273,7 @@ if(health >= 0 && !(HAS_TRAIT(src, TRAIT_FAKEDEATH))) var/friendly_check = FALSE - if(run_block(M, 0, M.name, ATTACK_TYPE_UNARMED)) + if(mob_run_block(M, 0, M.name, ATTACK_TYPE_UNARMED, 0, null, null, null)) return if(lying) if(buckled) diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index cf81d5f64f..a1c9239e09 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -63,6 +63,7 @@ var/damageoverlaytemp = 0 var/drunkenness = 0 //Overall drunkenness - check handle_alcohol() in life.dm for effects + var/tackling = FALSE //Whether or not we are tackling, this will prevent the knock into effects for carbons /// Protection (insulation) from the heat, Value 0-1 corresponding to the percentage of protection var/heat_protection = 0 // No heat protection diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index 414f339b28..adca193ce0 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -38,7 +38,7 @@ adjustCloneLoss(damage_amount, forced = forced) if(STAMINA) if(BP) - if(damage > 0 ? BP.receive_damage(0, 0, damage_amount) : BP.heal_damage(0, 0, abs(damage_amount))) + if(damage > 0 ? BP.receive_damage(0, 0, damage_amount) : BP.heal_damage(0, 0, abs(damage_amount), FALSE, FALSE)) update_damage_overlays() else adjustStaminaLoss(damage_amount, forced = forced) diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index 28e0f2028d..60fa395319 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -41,18 +41,14 @@ if(no_brain && istype(O, /obj/item/organ/brain)) qdel(O) //so the brain isn't transfered to the head when the head drops. continue - var/org_zone = check_zone(O.zone) //both groin and chest organs. - if(org_zone == BODY_ZONE_CHEST) + if(!(O.organ_flags & ORGAN_NO_DISMEMBERMENT) && check_zone(O.zone) == BODY_ZONE_CHEST) O.Remove() O.forceMove(Tsec) O.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) else for(var/X in internal_organs) var/obj/item/organ/I = X - if(no_brain && istype(I, /obj/item/organ/brain)) - qdel(I) - continue - if(no_organs && !istype(I, /obj/item/organ/brain)) + if(I.organ_flags & ORGAN_NO_DISMEMBERMENT || (no_brain && istype(I, /obj/item/organ/brain)) || (no_organs && !istype(I, /obj/item/organ/brain))) qdel(I) continue I.Remove() diff --git a/code/modules/mob/living/carbon/human/dummy.dm b/code/modules/mob/living/carbon/human/dummy.dm index 7918e303e8..24eb5d7234 100644 --- a/code/modules/mob/living/carbon/human/dummy.dm +++ b/code/modules/mob/living/carbon/human/dummy.dm @@ -43,5 +43,6 @@ GLOBAL_LIST_EMPTY(dummy_mob_list) return var/mob/living/carbon/human/dummy/D = GLOB.human_dummy_list[slotnumber] if(istype(D)) + D.set_species(/datum/species/human,icon_update = TRUE, pref_load = TRUE) //for some fucking reason, if you don't change the species every time, some species will dafault certain things when it's their own species on the mannequin two times in a row, like lizards losing spines and tails setting to smooth. If you can find a fix for this that isn't this, good on you D.wipe_state() D.in_use = FALSE diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 94aba6851a..ea91a90ee9 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -38,8 +38,9 @@ . = ..() if(!CONFIG_GET(flag/disable_human_mood)) AddComponent(/datum/component/mood) - AddElement(/datum/element/flavor_text/carbon) + AddElement(/datum/element/flavor_text/carbon, _name = "Flavor Text", _save_key = "flavor_text") AddElement(/datum/element/flavor_text, "", "Temporary Flavor Text", "This should be used only for things pertaining to the current round!") + AddElement(/datum/element/flavor_text, _name = "OOC Notes", _addendum = "Put information on ERP/vore/lewd-related preferences here. THIS SHOULD NOT CONTAIN REGULAR FLAVORTEXT!!", _always_show = TRUE, _save_key = "ooc_notes", _examine_no_preview = TRUE) /mob/living/carbon/human/Destroy() QDEL_NULL(physiology) @@ -768,7 +769,7 @@ return else if(hud_used.healths) - var/health_amount = min(health, maxHealth - CLAMP(getStaminaLoss()-50, 0, 80))//CIT CHANGE - makes staminaloss have less of an impact on the health hud + var/health_amount = min(health, maxHealth - clamp(getStaminaLoss()-50, 0, 80))//CIT CHANGE - makes staminaloss have less of an impact on the health hud if(..(health_amount)) //not dead switch(hal_screwyhud) if(SCREWYHUD_CRIT) @@ -1041,7 +1042,7 @@ return FALSE /mob/living/carbon/human/proc/clear_shove_slowdown() - remove_movespeed_modifier(MOVESPEED_ID_SHOVE) + remove_movespeed_modifier(/datum/movespeed_modifier/shove) var/active_item = get_active_held_item() if(is_type_in_typecache(active_item, GLOB.shove_disarming_types)) visible_message("[src.name] regains their grip on \the [active_item]!", "You regain your grip on \the [active_item]", null, COMBAT_MESSAGE_RANGE) @@ -1049,18 +1050,22 @@ /mob/living/carbon/human/updatehealth() . = ..() - if(HAS_TRAIT(src, TRAIT_IGNORESLOWDOWN)) - remove_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN) - remove_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING) + if(HAS_TRAIT(src, TRAIT_IGNORESLOWDOWN)) //if we want to ignore slowdown from damage and equipment + remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) + remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) return var/stambufferinfluence = (bufferedstam*(100/stambuffer))*0.2 //CIT CHANGE - makes stamina buffer influence movedelay - var/health_deficiency = ((100 + stambufferinfluence) - health + (getStaminaLoss()*0.75))//CIT CHANGE - reduces the impact of staminaloss and makes stamina buffer influence it - if(health_deficiency >= 40) - add_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN, override = TRUE, multiplicative_slowdown = ((health_deficiency-39) / 75), blacklisted_movetypes = FLOATING|FLYING) - add_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING, override = TRUE, multiplicative_slowdown = ((health_deficiency-39) / 25), movetypes = FLYING, blacklisted_movetypes = FLOATING) + if(!HAS_TRAIT(src, TRAIT_IGNOREDAMAGESLOWDOWN)) //if we want to ignore slowdown from damage, but not from equipment + var/health_deficiency = ((maxHealth + stambufferinfluence) - health + (getStaminaLoss()*0.75))//CIT CHANGE - reduces the impact of staminaloss and makes stamina buffer influence it + if(health_deficiency >= 40) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown, TRUE, (health_deficiency-39) / 75) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying, TRUE, (health_deficiency-39) / 25) + else + remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) + remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) else - remove_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN) - remove_movespeed_modifier(MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING) + remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) + remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) /mob/living/carbon/human/do_after_coefficent() . = ..() diff --git a/code/modules/mob/living/carbon/human/human_block.dm b/code/modules/mob/living/carbon/human/human_block.dm index b1a5153ce5..8fe0376a08 100644 --- a/code/modules/mob/living/carbon/human/human_block.dm +++ b/code/modules/mob/living/carbon/human/human_block.dm @@ -1,8 +1,8 @@ /mob/living/carbon/human/get_blocking_items() . = ..() if(wear_suit) - . += wear_suit + . |= wear_suit if(w_uniform) - . += w_uniform + . |= w_uniform if(wear_neck) - . += wear_neck + . |= wear_neck diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 324420a7dd..856c57687f 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -155,7 +155,7 @@ if(M.a_intent == INTENT_HARM) if (w_uniform) w_uniform.add_fingerprint(M) - var/damage = prob(90) ? 20 : 0 + var/damage = prob(90) ? M.meleeSlashHumanPower : 0 if(!damage) playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1, -1) visible_message("[M] has lunged at [src]!", \ @@ -182,10 +182,7 @@ "[M] disarmed [src]!") else playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) - if(!lying) //CITADEL EDIT - DefaultCombatKnockdown(100, TRUE, FALSE, 30, 25) - else - DefaultCombatKnockdown(100) + DefaultCombatKnockdown(M.meleeKnockdownPower) log_combat(M, src, "tackled") visible_message("[M] has tackled down [src]!", \ "[M] has tackled down [src]!") diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 68c312b19c..59766b03a4 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -11,7 +11,7 @@ status_flags = CANSTUN|CANKNOCKDOWN|CANUNCONSCIOUS|CANPUSH|CANSTAGGER blocks_emissive = EMISSIVE_BLOCK_UNIQUE - + //Hair colour and style var/hair_color = "000" var/hair_style = "Bald" @@ -23,10 +23,6 @@ //Eye colour var/eye_color = "000" - var/horn_color = "85615a" //specific horn colors, because why not? - - var/wing_color = "fff" //wings too - var/skin_tone = "caucasian1" //Skin tone var/lip_style = null //no lipstick by default- arguably misleading, as it could be used for general makeup diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index a26bdd99cd..733f792109 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -1,11 +1,13 @@ /mob/living/carbon/human/get_movespeed_modifiers() var/list/considering = ..() - . = considering if(HAS_TRAIT(src, TRAIT_IGNORESLOWDOWN)) - for(var/id in .) - var/list/data = .[id] - if(data[MOVESPEED_DATA_INDEX_FLAGS] & IGNORE_NOSLOW) - .[id] = data + . = list() + for(var/id in considering) + var/datum/movespeed_modifier/M = considering[id] + if(M.flags & IGNORE_NOSLOW || M.multiplicative_slowdown < 0) + .[id] = M + return + return considering /mob/living/carbon/human/movement_delay() . = ..() @@ -22,13 +24,18 @@ /mob/living/carbon/human/slip(knockdown_amount, obj/O, lube) if(HAS_TRAIT(src, TRAIT_NOSLIPALL)) return 0 - if (!(lube&GALOSHES_DONT_HELP)) + if (!(lube & GALOSHES_DONT_HELP)) if(HAS_TRAIT(src, TRAIT_NOSLIPWATER)) return 0 if(shoes && istype(shoes, /obj/item/clothing)) var/obj/item/clothing/CS = shoes if (CS.clothing_flags & NOSLIP) return 0 + if (lube & SLIDE_ICE) + if(shoes && istype(shoes, /obj/item/clothing)) + var/obj/item/clothing/CS = shoes + if (CS.clothing_flags & NOSLIP_ICE) + return FALSE return ..() /mob/living/carbon/human/experience_pressure_difference() diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 5e6aef75ca..962d3a649d 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -35,10 +35,6 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/hair_color // this allows races to have specific hair colors... if null, it uses the H's hair/facial hair colors. if "mutcolor", it uses the H's mutant_color var/hair_alpha = 255 // the alpha used by the hair. 255 is completely solid, 0 is transparent. - - var/horn_color //specific horn colors, because why not? - var/wing_color - var/use_skintones = NO_SKINTONES // does it use skintones or not? (spoiler alert this is only used by humans) var/exotic_blood = "" // If your race wants to bleed something other than bog standard blood, change this to reagent id. var/exotic_bloodtype = "" //If your race uses a non standard bloodtype (A+, O-, AB-, etc) @@ -53,6 +49,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/blacklisted = 0 //Flag to exclude from green slime core species. var/dangerous_existence //A flag for transformation spells that tells them "hey if you turn a person into one of these without preperation, they'll probably die!" var/say_mod = "says" // affects the speech message + var/species_language_holder = /datum/language_holder var/list/mutant_bodyparts = list() // Visible CURRENT bodyparts that are unique to a species. Changes to this list for non-species specific bodyparts (ie cat ears and tails) should be assigned at organ level if possible. Layer hiding is handled by handle_mutant_bodyparts() below. var/list/mutant_organs = list() //Internal organs that are unique to this race. var/speedmod = 0 // this affects the race's speed. positive numbers make it move slower, negative numbers make it move faster @@ -331,7 +328,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(mutant_bodyparts["meat_type"]) //I can't believe it's come to the meat H.type_of_meat = GLOB.meat_types[H.dna.features["meat_type"]] - C.add_movespeed_modifier(MOVESPEED_ID_SPECIES, TRUE, 100, override=TRUE, multiplicative_slowdown=speedmod, movetypes=(~FLYING)) + C.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/species, TRUE, multiplicative_slowdown = speedmod) SEND_SIGNAL(C, COMSIG_SPECIES_GAIN, src, old_species) @@ -349,7 +346,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) for(var/X in inherent_traits) REMOVE_TRAIT(C, X, SPECIES_TRAIT) - C.remove_movespeed_modifier(MOVESPEED_ID_SPECIES) + C.remove_movespeed_modifier(/datum/movespeed_modifier/species) if(mutant_bodyparts["meat_type"]) C.type_of_meat = GLOB.meat_types[C.dna.features["meat_type"]] @@ -550,8 +547,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) //Underwear, Undershirts & Socks if(!(NO_UNDERWEAR in species_traits)) - - if(H.socks && !H.hidden_socks && H.get_num_legs(FALSE) >= 2) + var/datum/sprite_accessory/taur/TA + if(mutant_bodyparts["taur"] && H.dna.features["taur"]) + TA = GLOB.taur_list[H.dna.features["taur"]] + if(!(TA?.hide_legs) && H.socks && !H.hidden_socks && H.get_num_legs(FALSE) >= 2) if(H.saved_socks) H.socks = H.saved_socks H.saved_socks = "" @@ -584,7 +583,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/state = "[T.icon_state][((DIGITIGRADE in species_traits) && T.has_digitigrade) ? "_d" : ""]" var/mutable_appearance/MA if(H.dna.species.sexes && H.dna.features["body_model"] == FEMALE) - MA = wear_female_version(state, T.icon, BODY_LAYER) + MA = wear_alpha_masked_version(state, T.icon, BODY_LAYER, FEMALE_UNIFORM_TOP) else MA = mutable_appearance(T.icon, state, -BODY_LAYER) if(T.has_color) @@ -599,21 +598,17 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) /datum/species/proc/handle_mutant_bodyparts(mob/living/carbon/human/H, forced_colour) var/list/bodyparts_to_add = mutant_bodyparts.Copy() - var/list/relevent_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER, BODY_TAUR_LAYER) - var/list/standing = list() H.remove_overlay(BODY_BEHIND_LAYER) H.remove_overlay(BODY_ADJ_LAYER) + H.remove_overlay(BODY_ADJ_UPPER_LAYER) H.remove_overlay(BODY_FRONT_LAYER) - //CITADEL EDIT - Do not forget to add this to relevent_layers list just above too! - H.remove_overlay(BODY_TAUR_LAYER) - //END EDIT if(!mutant_bodyparts) return var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD) - var/tauric = H.dna.features["taur"] && H.dna.features["taur"] != "None" + var/tauric = mutant_bodyparts["taur"] && H.dna.features["taur"] && H.dna.features["taur"] != "None" if(mutant_bodyparts["tail_lizard"]) if((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric) @@ -744,95 +739,105 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!bodyparts_to_add) return + var/list/relevant_layers = list() + var/list/dna_feature_as_text_string = list() + + for(var/bodypart in bodyparts_to_add) + var/datum/sprite_accessory/S + switch(bodypart) + if("tail_lizard") + S = GLOB.tails_list_lizard[H.dna.features["tail_lizard"]] + if("waggingtail_lizard") + S = GLOB.animated_tails_list_lizard[H.dna.features["tail_lizard"]] + if("tail_human") + S = GLOB.tails_list_human[H.dna.features["tail_human"]] + if("waggingtail_human") + S = GLOB.animated_tails_list_human[H.dna.features["tail_human"]] + if("spines") + S = GLOB.spines_list[H.dna.features["spines"]] + if("waggingspines") + S = GLOB.animated_spines_list[H.dna.features["spines"]] + if("snout") + S = GLOB.snouts_list[H.dna.features["snout"]] + if("frills") + S = GLOB.frills_list[H.dna.features["frills"]] + if("horns") + S = GLOB.horns_list[H.dna.features["horns"]] + if("ears") + S = GLOB.ears_list[H.dna.features["ears"]] + if("body_markings") + S = GLOB.body_markings_list[H.dna.features["body_markings"]] + if("wings") + S = GLOB.wings_list[H.dna.features["wings"]] + if("wingsopen") + S = GLOB.wings_open_list[H.dna.features["wings"]] + if("deco_wings") + S = GLOB.deco_wings_list[H.dna.features["deco_wings"]] + if("legs") + S = GLOB.legs_list[H.dna.features["legs"]] + if("insect_wings") + S = GLOB.insect_wings_list[H.dna.features["insect_wings"]] + if("insect_fluff") + S = GLOB.insect_fluffs_list[H.dna.features["insect_fluff"]] + if("insect_markings") + S = GLOB.insect_markings_list[H.dna.features["insect_markings"]] + if("caps") + S = GLOB.caps_list[H.dna.features["caps"]] + if("ipc_screen") + S = GLOB.ipc_screens_list[H.dna.features["ipc_screen"]] + if("ipc_antenna") + S = GLOB.ipc_antennas_list[H.dna.features["ipc_antenna"]] + if("mam_tail") + S = GLOB.mam_tails_list[H.dna.features["mam_tail"]] + if("mam_waggingtail") + S = GLOB.mam_tails_animated_list[H.dna.features["mam_tail"]] + if("mam_body_markings") + S = GLOB.mam_body_markings_list[H.dna.features["mam_body_markings"]] + if("mam_ears") + S = GLOB.mam_ears_list[H.dna.features["mam_ears"]] + if("mam_snouts") + S = GLOB.mam_snouts_list[H.dna.features["mam_snouts"]] + if("taur") + S = GLOB.taur_list[H.dna.features["taur"]] + if("xenodorsal") + S = GLOB.xeno_dorsal_list[H.dna.features["xenodorsal"]] + if("xenohead") + S = GLOB.xeno_head_list[H.dna.features["xenohead"]] + if("xenotail") + S = GLOB.xeno_tail_list[H.dna.features["xenotail"]] + + if(!S || S.icon_state == "none") + continue + + for(var/L in S.relevant_layers) + LAZYADD(relevant_layers["[L]"], S) + if(!S.mutant_part_string) + dna_feature_as_text_string[S] = bodypart + + var/static/list/layer_text = list("[BODY_BEHIND_LAYER]" = "BEHIND", "[BODY_ADJ_LAYER]" = "ADJ", \ + "[BODY_ADJ_UPPER_LAYER]" = "ADJUP", "[BODY_FRONT_LAYER]" = "FRONT") + var/g = (H.dna.features["body_model"] == FEMALE) ? "f" : "m" + var/list/colorlist = list() + var/husk = HAS_TRAIT(H, TRAIT_HUSK) + colorlist += husk ? ReadRGB("#a3a3a3") :ReadRGB("[H.dna.features["mcolor"]]0") + colorlist += husk ? ReadRGB("#a3a3a3") :ReadRGB("[H.dna.features["mcolor2"]]0") + colorlist += husk ? ReadRGB("#a3a3a3") : ReadRGB("[H.dna.features["mcolor3"]]0") + colorlist += list(0,0,0, hair_alpha) + for(var/index in 1 to colorlist.len) + colorlist[index] /= 255 - for(var/layer in relevent_layers) - var/layertext = mutant_bodyparts_layertext(layer) - - for(var/bodypart in bodyparts_to_add) - var/datum/sprite_accessory/S - switch(bodypart) - if("tail_lizard") - S = GLOB.tails_list_lizard[H.dna.features["tail_lizard"]] - if("waggingtail_lizard") - S = GLOB.animated_tails_list_lizard[H.dna.features["tail_lizard"]] - if("tail_human") - S = GLOB.tails_list_human[H.dna.features["tail_human"]] - if("waggingtail_human") - S = GLOB.animated_tails_list_human[H.dna.features["tail_human"]] - if("spines") - S = GLOB.spines_list[H.dna.features["spines"]] - if("waggingspines") - S = GLOB.animated_spines_list[H.dna.features["spines"]] - if("snout") - S = GLOB.snouts_list[H.dna.features["snout"]] - if("frills") - S = GLOB.frills_list[H.dna.features["frills"]] - if("horns") - S = GLOB.horns_list[H.dna.features["horns"]] - if("ears") - S = GLOB.ears_list[H.dna.features["ears"]] - if("body_markings") - S = GLOB.body_markings_list[H.dna.features["body_markings"]] - if("wings") - S = GLOB.wings_list[H.dna.features["wings"]] - if("wingsopen") - S = GLOB.wings_open_list[H.dna.features["wings"]] - if("deco_wings") - S = GLOB.deco_wings_list[H.dna.features["deco_wings"]] - if("legs") - S = GLOB.legs_list[H.dna.features["legs"]] - if("insect_wings") - S = GLOB.insect_wings_list[H.dna.features["insect_wings"]] - if("insect_fluff") - S = GLOB.insect_fluffs_list[H.dna.features["insect_fluff"]] - if("insect_markings") - S = GLOB.insect_markings_list[H.dna.features["insect_markings"]] - if("caps") - S = GLOB.caps_list[H.dna.features["caps"]] - if("ipc_screen") - S = GLOB.ipc_screens_list[H.dna.features["ipc_screen"]] - if("ipc_antenna") - S = GLOB.ipc_antennas_list[H.dna.features["ipc_antenna"]] - if("mam_tail") - S = GLOB.mam_tails_list[H.dna.features["mam_tail"]] - if("mam_waggingtail") - S = GLOB.mam_tails_animated_list[H.dna.features["mam_tail"]] - if("mam_body_markings") - S = GLOB.mam_body_markings_list[H.dna.features["mam_body_markings"]] - if("mam_ears") - S = GLOB.mam_ears_list[H.dna.features["mam_ears"]] - if("mam_snouts") - S = GLOB.mam_snouts_list[H.dna.features["mam_snouts"]] - if("taur") - S = GLOB.taur_list[H.dna.features["taur"]] - if("xenodorsal") - S = GLOB.xeno_dorsal_list[H.dna.features["xenodorsal"]] - if("xenohead") - S = GLOB.xeno_head_list[H.dna.features["xenohead"]] - if("xenotail") - S = GLOB.xeno_tail_list[H.dna.features["xenotail"]] - - if(!S || S.icon_state == "none") - continue - - var/mutable_appearance/accessory_overlay = mutable_appearance(S.icon, layer = -layer) - - accessory_overlay.color = null //just because. reee. - - //A little rename so we don't have to use tail_lizard or tail_human when naming the sprites. - if(bodypart == "tail_lizard" || bodypart == "tail_human" || bodypart == "mam_tail" || bodypart == "xenotail") - bodypart = "tail" - if(bodypart == "mam_waggingtail" || bodypart == "waggingtail_human" || bodypart == "waggingtail_lizard") - bodypart = "tailwag" - if(bodypart == "mam_ears" || bodypart == "ears") - bodypart = "ears" - if(bodypart == "mam_snouts" || bodypart == "snout") - bodypart = "snout" - if(bodypart == "xenohead") - bodypart = "xhead" - if(bodypart == "insect_wings" || bodypart == "deco_wings") - bodypart = "insect_wings" + for(var/layer in relevant_layers) + var/list/standing = list() + var/layertext = layer_text[layer] + if(!layertext) //shouldn't happen + stack_trace("invalid layer '[layer]' found in the list of relevant layers on species.handle_mutant_bodyparts().") + continue + var/layernum = text2num(layer) + for(var/bodypart in relevant_layers[layer]) + var/datum/sprite_accessory/S = bodypart + var/mutable_appearance/accessory_overlay = mutable_appearance(S.icon, layer = -layernum) + bodypart = S.mutant_part_string || dna_feature_as_text_string[S] if(S.gender_specific) accessory_overlay.icon_state = "[g]_[bodypart]_[S.icon_state]_[layertext]" @@ -842,16 +847,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(S.center) accessory_overlay = center_image(accessory_overlay, S.dimension_x, S.dimension_y) - var/list/colorlist = list() - colorlist.Cut() - colorlist += ReadRGB("[H.dna.features["mcolor"]]0") - colorlist += ReadRGB("[H.dna.features["mcolor2"]]0") - colorlist += ReadRGB("[H.dna.features["mcolor3"]]0") - colorlist += list(0,0,0, hair_alpha) - for(var/index=1, index<=colorlist.len, index++) - colorlist[index] = colorlist[index]/255 - - if(!HAS_TRAIT(H, TRAIT_HUSK)) + if(!husk) if(!forced_colour) switch(S.color_src) if(SKINTONE) @@ -885,9 +881,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(EYECOLOR) accessory_overlay.color = "#[H.eye_color]" if(HORNCOLOR) - accessory_overlay.color = "#[H.horn_color]" + accessory_overlay.color = "#[H.dna.features["horns_color"]]" if(WINGCOLOR) - accessory_overlay.color = "#[H.wing_color]" + accessory_overlay.color = "#[H.dna.features["wings_color"]]" else accessory_overlay.color = forced_colour else @@ -896,14 +892,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(bodypart == "tail") accessory_overlay.icon_state = "m_tail_husk_[layertext]" if(S.color_src == MATRIXED) - var/list/husklist = list() - husklist += ReadRGB("#a3a3a3") - husklist += ReadRGB("#a3a3a3") - husklist += ReadRGB("#a3a3a3") - husklist += list(0,0,0, hair_alpha) - for(var/index=1, index<=husklist.len, index++) - husklist[index] = husklist[index]/255 - accessory_overlay.color = husklist + accessory_overlay.color = colorlist if(OFFSET_MUTPARTS in H.dna.species.offset_features) accessory_overlay.pixel_x += H.dna.species.offset_features[OFFSET_MUTPARTS][1] @@ -911,24 +900,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) standing += accessory_overlay - if(S.hasinner) - var/mutable_appearance/inner_accessory_overlay = mutable_appearance(S.icon, layer = -layer) - if(S.gender_specific) - inner_accessory_overlay.icon_state = "[g]_[bodypart]inner_[S.icon_state]_[layertext]" - else - inner_accessory_overlay.icon_state = "m_[bodypart]inner_[S.icon_state]_[layertext]" - - if(S.center) - inner_accessory_overlay = center_image(inner_accessory_overlay, S.dimension_x, S.dimension_y) - - if(OFFSET_MUTPARTS in H.dna.species.offset_features) - inner_accessory_overlay.pixel_x += H.dna.species.offset_features[OFFSET_MUTPARTS][1] - inner_accessory_overlay.pixel_y += H.dna.species.offset_features[OFFSET_MUTPARTS][2] - - standing += inner_accessory_overlay - if(S.extra) //apply the extra overlay, if there is one - var/mutable_appearance/extra_accessory_overlay = mutable_appearance(S.icon, layer = -layer) + var/mutable_appearance/extra_accessory_overlay = mutable_appearance(S.icon, layer = -layernum) if(S.gender_specific) extra_accessory_overlay.icon_state = "[g]_[bodypart]_extra_[S.icon_state]_[layertext]" else @@ -964,9 +937,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) extra_accessory_overlay.color = "#[H.eye_color]" if(HORNCOLOR) - extra_accessory_overlay.color = "#[H.horn_color]" + extra_accessory_overlay.color = "#[H.dna.features["horns_color"]]" if(WINGCOLOR) - extra_accessory_overlay.color = "#[H.wing_color]" + extra_accessory_overlay.color = "#[H.dna.features["wings_color"]]" if(OFFSET_MUTPARTS in H.dna.species.offset_features) extra_accessory_overlay.pixel_x += H.dna.species.offset_features[OFFSET_MUTPARTS][1] @@ -975,7 +948,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) standing += extra_accessory_overlay if(S.extra2) //apply the extra overlay, if there is one - var/mutable_appearance/extra2_accessory_overlay = mutable_appearance(S.icon, layer = -layer) + var/mutable_appearance/extra2_accessory_overlay = mutable_appearance(S.icon, layer = -layernum) if(S.gender_specific) extra2_accessory_overlay.icon_state = "[g]_[bodypart]_extra2_[S.icon_state]_[layertext]" else @@ -1005,9 +978,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) else extra2_accessory_overlay.color = "#[H.hair_color]" if(HORNCOLOR) - extra2_accessory_overlay.color = "#[H.horn_color]" + extra2_accessory_overlay.color = "#[H.dna.features["horns_color"]]" if(WINGCOLOR) - extra2_accessory_overlay.color = "#[H.wing_color]" + extra2_accessory_overlay.color = "#[H.dna.features["wings_color"]]" if(OFFSET_MUTPARTS in H.dna.species.offset_features) extra2_accessory_overlay.pixel_x += H.dna.species.offset_features[OFFSET_MUTPARTS][1] @@ -1016,13 +989,12 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) standing += extra2_accessory_overlay - H.overlays_standing[layer] = standing.Copy() - standing = list() + H.overlays_standing[layernum] = standing H.apply_overlay(BODY_BEHIND_LAYER) H.apply_overlay(BODY_ADJ_LAYER) + H.apply_overlay(BODY_ADJ_UPPER_LAYER) H.apply_overlay(BODY_FRONT_LAYER) - H.apply_overlay(BODY_TAUR_LAYER) // CITADEL EDIT /* @@ -1034,21 +1006,6 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) outfit_important_for_life= new() outfit_important_for_life.equip(human_to_equip) -//This exists so sprite accessories can still be per-layer without having to include that layer's -//number in their sprite name, which causes issues when those numbers change. -/datum/species/proc/mutant_bodyparts_layertext(layer) - switch(layer) - if(BODY_BEHIND_LAYER) - return "BEHIND" - if(BODY_ADJ_LAYER) - return "ADJ" - if(BODY_FRONT_LAYER) - return "FRONT" - //CITADEL EDIT - if(BODY_TAUR_LAYER) - return "TAUR" - //END EDIT - /* TODO: Snowflake trail marks // Impliments different trails for species depending on if they're wearing shoes. /datum/species/proc/get_move_trail(var/mob/living/carbon/human/H) @@ -1301,14 +1258,14 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(H.overeatduration < 100) to_chat(H, "You feel fit again!") REMOVE_TRAIT(H, TRAIT_FAT, OBESITY) - H.remove_movespeed_modifier(MOVESPEED_ID_FAT) + H.remove_movespeed_modifier(/datum/movespeed_modifier/obesity) H.update_inv_w_uniform() H.update_inv_wear_suit() else if(H.overeatduration >= 100) to_chat(H, "You suddenly feel blubbery!") ADD_TRAIT(H, TRAIT_FAT, OBESITY) - H.add_movespeed_modifier(MOVESPEED_ID_FAT, multiplicative_slowdown = 1.5) + H.add_movespeed_modifier(/datum/movespeed_modifier/obesity) H.update_inv_w_uniform() H.update_inv_wear_suit() @@ -1364,9 +1321,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!HAS_TRAIT(H, TRAIT_NOHUNGER)) var/hungry = (500 - H.nutrition) / 5 //So overeat would be 100 and default level would be 80 if(hungry >= 70) - H.add_movespeed_modifier(MOVESPEED_ID_HUNGRY, override = TRUE, multiplicative_slowdown = (hungry / 50)) + H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/hunger, multiplicative_slowdown = (hungry / 50)) else - H.remove_movespeed_modifier(MOVESPEED_ID_HUNGRY) + H.remove_movespeed_modifier(/datum/movespeed_modifier/hunger) switch(H.nutrition) if(NUTRITION_LEVEL_FULL to INFINITY) @@ -1582,9 +1539,6 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(IS_STAMCRIT(user)) to_chat(user, "You're too exhausted!") return FALSE - else if(target.check_block()) - target.visible_message("[target] blocks [user]'s disarm attempt!") - return FALSE else if(aim_for_mouth && ( target_on_help || target_restrained || target_aiming_for_mouth)) playsound(target.loc, 'sound/weapons/slap.ogg', 50, 1, -1) @@ -1617,7 +1571,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) "You hear a slap." ) return FALSE - + else user.do_attack_animation(target, ATTACK_EFFECT_DISARM) @@ -1625,10 +1579,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) user.adjustStaminaLossBuffered(1) else user.adjustStaminaLossBuffered(3) - + if(attacker_style && attacker_style.disarm_act(user,target)) return TRUE - + if(target.w_uniform) target.w_uniform.add_fingerprint(user) //var/randomized_zone = ran_zone(user.zone_selected) CIT CHANGE - comments out to prevent compiling errors @@ -1661,7 +1615,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) randn -= 25 //if you are a pugilist, you're slapping that item from them pretty reliably if(HAS_TRAIT(target, TRAIT_PUGILIST)) randn += 25 //meanwhile, pugilists are less likely to get disarmed - + if(randn <= 35)//CIT CHANGE - changes this back to a 35% chance to accomodate for the above being commented out in favor of right-click pushing var/obj/item/I = null if(target.pulling) @@ -1714,9 +1668,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) disarm(M, H, attacker_style) /datum/species/proc/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) + var/totitemdamage = H.pre_attacked_by(I, user) // Allows you to put in item-specific reactions based on species if(user != H) - if(H.run_block(I, I.force, "the [I.name]", ATTACK_TYPE_MELEE, I.armour_penetration, user, affecting.body_zone) & BLOCK_SUCCESS) + if(H.mob_run_block(I, totitemdamage, "the [I.name]", ATTACK_TYPE_MELEE, I.armour_penetration, user, affecting.body_zone, null) & BLOCK_SUCCESS) return 0 if(H.check_martial_melee_block()) H.visible_message("[H] blocks [I]!") @@ -1732,24 +1687,14 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/armor_block = H.run_armor_check(affecting, "melee", "Your armor has protected your [hit_area].", "Your armor has softened a hit to your [hit_area].",I.armour_penetration) armor_block = min(90,armor_block) //cap damage reduction at 90% var/Iforce = I.force //to avoid runtimes on the forcesay checks at the bottom. Some items might delete themselves if you drop them. (stunning yourself, ninja swords) - //CIT CHANGES START HERE - combatmode and resting checks - var/totitemdamage = I.force - if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) - totitemdamage *= 0.5 - if(!CHECK_MOBILITY(user, MOBILITY_STAND)) - totitemdamage *= 0.5 - if(istype(H)) - if(!(H.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) - totitemdamage *= 1.5 - //CIT CHANGES END HERE var/weakness = H.check_weakness(I, user) apply_damage(totitemdamage * weakness, I.damtype, def_zone, armor_block, H) //CIT CHANGE - replaces I.force with totitemdamage H.send_item_attack_message(I, user, hit_area) - I.do_stagger_action(H, user) + I.do_stagger_action(H, user, totitemdamage) - if(!I.force) + if(!totitemdamage) return 0 //item force is zero //dismemberment @@ -1834,7 +1779,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) return TRUE if(M.mind) attacker_style = M.mind.martial_art - if((M != H) && M.a_intent != INTENT_HELP && (H.run_block(M, 0, "[M]", ATTACK_TYPE_UNARMED, 0, M, M.zone_selected) & BLOCK_SUCCESS)) + if((M != H) && M.a_intent != INTENT_HELP && (H.mob_run_block(M, 0, "[M]", ATTACK_TYPE_UNARMED, 0, M, M.zone_selected, null) & BLOCK_SUCCESS)) log_combat(M, H, "attempted to touch") H.visible_message("[M] attempted to touch [H]!") return TRUE @@ -1934,8 +1879,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/obj/item/target_held_item = target.get_active_held_item() if(!is_type_in_typecache(target_held_item, GLOB.shove_disarming_types)) target_held_item = null - if(!target.has_movespeed_modifier(MOVESPEED_ID_SHOVE)) - target.add_movespeed_modifier(MOVESPEED_ID_SHOVE, multiplicative_slowdown = SHOVE_SLOWDOWN_STRENGTH) + if(!target.has_movespeed_modifier(/datum/movespeed_modifier/shove)) + target.add_movespeed_modifier(/datum/movespeed_modifier/shove) if(target_held_item) if(!HAS_TRAIT(target_held_item, TRAIT_NODROP)) target.visible_message("[target.name]'s grip on \the [target_held_item] loosens!", @@ -2086,7 +2031,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold") SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "hot", /datum/mood_event/hot) - H.remove_movespeed_modifier(MOVESPEED_ID_COLD) + H.remove_movespeed_modifier(/datum/movespeed_modifier/cold) var/burn_damage var/firemodifier = H.fire_stacks / 50 @@ -2103,8 +2048,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) else if(H.bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT && !HAS_TRAIT(H, TRAIT_RESISTCOLD)) SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot") SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "cold", /datum/mood_event/cold) - //Sorry for the nasty oneline but I don't want to assign a variable on something run pretty frequently - H.add_movespeed_modifier(MOVESPEED_ID_COLD, override = TRUE, multiplicative_slowdown = ((BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR), blacklisted_movetypes = FLOATING) + //Apply cold slowdown + H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/cold, multiplicative_slowdown = ((BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR)) switch(H.bodytemperature) if(200 to BODYTEMP_COLD_DAMAGE_LIMIT) H.apply_damage(COLD_DAMAGE_LEVEL_1*coldmod*H.physiology.cold_mod, BURN) @@ -2114,7 +2059,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) H.apply_damage(COLD_DAMAGE_LEVEL_3*coldmod*H.physiology.cold_mod, BURN) else - H.remove_movespeed_modifier(MOVESPEED_ID_COLD) + H.remove_movespeed_modifier(/datum/movespeed_modifier/cold) SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold") SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot") diff --git a/code/modules/mob/living/carbon/human/species_types/android.dm b/code/modules/mob/living/carbon/human/species_types/android.dm index 559abd8d0b..94f64ceacb 100644 --- a/code/modules/mob/living/carbon/human/species_types/android.dm +++ b/code/modules/mob/living/carbon/human/species_types/android.dm @@ -9,6 +9,7 @@ gib_types = /obj/effect/gibspawner/robot damage_overlay_type = "synth" mutanttongue = /obj/item/organ/tongue/robot + species_language_holder = /datum/language_holder/synthetic limbs_id = "synth" /datum/species/android/on_species_gain(mob/living/carbon/C) diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm index 235dacc70a..5d9269b2f0 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -6,7 +6,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // name = "Dwarf" id = "dwarf" //Also called Homo sapiens pumilionis default_color = "FFFFFF" - species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,NO_UNDERWEAR) + species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,NO_UNDERWEAR,TRAIT_DWARF) inherent_traits = list() limbs_id = "human" use_skintones = USE_SKINTONES_GRAYSCALE_CUSTOM @@ -17,6 +17,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // disliked_food = JUNKFOOD | FRIED //Dwarves hate foods that have no nutrition other than alcohol. mutant_organs = list(/obj/item/organ/dwarfgland) //Dwarven alcohol gland, literal gland warrior mutantliver = /obj/item/organ/liver/dwarf //Dwarven super liver (Otherwise they r doomed) + species_language_holder = /datum/language_holder/dwarf /mob/living/carbon/human/species/dwarf //species admin spawn path race = /datum/species/dwarf //and the race the path is set to. @@ -30,18 +31,15 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // . = ..() var/dwarf_hair = pick("Beard (Dwarf)", "Beard (Very Long)", "Beard (Long)") //beard roullette var/mob/living/carbon/human/H = C - H.grant_language(/datum/language/dwarf) H.facial_hair_style = dwarf_hair H.update_hair() H.transform = H.transform.Scale(1, 0.8) //We use scale, and yeah. Dwarves can become gnomes with DWARFISM. RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) //We register handle_speech is being used. - /datum/species/dwarf/on_species_loss(mob/living/carbon/H, datum/species/new_species) . = ..() H.transform = H.transform.Scale(1, 1.25) //And we undo it. UnregisterSignal(H, COMSIG_MOB_SAY) //We register handle_speech is not being used. - H.remove_language(/datum/language/dwarf) //Dwarf Name stuff /proc/dwarf_name() //hello caller: my name is urist mcuristurister @@ -102,12 +100,11 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // /obj/item/organ/dwarfgland/on_life() //Primary loop to hook into to start delayed loops for other loops.. . = ..() - dwarf_cycle_ticker() + if(owner && owner.stat != DEAD) + dwarf_cycle_ticker() //Handles the delayed tick cycle by just adding on increments per each on_life() tick /obj/item/organ/dwarfgland/proc/dwarf_cycle_ticker() - if(owner.stat == DEAD) - return //We make sure they are not dead, so they don't increment any tickers. dwarf_eth_ticker++ dwarf_filth_ticker++ @@ -170,7 +167,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // for(var/datum/reagent/R in owner.reagents.reagent_list) if(istype(R, /datum/reagent/consumable/ethanol)) var/datum/reagent/consumable/ethanol/E = R - stored_alcohol = CLAMP(stored_alcohol + E.boozepwr / 50, 0, max_alcohol) + stored_alcohol = clamp(stored_alcohol + E.boozepwr / 50, 0, max_alcohol) var/heal_amt = heal_rate stored_alcohol -= alcohol_rate //Subtracts alcohol_Rate from stored alcohol so EX: 250 - 0.25 per each loop that occurs. if(stored_alcohol > 400) //If they are over 400 they start regenerating diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index abc2288e9b..7a5e347060 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -397,7 +397,7 @@ var/new_y = P.starting.y + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) var/turf/target = get_turf(P.starting) // redirect the projectile - P.preparePixelProjectile(locate(CLAMP(target.x + new_x, 1, world.maxx), CLAMP(target.y + new_y, 1, world.maxy), H.z), H) + P.preparePixelProjectile(locate(clamp(target.x + new_x, 1, world.maxx), clamp(target.y + new_y, 1, world.maxy), H.z), H) return BULLET_ACT_FORCE_PIERCE return ..() diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 854182bd99..c2cce04053 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -21,20 +21,19 @@ coldmod = 6 // = 3x cold damage heatmod = 0.5 // = 1/4x heat damage burnmod = 0.5 // = 1/2x generic burn damage + species_language_holder = /datum/language_holder/jelly /datum/species/jelly/on_species_loss(mob/living/carbon/C) if(regenerate_limbs) regenerate_limbs.Remove(C) if(slime_change) //CIT CHANGE slime_change.Remove(C) //CIT CHANGE - C.remove_language(/datum/language/slime) C.faction -= "slime" ..() C.faction -= "slime" /datum/species/jelly/on_species_gain(mob/living/carbon/C, datum/species/old_species) ..() - C.grant_language(/datum/language/slime) if(ishuman(C)) regenerate_limbs = new regenerate_limbs.Grant(C) @@ -606,7 +605,7 @@ var/max_D = CONFIG_GET(number/penis_max_inches_prefs) var/new_length = input(owner, "Penis length in inches:\n([min_D]-[max_D])", "Genital Alteration") as num|null if(new_length) - H.dna.features["cock_length"] = CLAMP(round(new_length), min_D, max_D) + H.dna.features["cock_length"] = clamp(round(new_length), min_D, max_D) H.update_genitals() H.apply_overlay() H.give_genital(/obj/item/organ/genital/testicles) diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 9a6bc2659d..196073773b 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -24,9 +24,7 @@ disliked_food = GRAIN | DAIRY liked_food = GROSS | MEAT inert_mutation = FIREBREATH - -/datum/species/lizard/after_equip_job(datum/job/J, mob/living/carbon/human/H) - H.grant_language(/datum/language/draconic) + species_language_holder = /datum/language_holder/lizard /datum/species/lizard/random_name(gender,unique,lastname) if(unique) @@ -86,9 +84,15 @@ mutantlungs = /obj/item/organ/lungs/ashwalker burnmod = 0.9 brutemod = 0.9 + species_language_holder = /datum/language_holder/lizard/ash /datum/species/lizard/ashwalker/on_species_gain(mob/living/carbon/human/C, datum/species/old_species) if((C.dna.features["spines"] != "None" ) && (C.dna.features["tail_lizard"] == "None")) //tbh, it's kinda ugly for them not to have a tail yet have floating spines C.dna.features["tail_lizard"] = "Smooth" C.update_body() + if(C.dna.features["legs"] != "digitigrade") + C.dna.features["legs"] = "digitigrade" + for(var/obj/item/bodypart/leggie in C.bodyparts) + if(leggie.body_zone == BODY_ZONE_L_LEG || leggie.body_zone == BODY_ZONE_R_LEG) + leggie.update_limb(FALSE, C) return ..() diff --git a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm index 5390d9e7f4..dcb6d868fc 100644 --- a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm @@ -23,9 +23,7 @@ mutanteyes = /obj/item/organ/eyes/night_vision/mushroom var/datum/martial_art/mushpunch/mush - -/datum/species/mush/after_equip_job(datum/job/J, mob/living/carbon/human/H) - H.grant_language(/datum/language/mushroom) //pomf pomf + species_language_holder = /datum/language_holder/mushroom /datum/species/mush/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index 44a794c2ab..a8b9bbfc8f 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -12,6 +12,7 @@ meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/plant disliked_food = MEAT | DAIRY liked_food = VEGETABLES | FRUIT | GRAIN + species_language_holder = /datum/language_holder/sylvan var/light_nutrition_gain_factor = 10 var/light_toxheal = 1 var/light_oxyheal = 1 diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm index deab31dec3..85f1fbf386 100644 --- a/code/modules/mob/living/carbon/human/species_types/synths.dm +++ b/code/modules/mob/living/carbon/human/species_types/synths.dm @@ -16,6 +16,7 @@ var/list/initial_inherent_traits = list(TRAIT_VIRUSIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOLIMBDISABLE,TRAIT_NOHUNGER,TRAIT_NOBREATH) var/disguise_fail_health = 75 //When their health gets to this level their synthflesh partially falls off var/datum/species/fake_species = null //a species to do most of our work for us, unless we're damaged + species_language_holder = /datum/language_holder/synthetic /datum/species/synth/military name = "Military Synth" diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index f37e718462..f720aa7f8a 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -106,8 +106,8 @@ to_chat(victim, "[H] is draining your blood!") to_chat(H, "You drain some blood!") playsound(H, 'sound/items/drink.ogg', 30, 1, -2) - victim.blood_volume = CLAMP(victim.blood_volume - drained_blood, 0, BLOOD_VOLUME_MAXIMUM) - H.blood_volume = CLAMP(H.blood_volume + drained_blood, 0, BLOOD_VOLUME_MAXIMUM) + victim.blood_volume = clamp(victim.blood_volume - drained_blood, 0, BLOOD_VOLUME_MAXIMUM) + H.blood_volume = clamp(H.blood_volume + drained_blood, 0, BLOOD_VOLUME_MAXIMUM) if(!victim.blood_volume) to_chat(H, "You finish off [victim]'s blood supply!") diff --git a/code/modules/mob/living/carbon/human/status_procs.dm b/code/modules/mob/living/carbon/human/status_procs.dm index 37bafdab67..7892380d8b 100644 --- a/code/modules/mob/living/carbon/human/status_procs.dm +++ b/code/modules/mob/living/carbon/human/status_procs.dm @@ -34,12 +34,11 @@ /mob/living/carbon/human/set_drugginess(amount) ..() if(!amount) - remove_language(/datum/language/beachbum) + remove_language(/datum/language/beachbum, TRUE, TRUE, LANGUAGE_HIGH) /mob/living/carbon/human/adjust_drugginess(amount) ..() - if(!dna.check_mutation(STONER)) - if(druggy) - grant_language(/datum/language/beachbum) - else - remove_language(/datum/language/beachbum) + if(druggy) + grant_language(/datum/language/beachbum, TRUE, TRUE, LANGUAGE_HIGH) + else + remove_language(/datum/language/beachbum, TRUE, TRUE, LANGUAGE_HIGH) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 10a630e034..e399ddf872 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -129,16 +129,18 @@ There are several things that need to be remembered: alt_worn = U.anthro_mob_worn_overlay || 'icons/mob/clothing/uniform_digi.dmi' variant_flag |= STYLE_DIGITIGRADE + var/mask + if(dna.species.mutant_bodyparts["taur"]) + var/datum/sprite_accessory/taur/T = GLOB.taur_list[dna.features["taur"]] + var/clip_flag = U.mutantrace_variation & T?.hide_legs + if(clip_flag) + variant_flag |= clip_flag + mask = T.alpha_mask_state + var/mutable_appearance/uniform_overlay - if(dna && dna.species.sexes) - var/G = (dna.features["body_model"] == FEMALE) ? "f" : "m" - if(G == "f" && U.fitted != NO_FEMALE_UNIFORM) - uniform_overlay = U.build_worn_icon(UNIFORM_LAYER, alt_worn, FALSE, U.fitted, target_overlay, variant_flag, FALSE) - - if(!uniform_overlay) - uniform_overlay = U.build_worn_icon( UNIFORM_LAYER, alt_worn, FALSE, NO_FEMALE_UNIFORM, target_overlay, variant_flag, FALSE) - + var/gendered = (dna?.species.sexes && dna.features["body_model"] == FEMALE) ? U.fitted : NO_FEMALE_UNIFORM + uniform_overlay = U.build_worn_icon( UNIFORM_LAYER, alt_worn, FALSE, gendered, target_overlay, variant_flag, FALSE, mask) if(OFFSET_UNIFORM in dna.species.offset_features) uniform_overlay.pixel_x += dna.species.offset_features[OFFSET_UNIFORM][1] @@ -269,6 +271,11 @@ There are several things that need to be remembered: var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_SHOES] inv.update_icon() + if(dna.species.mutant_bodyparts["taur"]) + var/datum/sprite_accessory/taur/T = GLOB.taur_list[dna.features["taur"]] + if(T?.hide_legs) //If only they actually made shoes unwearable. Please don't making cosmetics, guys. + return + if(shoes) var/obj/item/clothing/shoes/S = shoes shoes.screen_loc = ui_shoes //move the item to the appropriate screen loc @@ -514,12 +521,17 @@ There are several things that need to be remembered: overlays_standing[BACK_LAYER] = back_overlay apply_overlay(BACK_LAYER) -/proc/wear_female_version(t_color, icon, layer, type) - var/index = "[t_color]-[icon]" - var/icon/female_clothing_icon = GLOB.female_clothing_icons[index] - if(!female_clothing_icon) //Create standing/laying icons if they don't exist - generate_female_clothing(index,t_color,icon,type) - return mutable_appearance(GLOB.female_clothing_icons[index], layer = -layer) +/proc/wear_alpha_masked_version(state, icon, layer, female, alpha_mask) + var/mask = "-[alpha_mask]" + if(islist(alpha_mask)) + mask = "-" + for(var/t in alpha_mask) + mask += t + var/index = "[state]-[icon]-[female][mask]" + . = GLOB.alpha_masked_worn_icons[index] + if(!.) //Create standing/laying icons if they don't exist + . = generate_alpha_masked_clothing(index,state,icon,female,alpha_mask) + return mutable_appearance(., layer = -layer) /mob/living/carbon/human/proc/get_overlays_copy(list/unwantedLayers) var/list/out = new @@ -574,10 +586,12 @@ generate/load female uniform sprites matching all previously decided variables style_flags: mutant race appearance flags, mostly used for worn_overlays() +alpha_mask: a text string or list of text, the actual icons are stored in a global list and associated with said text string(s). + use_mob_overlay_icon: if FALSE, it will always use the default_icon_file even if mob_overlay_icon is present. */ -/obj/item/proc/build_worn_icon(default_layer = 0, default_icon_file = null, isinhands = FALSE, femaleuniform = NO_FEMALE_UNIFORM, override_state, style_flags = NONE, use_mob_overlay_icon = TRUE) +/obj/item/proc/build_worn_icon(default_layer = 0, default_icon_file = null, isinhands = FALSE, femaleuniform = NO_FEMALE_UNIFORM, override_state, style_flags = NONE, use_mob_overlay_icon = TRUE, alpha_mask) var/t_state t_state = override_state || item_state || icon_state @@ -597,8 +611,8 @@ use_mob_overlay_icon: if FALSE, it will always use the default_icon_file even if layer2use = default_layer var/mutable_appearance/standing - if(femaleuniform) - standing = wear_female_version(t_state,file2use,layer2use,femaleuniform) + if(femaleuniform || alpha_mask) + standing = wear_alpha_masked_version(t_state, file2use, layer2use, femaleuniform, alpha_mask) if(!standing) standing = mutable_appearance(file2use, t_state, -layer2use) @@ -661,19 +675,17 @@ use_mob_overlay_icon: if FALSE, it will always use the default_icon_file even if . += "-[dna.features["body_model"]]" - var/is_taur = FALSE - if(dna.species.mutant_bodyparts["taur"] && dna.features["taur"] != "None") - is_taur = TRUE - + if(dna.species.mutant_bodyparts["taur"]) + var/datum/sprite_accessory/taur/T = GLOB.taur_list[dna.features["taur"]] + if(T?.hide_legs) + is_taur = TRUE + var/static/list/leg_day = typecacheof(list(/obj/item/bodypart/r_leg, /obj/item/bodypart/l_leg)) for(var/X in bodyparts) var/obj/item/bodypart/BP = X - - if(istype(BP, /obj/item/bodypart/r_leg) || istype(BP, /obj/item/bodypart/l_leg)) - if(is_taur) - continue - + if(is_taur && leg_day[BP.type]) + continue . += "-[BP.body_zone]" if(BP.status == BODYPART_ORGANIC) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 8097859aac..00a0991e19 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -235,7 +235,7 @@ //TOXINS/PLASMA if(Toxins_partialpressure > safe_tox_max) var/ratio = (breath_gases[/datum/gas/plasma]/safe_tox_max) * 10 - adjustToxLoss(CLAMP(ratio, MIN_TOXIC_GAS_DAMAGE, MAX_TOXIC_GAS_DAMAGE)) + adjustToxLoss(clamp(ratio, MIN_TOXIC_GAS_DAMAGE, MAX_TOXIC_GAS_DAMAGE)) throw_alert("too_much_tox", /obj/screen/alert/too_much_tox) else clear_alert("too_much_tox") diff --git a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm index a06d65ad4b..1b0856bfcd 100644 --- a/code/modules/mob/living/carbon/monkey/combat.dm +++ b/code/modules/mob/living/carbon/monkey/combat.dm @@ -111,7 +111,7 @@ if(pickupTarget) if(restrained() || blacklistItems[pickupTarget] || HAS_TRAIT(pickupTarget, TRAIT_NODROP)) pickupTarget = null - else + else if(!isobj(loc) || istype(loc, /obj/item/clothing/head/mob_holder)) pickupTimer++ if(pickupTimer >= 4) blacklistItems[pickupTarget] ++ @@ -126,10 +126,8 @@ pickupTarget = null pickupTimer = 0 else if(ismob(pickupTarget.loc)) // in someones hand - if(istype(pickupTarget, /obj/item/clothing/head/mob_holder/)) - var/obj/item/clothing/head/mob_holder/h = pickupTarget - if(h && h.held_mob==src) - return//dont let them pickpocket themselves + if(istype(pickupTarget, /obj/item/clothing/head/mob_holder)) + return//dont let them pickpocket themselves or hold other monkys. var/mob/M = pickupTarget.loc if(!pickpocketing) pickpocketing = TRUE diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index d3e5941e4e..18c3fde188 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -65,20 +65,20 @@ /mob/living/carbon/monkey/on_reagent_change() . = ..() - remove_movespeed_modifier(MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD, TRUE) var/amount if(reagents.has_reagent(/datum/reagent/medicine/morphine)) amount = -1 if(amount) - add_movespeed_modifier(MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = amount) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/monkey_reagent_speedmod, TRUE, amount) /mob/living/carbon/monkey/updatehealth() . = ..() var/slow = 0 - var/health_deficiency = (100 - health) - if(health_deficiency >= 45) - slow += (health_deficiency / 25) - add_movespeed_modifier(MOVESPEED_ID_MONKEY_HEALTH_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = slow) + if(!HAS_TRAIT(src, TRAIT_IGNOREDAMAGESLOWDOWN)) + var/health_deficiency = (maxHealth - health) + if(health_deficiency >= 45) + slow += (health_deficiency / 25) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/monkey_health_speedmod, TRUE, slow) /mob/living/carbon/monkey/adjust_bodytemperature(amount) . = ..() @@ -87,7 +87,7 @@ slow += (283.222 - bodytemperature) / 10 * 1.75 if(slow <= 0) return - add_movespeed_modifier(MOVESPEED_ID_MONKEY_TEMPERATURE_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = amount) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/monkey_temperature_speedmod, TRUE, slow) /mob/living/carbon/monkey/Stat() ..() @@ -99,7 +99,6 @@ if(changeling) stat("Chemical Storage", "[changeling.chem_charges]/[changeling.chem_storage]") stat("Absorbed DNA", changeling.absorbedcount) - return /mob/living/carbon/monkey/verb/removeinternal() diff --git a/code/modules/mob/living/carbon/say.dm b/code/modules/mob/living/carbon/say.dm index 30c962f9a5..865a1ac83f 100644 --- a/code/modules/mob/living/carbon/say.dm +++ b/code/modules/mob/living/carbon/say.dm @@ -12,9 +12,9 @@ return 0 return ..() -/mob/living/carbon/could_speak_in_language(datum/language/dt) +/mob/living/carbon/could_speak_language(datum/language/language) var/obj/item/organ/tongue/T = getorganslot(ORGAN_SLOT_TONGUE) if(T) - . = T.could_speak_in_language(dt) + return T.could_speak_language(language) else - . = initial(dt.flags) & TONGUELESS_SPEECH \ No newline at end of file + return initial(language.flags) & TONGUELESS_SPEECH \ No newline at end of file diff --git a/code/modules/mob/living/carbon/status_procs.dm b/code/modules/mob/living/carbon/status_procs.dm index 6c497bb8d4..a47bb7fb4a 100644 --- a/code/modules/mob/living/carbon/status_procs.dm +++ b/code/modules/mob/living/carbon/status_procs.dm @@ -23,10 +23,10 @@ clear_alert("high") /mob/living/carbon/adjust_disgust(amount) - disgust = CLAMP(disgust+amount, 0, DISGUST_LEVEL_MAXEDOUT) + disgust = clamp(disgust+amount, 0, DISGUST_LEVEL_MAXEDOUT) /mob/living/carbon/set_disgust(amount) - disgust = CLAMP(amount, 0, DISGUST_LEVEL_MAXEDOUT) + disgust = clamp(amount, 0, DISGUST_LEVEL_MAXEDOUT) ////////////////////////////////////////TRAUMAS///////////////////////////////////////// diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index a431059a89..9a1c6c54b6 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -203,6 +203,12 @@ remove_overlay(BODYPARTS_LAYER) + var/is_taur = FALSE + if(dna?.species.mutant_bodyparts["taur"]) + var/datum/sprite_accessory/taur/T = GLOB.taur_list[dna.features["taur"]] + if(T?.hide_legs) + is_taur = TRUE + for(var/X in bodyparts) var/obj/item/bodypart/BP = X BP.update_limb() @@ -213,9 +219,12 @@ return //GENERATE NEW LIMBS + var/static/list/leg_day = typecacheof(list(/obj/item/bodypart/r_leg, /obj/item/bodypart/l_leg)) var/list/new_limbs = list() for(var/X in bodyparts) var/obj/item/bodypart/BP = X + if(is_taur && leg_day[BP.type]) + continue new_limbs += BP.get_limb_icon() if(new_limbs.len) overlays_standing[BODYPARTS_LAYER] = new_limbs diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index d5e1fa6fc4..3257b0e3bf 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -88,7 +88,7 @@ if(EFFECT_STUN) Stun(effect * hit_percent) if(EFFECT_KNOCKDOWN) - DefaultCombatKnockdown(effect * hit_percent, override_stamdmg = knockdown_stammax ? CLAMP(knockdown_stamoverride, 0, knockdown_stammax-getStaminaLoss()) : knockdown_stamoverride) + DefaultCombatKnockdown(effect * hit_percent, override_stamdmg = knockdown_stammax ? clamp(knockdown_stamoverride, 0, knockdown_stammax-getStaminaLoss()) : knockdown_stamoverride) if(EFFECT_UNCONSCIOUS) Unconscious(effect * hit_percent) if(EFFECT_IRRADIATE) @@ -140,7 +140,7 @@ /mob/living/proc/adjustBruteLoss(amount, updating_health = TRUE, forced = FALSE) if(!forced && (status_flags & GODMODE)) return FALSE - bruteloss = CLAMP((bruteloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2) + bruteloss = clamp((bruteloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2) if(updating_health) updatehealth() return amount @@ -151,7 +151,7 @@ /mob/living/proc/adjustOxyLoss(amount, updating_health = TRUE, forced = FALSE) if(!forced && (status_flags & GODMODE)) return FALSE - oxyloss = CLAMP((oxyloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2) + oxyloss = clamp((oxyloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2) if(updating_health) updatehealth() return amount @@ -170,7 +170,7 @@ /mob/living/proc/adjustToxLoss(amount, updating_health = TRUE, forced = FALSE) if(!forced && (status_flags & GODMODE)) return FALSE - toxloss = CLAMP((toxloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2) + toxloss = clamp((toxloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2) if(updating_health) updatehealth() return amount @@ -189,7 +189,7 @@ /mob/living/proc/adjustFireLoss(amount, updating_health = TRUE, forced = FALSE) if(!forced && (status_flags & GODMODE)) return FALSE - fireloss = CLAMP((fireloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2) + fireloss = clamp((fireloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2) if(updating_health) updatehealth() return amount @@ -200,7 +200,7 @@ /mob/living/proc/adjustCloneLoss(amount, updating_health = TRUE, forced = FALSE) if(!forced && (status_flags & GODMODE)) return FALSE - cloneloss = CLAMP((cloneloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2) + cloneloss = clamp((cloneloss + (amount * CONFIG_GET(number/damage_multiplier))), 0, maxHealth * 2) if(updating_health) updatehealth() return amount diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 22a0da2cf6..db5771f75e 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -68,7 +68,7 @@ var/obj/O = A if(ObjBump(O)) return - if(ismovableatom(A)) + if(ismovable(A)) var/atom/movable/AM = A if(PushAM(AM, move_force)) return @@ -316,6 +316,45 @@ update_pull_movespeed() + set_pull_offsets(M, state) + +/mob/living/proc/set_pull_offsets(mob/living/M, grab_state = GRAB_PASSIVE) + if(M.buckled || M.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) + return //don't make them change direction or offset them if they're buckled into something or in combat mode. + var/offset = 0 + switch(grab_state) + if(GRAB_PASSIVE) + offset = GRAB_PIXEL_SHIFT_PASSIVE + if(GRAB_AGGRESSIVE) + offset = GRAB_PIXEL_SHIFT_AGGRESSIVE + if(GRAB_NECK) + offset = GRAB_PIXEL_SHIFT_NECK + if(GRAB_KILL) + offset = GRAB_PIXEL_SHIFT_NECK + M.setDir(get_dir(M, src)) + switch(M.dir) + if(NORTH) + animate(M, pixel_x = 0, pixel_y = offset, 3) + if(SOUTH) + animate(M, pixel_x = 0, pixel_y = -offset, 3) + if(EAST) + if(M.lying == 270) //update the dragged dude's direction if we've turned + M.lying = 90 + M.update_transform() //force a transformation update, otherwise it'll take a few ticks for update_mobility() to do so + M.lying_prev = M.lying + animate(M, pixel_x = offset, pixel_y = 0, 3) + if(WEST) + if(M.lying == 90) + M.lying = 270 + M.update_transform() + M.lying_prev = M.lying + animate(M, pixel_x = -offset, pixel_y = 0, 3) + +/mob/living/proc/reset_pull_offsets(mob/living/M, override) + if(!override && M.buckled) + return + animate(M, pixel_x = 0, pixel_y = 0, 1) + //mob verbs are a lot faster than object verbs //for more info on why this is not atom/pull, see examinate() in mob.dm /mob/living/verb/pulled(atom/movable/AM as mob|obj in oview(1)) @@ -328,6 +367,8 @@ stop_pulling() /mob/living/stop_pulling() + if(ismob(pulling)) + reset_pull_offsets(pulling) ..() update_pull_movespeed() update_pull_hud_icon() @@ -502,8 +543,16 @@ var/obj/effect/proc_holder/spell/spell = S spell.updateButtonIcon() +//proc used to remove all immobilisation effects + reset stamina +/mob/living/proc/remove_CC(should_update_mobility = TRUE) + SetAllImmobility(0, FALSE) + setStaminaLoss(0) + SetUnconscious(0, FALSE) + if(should_update_mobility) + update_mobility() + //proc used to completely heal a mob. -/mob/living/proc/fully_heal(admin_revive = 0) +/mob/living/proc/fully_heal(admin_revive = FALSE) restore_blood() setToxLoss(0, 0) //zero as second argument not automatically call updatehealth(). setOxyLoss(0, 0) @@ -645,7 +694,7 @@ attempt_resist_grab(FALSE) // Return as we should only resist one thing at a time. Give clickdelay if the grab wasn't passive. return old_gs? TRUE : FALSE - + // unbuckling yourself. stops the chain if you try it. if(buckled && last_special <= world.time) log_combat(src, buckled, "resisted buckle") @@ -1030,7 +1079,7 @@ update_fire() /mob/living/proc/adjust_fire_stacks(add_fire_stacks) //Adjusting the amount of fire_stacks we have on person - fire_stacks = CLAMP(fire_stacks + add_fire_stacks, -20, 20) + fire_stacks = clamp(fire_stacks + add_fire_stacks, -20, 20) if(on_fire && fire_stacks <= 0) ExtinguishMob() diff --git a/code/modules/mob/living/living_block.dm b/code/modules/mob/living/living_block.dm index d9e3309e47..8156f83dbd 100644 --- a/code/modules/mob/living/living_block.dm +++ b/code/modules/mob/living/living_block.dm @@ -1,7 +1,10 @@ -// This file has a weird name, but it's for anything related to the checks for shields, blocking, dodging, and similar "stop this attack before it actually impacts the target" as opposed to "defend once it has hit". +// This file has a weird name, but it's for anything related to the checks for shields, blocking, dodging, +// and similar "stop this attack before it actually impacts the target" as opposed to "defend once it has hit". /* -/// Bitflags for check_block() and handle_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS. +/// You can find the mob_check_block() and mob_run_block() macros in __DEFINES/combat.dm + +/// Bitflags for check_block() and run_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS. /// Attack was not blocked #define BLOCK_NONE NONE /// Attack was blocked, do not do damage. THIS FLAG MUST BE THERE FOR DAMAGE/EFFECT PREVENTION! @@ -23,14 +26,6 @@ #define BLOCK_TARGET_DODGED (1<<7) */ -///Check whether or not we can block, without "triggering" a block. Basically run checks without effects like depleting shields. Wrapper for do_run_block(). The arguments on that means the same as for this. -/mob/living/proc/check_block(atom/object, damage, attack_text = "the attack", attack_type, armour_penetration, mob/attacker, def_zone, list/return_list) - return do_run_block(FALSE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list) - -/// Runs a block "sequence", effectively checking and then doing effects if necessary. Wrapper for do_run_block(). The arguments on that means the same as for this. -/mob/living/proc/run_block(atom/object, damage, attack_text = "the attack", attack_type, armour_penetration, mob/attacker, def_zone, list/return_list) - return do_run_block(TRUE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list) - /** The actual proc for block checks. DO NOT USE THIS DIRECTLY UNLESS YOU HAVE VERY GOOD REASON TO. To reduce copypaste for differences between handling for real attacks and virtual checks. * Automatically checks all held items for /obj/item/proc/run_block() with the same parameters. * @params @@ -57,7 +52,7 @@ if(real_attack) for(var/obj/item/I in tocheck) // i don't like this too - var/final_block_chance = I.block_chance - (CLAMP((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example + var/final_block_chance = I.block_chance - (clamp((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example var/results = I.run_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list) . |= results if((results & BLOCK_SUCCESS) && !(results & BLOCK_CONTINUE_CHAIN)) @@ -65,12 +60,13 @@ else for(var/obj/item/I in tocheck) // i don't like this too - var/final_block_chance = I.block_chance - (CLAMP((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example + var/final_block_chance = I.block_chance - (clamp((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example I.check_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list) /// Gets an unsortedlist of objects to run block checks on. /mob/living/proc/get_blocking_items() . = list() + SEND_SIGNAL(src, COMSIG_LIVING_GET_BLOCKING_ITEMS, .) for(var/obj/item/I in held_items) // this is a bad check but i am not removing it until a better catchall is made if(istype(I, /obj/item/clothing)) @@ -85,11 +81,13 @@ /// Runs block and returns flag for do_run_block to process. /obj/item/proc/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - SEND_SIGNAL(src, COMSIG_ITEM_RUN_BLOCK, owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return) + . = SEND_SIGNAL(src, COMSIG_ITEM_RUN_BLOCK, owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return) + if(. & BLOCK_SUCCESS) + return if(prob(final_block_chance)) owner.visible_message("[owner] blocks [attack_text] with [src]!") - return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL - return BLOCK_NONE + return . | BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL + return . | BLOCK_NONE /// Returns block information using list/block_return. Used for check_block() on mobs. /obj/item/proc/check_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) diff --git a/code/modules/mob/living/living_combat.dm b/code/modules/mob/living/living_combat.dm index 493f2ffdff..dbdcd1ea5b 100644 --- a/code/modules/mob/living/living_combat.dm +++ b/code/modules/mob/living/living_combat.dm @@ -17,7 +17,7 @@ update_combat_mode_icon() /mob/living/proc/disable_combat_mode(silent = TRUE, was_forced = FALSE, visible = FALSE, update_icon = TRUE) - if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) || (combat_flags & COMBAT_FLAG_COMBAT_FORCED)) return DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_COMBAT_ACTIVE) SEND_SIGNAL(src, COMSIG_LIVING_COMBAT_DISABLED, was_forced) @@ -60,6 +60,8 @@ /mob/living/proc/disable_intentional_combat_mode(silent = TRUE, visible = FALSE) if(!(combat_flags & COMBAT_FLAG_COMBAT_TOGGLED) && !(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) return + if(combat_flags & COMBAT_FLAG_COMBAT_FORCED) + return DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_COMBAT_TOGGLED) if(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) disable_combat_mode(silent, FALSE, visible, FALSE) @@ -71,6 +73,9 @@ /mob/living/proc/user_toggle_intentional_combat_mode(visible = TRUE) var/old = (combat_flags & COMBAT_FLAG_COMBAT_TOGGLED) if(old) + if(combat_flags & COMBAT_FLAG_COMBAT_FORCED) + to_chat(src, "You are unable to relax your muscles.") + return disable_intentional_combat_mode() playsound_local(src, 'sound/misc/ui_toggleoff.ogg', 50, FALSE, pressure_affected = FALSE) //Slightly modified version of the above! else if(CAN_TOGGLE_COMBAT_MODE(src)) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 7d220739d5..4cf6fc3694 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -68,7 +68,7 @@ /mob/living/bullet_act(obj/item/projectile/P, def_zone) if(P.original != src || P.firer != src) //try to block or reflect the bullet, can't do so when shooting oneself var/list/returnlist = list() - var/returned = run_block(P, P.damage, "the [P.name]", ATTACK_TYPE_PROJECTILE, P.armour_penetration, P.firer, def_zone, returnlist) + var/returned = mob_run_block(P, P.damage, "the [P.name]", ATTACK_TYPE_PROJECTILE, P.armour_penetration, P.firer, def_zone, returnlist) if(returned & BLOCK_SHOULD_REDIRECT) handle_projectile_attack_redirection(P, returnlist[BLOCK_RETURN_REDIRECT_METHOD]) if(returned & BLOCK_REDIRECTED) @@ -88,9 +88,9 @@ /obj/item/proc/get_volume_by_throwforce_and_or_w_class() if(throwforce && w_class) - return CLAMP((throwforce + w_class) * 5, 30, 100)// Add the item's throwforce to its weight class and multiply by 5, then clamp the value between 30 and 100 + return clamp((throwforce + w_class) * 5, 30, 100)// Add the item's throwforce to its weight class and multiply by 5, then clamp the value between 30 and 100 else if(w_class) - return CLAMP(w_class * 8, 20, 100) // Multiply the item's weight class by 8, then clamp the value between 20 and 100 + return clamp(w_class * 8, 20, 100) // Multiply the item's weight class by 8, then clamp the value between 20 and 100 else return 0 @@ -111,7 +111,7 @@ I = AM throwpower = I.throwforce var/impacting_zone = ran_zone(BODY_ZONE_CHEST, 65)//Hits a random part of the body, geared towards the chest - if(run_block(AM, throwpower, "\the [AM.name]", ATTACK_TYPE_THROWN, 0, throwingdatum?.thrower, impacting_zone) & BLOCK_SUCCESS) + if(mob_run_block(AM, throwpower, "\the [AM.name]", ATTACK_TYPE_THROWN, 0, throwingdatum?.thrower, impacting_zone, null) & BLOCK_SUCCESS) hitpush = FALSE skipcatch = TRUE blocked = TRUE @@ -264,12 +264,13 @@ update_mobility() //we fall down if(!buckled && !density) Move(user.loc) + user.set_pull_offsets(src, grab_state) return 1 /mob/living/attack_hand(mob/user) ..() //Ignoring parent return value here. SEND_SIGNAL(src, COMSIG_MOB_ATTACK_HAND, user) - if((user != src) && user.a_intent != INTENT_HELP && (run_block(user, 0, user.name, ATTACK_TYPE_UNARMED | ATTACK_TYPE_MELEE, null, user, check_zone(user.zone_selected)) & BLOCK_SUCCESS)) + if((user != src) && user.a_intent != INTENT_HELP && (mob_run_block(user, 0, user.name, ATTACK_TYPE_UNARMED | ATTACK_TYPE_MELEE, null, user, check_zone(user.zone_selected), null) & BLOCK_SUCCESS)) log_combat(user, src, "attempted to touch") visible_message("[user] attempted to touch [src]!") return TRUE @@ -280,7 +281,7 @@ to_chat(user, "You don't want to hurt [src]!") return TRUE var/hulk_verb = pick("smash","pummel") - if(user != src && (run_block(user, 15, "the [hulk_verb]ing", ATTACK_TYPE_MELEE, null, user, check_zone(user.zone_selected)) & BLOCK_SUCCESS)) + if(user != src && (mob_run_block(user, 15, "the [hulk_verb]ing", ATTACK_TYPE_MELEE, null, user, check_zone(user.zone_selected), null) & BLOCK_SUCCESS)) return TRUE ..() return FALSE @@ -302,7 +303,7 @@ var/damage = rand(5, 35) if(M.is_adult) damage = rand(20, 40) - if(run_block(M, damage, "the [M.name]", ATTACK_TYPE_MELEE, null, M, check_zone(M.zone_selected)) & BLOCK_SUCCESS) + if(mob_run_block(M, damage, "the [M.name]", ATTACK_TYPE_MELEE, null, M, check_zone(M.zone_selected), null) & BLOCK_SUCCESS) return FALSE if (stat != DEAD) @@ -321,7 +322,7 @@ if(HAS_TRAIT(M, TRAIT_PACIFISM)) to_chat(M, "You don't want to hurt anyone!") return FALSE - if(run_block(M, rand(M.melee_damage_lower, M.melee_damage_upper), "the [M.name]", ATTACK_TYPE_MELEE, M.armour_penetration, M, check_zone(M.zone_selected)) & BLOCK_SUCCESS) + if(mob_run_block(M, rand(M.melee_damage_lower, M.melee_damage_upper), "the [M.name]", ATTACK_TYPE_MELEE, M.armour_penetration, M, check_zone(M.zone_selected), null) & BLOCK_SUCCESS) return FALSE if(M.attack_sound) playsound(loc, M.attack_sound, 50, 1, 1) @@ -339,7 +340,7 @@ if(M.is_muzzled() || (M.wear_mask && M.wear_mask.flags_cover & MASKCOVERSMOUTH)) to_chat(M, "You can't bite with your mouth covered!") return FALSE - if(run_block(M, 0, "the [M.name]", ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED, M, check_zone(M.zone_selected)) & BLOCK_SUCCESS) + if(mob_run_block(M, 0, "the [M.name]", ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED, 0, M, check_zone(M.zone_selected), null) & BLOCK_SUCCESS) return FALSE M.do_attack_animation(src, ATTACK_EFFECT_BITE) if (prob(75)) @@ -363,7 +364,7 @@ if(HAS_TRAIT(L, TRAIT_PACIFISM)) to_chat(L, "You don't want to hurt anyone!") return FALSE - if(L != src && (run_block(L, rand(1, 3), "the [L.name]", ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED, L, check_zone(L.zone_selected)) & BLOCK_SUCCESS)) + if(L != src && (mob_run_block(L, rand(1, 3), "the [L.name]", ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED, 0, L, check_zone(L.zone_selected), null) & BLOCK_SUCCESS)) return FALSE L.do_attack_animation(src) if(prob(90)) @@ -377,7 +378,7 @@ "[L.name] has attempted to bite [src]!", null, COMBAT_MESSAGE_RANGE) /mob/living/attack_alien(mob/living/carbon/alien/humanoid/M) - if((M != src) && M.a_intent != INTENT_HELP && (run_block(M, 0, "the [M.name]", ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED, M, check_zone(M.zone_selected)) & BLOCK_SUCCESS)) + if((M != src) && M.a_intent != INTENT_HELP && (mob_run_block(M, 0, "the [M.name]", ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED, 0, M, check_zone(M.zone_selected), null) & BLOCK_SUCCESS)) visible_message("[M] attempted to touch [src]!") return FALSE switch(M.a_intent) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 0b4be7d463..228028eb9b 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -98,8 +98,6 @@ var/datum/riding/riding_datum - var/datum/language/selected_default_language - var/last_words //used for database logging var/list/obj/effect/proc_holder/abilities = list() diff --git a/code/modules/mob/living/living_mobility.dm b/code/modules/mob/living/living_mobility.dm index 49d4a20887..32038a6102 100644 --- a/code/modules/mob/living/living_mobility.dm +++ b/code/modules/mob/living/living_mobility.dm @@ -94,11 +94,13 @@ if(should_be_lying) mobility_flags &= ~MOBILITY_STAND + setMovetype(movement_type | CRAWLING) if(!lying) //force them on the ground lying = pick(90, 270) if(has_gravity() && !buckled) playsound(src, "bodyfall", 20, 1) else + setMovetype(movement_type & ~CRAWLING) mobility_flags |= MOBILITY_STAND lying = 0 @@ -161,8 +163,8 @@ if(!has_legs && has_arms < 2) limbless_slowdown += 6 - (has_arms * 3) if(limbless_slowdown) - add_movespeed_modifier(MOVESPEED_ID_LIVING_LIMBLESS, update=TRUE, priority=100, override=TRUE, multiplicative_slowdown=limbless_slowdown, blacklisted_movetypes = FLYING|FLOATING) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/limbless, multiplicative_slowdown = limbless_slowdown) else - remove_movespeed_modifier(MOVESPEED_ID_LIVING_LIMBLESS, update=TRUE) + remove_movespeed_modifier(/datum/movespeed_modifier/limbless) return mobility_flags diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index ec291094fe..6a84162ea8 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -36,38 +36,26 @@ sprint_stamina_cost = CONFIG_GET(number/movedelay/sprint_stamina_cost) return ..() -/mob/living/movement_delay(ignorewalk = 0) - . = ..() - if(!CHECK_MOBILITY(src, MOBILITY_STAND)) - . += 6 - /// whether or not we can slide under another living mob. defaults to if we're not dense. CanPass should check "overriding circumstances" like buckled mobs/having PASSMOB flag, etc. /mob/living/proc/can_move_under_living(mob/living/other) return !density /mob/living/proc/update_move_intent_slowdown() - var/mod = 0 - if(m_intent == MOVE_INTENT_WALK) - mod = CONFIG_GET(number/movedelay/walk_delay) - else - mod = CONFIG_GET(number/movedelay/run_delay) - if(!isnum(mod)) - mod = 1 - add_movespeed_modifier(MOVESPEED_ID_MOB_WALK_RUN_CONFIG_SPEED, TRUE, 100, override = TRUE, multiplicative_slowdown = mod) + add_movespeed_modifier((m_intent == MOVE_INTENT_WALK)? /datum/movespeed_modifier/config_walk_run/walk : /datum/movespeed_modifier/config_walk_run/run) /mob/living/proc/update_turf_movespeed(turf/open/T) - if(isopenturf(T) && !is_flying()) - add_movespeed_modifier(MOVESPEED_ID_LIVING_TURF_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = T.slowdown) + if(isopenturf(T)) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/turf_slowdown, multiplicative_slowdown = T.slowdown) else - remove_movespeed_modifier(MOVESPEED_ID_LIVING_TURF_SPEEDMOD) + remove_movespeed_modifier(/datum/movespeed_modifier/turf_slowdown) /mob/living/proc/update_pull_movespeed() if(pulling && isliving(pulling)) var/mob/living/L = pulling if(drag_slowdown && L.lying && !L.buckled && grab_state < GRAB_AGGRESSIVE) - add_movespeed_modifier(MOVESPEED_ID_PRONE_DRAGGING, multiplicative_slowdown = PULL_PRONE_SLOWDOWN) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/bulky_drag, multiplicative_slowdown = PULL_PRONE_SLOWDOWN) return - remove_movespeed_modifier(MOVESPEED_ID_PRONE_DRAGGING) + remove_movespeed_modifier(/datum/movespeed_modifier/bulky_drag) /mob/living/canZMove(dir, turf/target) return can_zTravel(target, dir) && (movement_type & FLYING) @@ -87,8 +75,12 @@ . = ..() - if(pulledby && moving_diagonally != FIRST_DIAG_STEP && get_dist(src, pulledby) > 1)//separated from our puller and not in the middle of a diagonal move. + if(pulledby && moving_diagonally != FIRST_DIAG_STEP && get_dist(src, pulledby) > 1 && (pulledby != moving_from_pull))//separated from our puller and not in the middle of a diagonal move. pulledby.stop_pulling() + else + if(isliving(pulledby)) + var/mob/living/L = pulledby + L.set_pull_offsets(src, pulledby.grab_state) if(active_storage && !(CanReach(active_storage.parent,view_only = TRUE))) active_storage.close(src) @@ -96,6 +88,14 @@ if(lying && !buckled && prob(getBruteLoss()*200/maxHealth)) makeTrail(newloc, T, old_direction) + +/mob/living/Move_Pulled(atom/A) + . = ..() + if(!. || !isliving(A)) + return + var/mob/living/L = A + set_pull_offsets(L, grab_state) + /mob/living/forceMove(atom/destination) stop_pulling() if(buckled) diff --git a/code/modules/mob/living/living_sprint.dm b/code/modules/mob/living/living_sprint.dm index 55d5f3320c..dc0f6d2767 100644 --- a/code/modules/mob/living/living_sprint.dm +++ b/code/modules/mob/living/living_sprint.dm @@ -33,7 +33,7 @@ update_sprint_icon() /mob/living/proc/disable_sprint_mode(update_icon = TRUE) - if(!(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)) + if(!(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) || (combat_flags & COMBAT_FLAG_SPRINT_FORCED)) return DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_ACTIVE) if(update_icon) @@ -51,6 +51,8 @@ /mob/living/proc/disable_intentional_sprint_mode() if(!(combat_flags & COMBAT_FLAG_SPRINT_TOGGLED) && !(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)) return + if(combat_flags & COMBAT_FLAG_SPRINT_FORCED) + return DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_TOGGLED) if(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) disable_sprint_mode(FALSE) @@ -59,6 +61,9 @@ /mob/living/proc/user_toggle_intentional_sprint_mode() var/old = (combat_flags & COMBAT_FLAG_SPRINT_TOGGLED) if(old) + if(combat_flags & COMBAT_FLAG_SPRINT_FORCED) + to_chat(src, "You are unable to stop sprinting!") + return disable_intentional_sprint_mode() if((m_intent == MOVE_INTENT_RUN) && CHECK_ALL_MOBILITY(src, MOBILITY_STAND|MOBILITY_MOVE)) playsound_local(src, 'sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index f90b285d2d..6caf96fedc 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -133,7 +133,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( var/datum/language/message_language = get_message_language(message) if(message_language) // No, you cannot speak in xenocommon just because you know the key - if(can_speak_in_language(message_language)) + if(can_speak_language(message_language)) language = message_language message = copytext_char(message, 3) @@ -141,7 +141,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( message = trim_left(message) if(!language) - language = get_default_language() + language = get_selected_language() // Detection of language needs to be before inherent channels, because // AIs use inherent channels for the holopad. Most inherent channels @@ -237,6 +237,10 @@ GLOBAL_LIST_INIT(department_radio_keys, list( deaf_message = "You can't hear yourself!" deaf_type = 2 // Since you should be able to hear yourself without looking + // Create map text prior to modifying message for goonchat + if (client?.prefs.chat_on_map && stat != UNCONSCIOUS && (client.prefs.see_chat_non_mob || ismob(speaker)) && can_hear()) + create_chat_message(speaker, message_language, raw_message, spans, message_mode) + // Recompose message for AI hrefs, language incomprehension. message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode, FALSE, source) @@ -289,7 +293,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( //speech bubble var/list/speech_bubble_recipients = list() for(var/mob/M in listening) - if(M.client) + if(M.client && !M.client.prefs.chat_on_map) speech_bubble_recipients.Add(M.client) var/image/I = image('icons/mob/talk.dmi', src, "[bubble_type][say_test(message)]", FLY_LAYER) I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA @@ -411,11 +415,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( /mob/living/whisper(message, bubble_type, list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null) say("#[message]", bubble_type, spans, sanitize, language, ignore_spam, forced) -/mob/living/get_language_holder(shadow=TRUE) - if(mind && shadow) - // Mind language holders shadow mob holders. - . = mind.get_language_holder() - if(.) - return . - +/mob/living/get_language_holder(get_minds = TRUE) + if(get_minds && mind) + return mind.get_language_holder() . = ..() diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index d178af9fb0..dff5584617 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -822,21 +822,21 @@ return get_dist(src, A) <= max(viewscale[1]*0.5,viewscale[2]*0.5) /mob/living/silicon/ai/proc/relay_speech(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode) - raw_message = lang_treat(speaker, message_language, raw_message, spans, message_mode) + var/treated_message = lang_treat(speaker, message_language, raw_message, spans, message_mode) var/start = "Relayed Speech: " var/namepart = "[speaker.GetVoice()][speaker.get_alt_name()]" var/hrefpart = "" - var/jobpart + var/jobpart = "Unknown" if (iscarbon(speaker)) var/mob/living/carbon/S = speaker if(S.job) jobpart = "[S.job]" - else - jobpart = "Unknown" - var/rendered = "[start][hrefpart][namepart] ([jobpart]) [raw_message]" + var/rendered = "[start][hrefpart][namepart] ([jobpart]) [treated_message]" + if (client?.prefs.chat_on_map && (client.prefs.see_chat_non_mob || ismob(speaker))) + create_chat_message(speaker, message_language, raw_message, spans, message_mode) show_message(rendered, MSG_AUDIBLE) /mob/living/silicon/ai/fully_replace_character_name(oldname,newname) @@ -869,7 +869,7 @@ if(istype(A, /obj/machinery/camera)) current = A if(client) - if(ismovableatom(A)) + if(ismovable(A)) if(A != GLOB.ai_camera_room_landmark) end_multicam() client.perspective = EYE_PERSPECTIVE @@ -1016,7 +1016,7 @@ if("Yes.") src.ghostize(FALSE, penalize = TRUE) var/announce_rank = "Artificial Intelligence," - if(GLOB.announcement_systems.len) + if(GLOB.announcement_systems.len) // Sends an announcement the AI has cryoed. var/obj/machinery/announcement_system/announcer = pick(GLOB.announcement_systems) announcer.announce("CRYOSTORAGE", src.real_name, announce_rank, list()) diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm index 4a76eafc53..2b5d3d98f2 100644 --- a/code/modules/mob/living/silicon/ai/say.dm +++ b/code/modules/mob/living/silicon/ai/say.dm @@ -171,10 +171,3 @@ #undef VOX_DELAY #endif - -/mob/living/silicon/ai/could_speak_in_language(datum/language/dt) - if(is_servant_of_ratvar(src)) - // Ratvarian AIs can only speak Ratvarian - . = ispath(dt, /datum/language/ratvar) - else - . = ..() diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 26fa3b505d..4b1b108b0e 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -154,7 +154,7 @@ /mob/living/silicon/pai/proc/process_hack() if(cable && cable.machine && istype(cable.machine, /obj/machinery/door) && cable.machine == hackdoor && get_dist(src, hackdoor) <= 1) - hackprogress = CLAMP(hackprogress + 4, 0, 100) + hackprogress = clamp(hackprogress + 4, 0, 100) else temp = "Door Jack: Connection to airlock has been lost. Hack aborted." hackprogress = 0 @@ -273,9 +273,9 @@ /mob/living/silicon/pai/Process_Spacemove(movement_dir = 0) . = ..() if(!.) - add_movespeed_modifier(MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD, TRUE, 100, multiplicative_slowdown = 2) + add_movespeed_modifier(/datum/movespeed_modifier/pai_spacewalk) return TRUE - remove_movespeed_modifier(MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD, TRUE) + remove_movespeed_modifier(/datum/movespeed_modifier/pai_spacewalk) return TRUE /mob/living/silicon/pai/examine(mob/user) @@ -301,7 +301,7 @@ update_stat() /mob/living/silicon/pai/process() - emitterhealth = CLAMP((emitterhealth + emitterregen), -50, emittermaxhealth) + emitterhealth = clamp((emitterhealth + emitterregen), -50, emittermaxhealth) /obj/item/paicard/attackby(obj/item/W, mob/user, params) ..() diff --git a/code/modules/mob/living/silicon/pai/pai_defense.dm b/code/modules/mob/living/silicon/pai/pai_defense.dm index 0477492c0a..ba162ecf2c 100644 --- a/code/modules/mob/living/silicon/pai/pai_defense.dm +++ b/code/modules/mob/living/silicon/pai/pai_defense.dm @@ -69,7 +69,7 @@ return FALSE //No we're not flammable /mob/living/silicon/pai/proc/take_holo_damage(amount) - emitterhealth = CLAMP((emitterhealth - amount), -50, emittermaxhealth) + emitterhealth = clamp((emitterhealth - amount), -50, emittermaxhealth) if(emitterhealth < 0) fold_in(force = TRUE) if(amount > 0) diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index 892cc3f13b..76ced767e8 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -267,9 +267,8 @@ if(href_list["toggle"]) encryptmod = TRUE if("translator") - if(href_list["toggle"]) - grant_all_languages(TRUE) - // this is PERMAMENT. + if(href_list["toggle"]) //This is permanent. + grant_all_languages(TRUE, TRUE, TRUE, LANGUAGE_SOFTWARE) if("doorjack") if(href_list["jack"]) if(cable && cable.machine) diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index cf67517c52..e04943a8c5 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -21,7 +21,7 @@ if(cell && cell.charge) if(cell.charge <= 100) uneq_all() - var/amt = CLAMP((lamp_intensity - 2) * 2,1,cell.charge) //Always try to use at least one charge per tick, but allow it to completely drain the cell. + var/amt = clamp((lamp_intensity - 2) * 2,1,cell.charge) //Always try to use at least one charge per tick, but allow it to completely drain the cell. cell.use(amt) //Usage table: 1/tick if off/lowest setting, 4 = 4/tick, 6 = 8/tick, 8 = 12/tick, 10 = 16/tick else uneq_all() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 4ef5993d2d..508dc67dd7 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -237,7 +237,7 @@ return if(!CONFIG_GET(flag/disable_secborg) && GLOB.security_level < CONFIG_GET(number/minimum_secborg_alert)) - to_chat(src, "NOTICE: Due to local station regulations, the security cyborg module and its variants are only available during [num2seclevel(CONFIG_GET(number/minimum_secborg_alert))] alert and greater.") + to_chat(src, "NOTICE: Due to local station regulations, the security cyborg module and its variants are only available during [NUM2SECLEVEL(CONFIG_GET(number/minimum_secborg_alert))] alert and greater.") var/list/modulelist = list("Standard" = /obj/item/robot_module/standard, \ "Engineering" = /obj/item/robot_module/engineering, \ @@ -427,24 +427,23 @@ else if(istype(W, /obj/item/stack/cable_coil) && wiresexposed) user.changeNext_move(CLICK_CD_MELEE) - var/obj/item/stack/cable_coil/coil = W if (getFireLoss() > 0 || getToxLoss() > 0) - if(src == user && coil.use(1)) + if(src == user) to_chat(user, "You start fixing yourself...") - if(!do_after(user, 50, target = src)) + if(!W.use_tool(src, user, 50, 1, max_level = JOB_SKILL_TRAINED)) + to_chat(user, "You need more cable to repair [src]!") return adjustFireLoss(-10) adjustToxLoss(-10) - if (coil.use(1)) + else to_chat(user, "You start fixing [src]...") - if(!do_after(user, 30, target = src)) + if(!W.use_tool(src, user, 30, 1)) + to_chat(user, "You need more cable to repair [src]!") return adjustFireLoss(-30) adjustToxLoss(-30) updatehealth() user.visible_message("[user] has fixed some of the burnt wires on [src].", "You fix some of the burnt wires on [src].") - else - to_chat(user, "You need more cable to repair [src]!") else to_chat(user, "The wires seem fine, there's no need to fix them.") diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 4659c907a6..539c11de4b 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -276,6 +276,19 @@ R.hud_used.update_robot_modules_display() SSblackbox.record_feedback("tally", "cyborg_modules", 1, R.module) +/** + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + */ +/obj/item/robot_module/proc/check_menu(mob/user) + if(!istype(user)) + return FALSE + if(user.incapacitated() || !user.Adjacent(src)) + return FALSE + return TRUE + /obj/item/robot_module/standard name = "Standard" basic_modules = list( @@ -337,13 +350,28 @@ /obj/item/robot_module/medical/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc - var/medmodels = list("Default", "Heavy", "Sleek", "Marina", "Droid", "Eyebot", "Medihound", "Medihound Dark", "Vale") - if(R.client && (R.client.ckey in list("nezuli"))) - medmodels += "Alina" - var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in medmodels - if(!borg_icon) - return FALSE - switch(borg_icon) + var/static/list/med_icons + if(!med_icons) + med_icons = list( + "Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "medical"), + "Droid" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "medical"), + "Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekmed"), + "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinamed"), + "Eyebot" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "eyebotmed"), + "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymed") + ) + var/list/L = list("Medihound" = "medihound", "Medihound Dark" = "medihounddark", "Vale" = "valemed") + for(var/a in L) + var/image/wide = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = L[a]) + wide.pixel_x = -16 + med_icons[a] = wide + if(R.client && R.client.ckey == "nezuli") + var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-med") + bad_snowflake.pixel_x = -16 + med_icons["Alina"] = bad_snowflake + med_icons = sortList(med_icons) + var/med_borg_icon = show_radial_menu(R, R , med_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE) + switch(med_borg_icon) if("Default") cyborg_base_icon = "medical" if("Droid") @@ -391,6 +419,8 @@ moduleselect_icon = "medihound" moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi' dogborg = TRUE + else + return FALSE return ..() /obj/item/robot_module/engineering @@ -434,13 +464,31 @@ /obj/item/robot_module/engineering/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc - var/list/engymodels = list("Default", "Default - Treads", "Heavy", "Sleek", "Marina", "Can", "Spider", "Loader","Handy", "Pup Dozer", "Vale") - if(R.client && (R.client.ckey in list("nezuli"))) - engymodels += "Alina" - var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in engymodels - if(!borg_icon) - return FALSE - switch(borg_icon) + var/static/list/engi_icons + if(!engi_icons) + engi_icons = list( + "Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "engineer"), + "Default - Treads" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "engi-tread"), + "Loader" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "loaderborg"), + "Handy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "handyeng"), + "Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekeng"), + "Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "caneng"), + "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinaeng"), + "Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "spidereng"), + "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyeng") + ) + var/list/L = list("Pup Dozer" = "pupdozer", "Vale" = "valeeng") + for(var/a in L) + var/image/wide = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = L[a]) + wide.pixel_x = -16 + engi_icons[a] = wide + if(R.client && R.client.ckey == "nezuli") + var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-eng") + bad_snowflake.pixel_x = -16 + engi_icons["Alina"] = bad_snowflake + engi_icons = sortList(engi_icons) + var/engi_borg_icon = show_radial_menu(R, R , engi_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE) + switch(engi_borg_icon) if("Default") cyborg_base_icon = "engineer" if("Default - Treads") @@ -485,6 +533,8 @@ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi' sleeper_overlay = "alinasleeper" dogborg = TRUE + else + return FALSE return ..() /obj/item/robot_module/security @@ -512,13 +562,29 @@ /obj/item/robot_module/security/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc - var/list/secmodels = list("Default", "Default - Treads", "Heavy", "Sleek", "Can", "Marina", "Spider", "K9", "K9 Dark", "Vale") - if(R.client && (R.client.ckey in list("nezuli"))) - secmodels += "Alina" - var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in secmodels - if(!borg_icon) - return FALSE - switch(borg_icon) + var/static/list/sec_icons + if(!sec_icons) + sec_icons = list( + "Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "sec"), + "Default - Treads" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sec-tread"), + "Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleeksec"), + "Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "cansec"), + "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinasec"), + "Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "spidersec"), + "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavysec") + ) + var/list/L = list("K9" = "k9", "Vale" = "valesec", "K9 Dark" = "k9dark") + for(var/a in L) + var/image/wide = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = L[a]) + wide.pixel_x = -16 + sec_icons[a] = wide + if(R.client && R.client.ckey == "nezuli") + var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-sec") + bad_snowflake.pixel_x = -16 + sec_icons["Alina"] = bad_snowflake + sec_icons = sortList(sec_icons) + var/sec_borg_icon = show_radial_menu(R, R , sec_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE) + switch(sec_borg_icon) if("Default") cyborg_base_icon = "sec" if("Default - Treads") @@ -561,6 +627,8 @@ sleeper_overlay = "valesecsleeper" cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi' dogborg = TRUE + else + return FALSE return ..() /obj/item/robot_module/security/Initialize() @@ -599,10 +667,13 @@ /obj/item/robot_module/peacekeeper/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc - var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Default", "Spider", "Borgi") - if(!borg_icon) - return FALSE - switch(borg_icon) + var/static/list/peace_icons = sortList(list( + "Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "peace"), + "Borgi" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "borgi"), + "Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "whitespider") + )) + var/peace_borg_icon = show_radial_menu(R, R , peace_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE) + switch(peace_borg_icon) if("Default") cyborg_base_icon = "peace" if("Spider") @@ -615,6 +686,8 @@ hat_offset = INFINITY cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi' has_snowflake_deadsprite = TRUE + else + return FALSE return ..() //Janitor module combined with Service module @@ -738,10 +811,35 @@ /obj/item/robot_module/butler/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc - var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("(Service) Waitress", "(Service) Heavy", "(Service) Sleek", "(Service) Butler", "(Service) Tophat", "(Service) Can", "(Service) Bro", "(Service) DarkK9", "(Service) Vale", "(Service) ValeDark", "(Janitor) Default", "(Janitor) Sleek", "(Janitor) Marina", "(Janitor) Can", "(Janitor) Heavy", "(Janitor) Scrubpuppy") - if(!borg_icon) - return FALSE - switch(borg_icon) + var/static/list/service_icons + if(!service_icons) + service_icons = list( + "(Service) Waitress" = image(icon = 'icons/mob/robots.dmi', icon_state = "service_f"), + "(Service) Butler" = image(icon = 'icons/mob/robots.dmi', icon_state = "service_m"), + "(Service) Bro" = image(icon = 'icons/mob/robots.dmi', icon_state = "brobot"), + "(Service) Can" = image(icon = 'icons/mob/robots.dmi', icon_state = "kent"), + "(Service) Tophat" = image(icon = 'icons/mob/robots.dmi', icon_state = "tophat"), + "(Service) Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekserv"), + "(Service) Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyserv"), + "(Janitor) Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "janitor"), + "(Janitor) Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinajan"), + "(Janitor) Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekjan"), + "(Janitor) Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "canjan"), + "(Janitor) Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyjan"), + ) + var/list/L = list("(Service) DarkK9" = "k50", "(Service) Vale" = "valeserv", "(Service) ValeDark" = "valeservdark", + "(Janitor) Scrubpuppy" = "scrubpup") + for(var/a in L) + var/image/wide = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = L[a]) + wide.pixel_x = -16 + service_icons[a] = wide + if(R.client && R.client.ckey == "nezuli") + var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-sec") + bad_snowflake.pixel_x = -16 + service_icons["Alina"] = bad_snowflake + service_icons = sortList(service_icons) + var/service_robot_icon = show_radial_menu(R, R , service_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE) + switch(service_robot_icon) if("(Service) Waitress") cyborg_base_icon = "service_f" special_light_key = "service" @@ -799,6 +897,8 @@ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi' sleeper_overlay = "jsleeper" dogborg = TRUE + else + return FALSE return ..() /obj/item/robot_module/miner @@ -833,10 +933,25 @@ /obj/item/robot_module/miner/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc - var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Lavaland", "Heavy", "Sleek", "Marina", "Can", "Spider", "Asteroid", "Droid", "Blade", "Vale") - if(!borg_icon) - return FALSE - switch(borg_icon) + var/static/list/mining_icons + if(!mining_icons) + mining_icons = list( + "Lavaland" = image(icon = 'icons/mob/robots.dmi', icon_state = "miner"), + "Asteroid" = image(icon = 'icons/mob/robots.dmi', icon_state = "minerOLD"), + "Droid" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "miner"), + "Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekmin"), + "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinamin"), + "Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "canmin"), + "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymin"), + ) + var/list/L = list("Blade" = "blade", "Vale" = "valemine") + for(var/a in L) + var/image/wide = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = L[a]) + wide.pixel_x = -16 + mining_icons[a] = wide + mining_icons = sortList(mining_icons) + var/mining_borg_icon = show_radial_menu(R, R , mining_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE) + switch(mining_borg_icon) if("Lavaland") cyborg_base_icon = "miner" if("Asteroid") @@ -871,6 +986,8 @@ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi' sleeper_overlay = "valeminesleeper" dogborg = TRUE + else + return FALSE return ..() /obj/item/robot_module/syndicate diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index 9b3db8af62..94ce1e42fc 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -1,3 +1,5 @@ +/mob/living/silicon/KnockToFloor(disarm_items = FALSE, silent = TRUE, updating = TRUE) + return /mob/living/silicon/grippedby(mob/living/user, instant = FALSE) return //can't upgrade a simple pull into a more aggressive grab. @@ -113,7 +115,7 @@ /mob/living/silicon/bullet_act(obj/item/projectile/P, def_zone) if(P.original != src || P.firer != src) //try to block or reflect the bullet, can't do so when shooting oneself var/list/returnlist = list() - var/returned = run_block(P, P.damage, "the [P.name]", ATTACK_TYPE_PROJECTILE, P.armour_penetration, P.firer, def_zone, returnlist) + var/returned = mob_run_block(P, P.damage, "the [P.name]", ATTACK_TYPE_PROJECTILE, P.armour_penetration, P.firer, def_zone, returnlist) if(returned & BLOCK_SHOULD_REDIRECT) handle_projectile_attack_redirection(P, returnlist[BLOCK_RETURN_REDIRECT_METHOD]) if(returned & BLOCK_REDIRECTED) diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm index f4feab8824..fe18d48718 100644 --- a/code/modules/mob/living/simple_animal/animal_defense.dm +++ b/code/modules/mob/living/simple_animal/animal_defense.dm @@ -61,11 +61,10 @@ "[M] [response_disarm] [name]!", null, COMBAT_MESSAGE_RANGE) log_combat(M, src, "disarmed") else - var/damage = rand(15, 30) visible_message("[M] has slashed at [src]!", \ "[M] has slashed at [src]!", null, COMBAT_MESSAGE_RANGE) playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) - attack_threshold_check(damage) + attack_threshold_check(M.meleeSlashSAPower) log_combat(M, src, "attacked") /mob/living/simple_animal/attack_larva(mob/living/carbon/alien/larva/L) diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index a8e0d2c1c8..97f3dad3f0 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -911,7 +911,6 @@ Pass a positive integer as an argument to override a bot's default speed. bot_name = name name = paicard.pai.name faction = user.faction.Copy() - language_holder = paicard.pai.language_holder.copy(src) log_combat(user, paicard.pai, "uploaded to [bot_name],") return TRUE else diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index 0e48723f37..adb49938e1 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -19,6 +19,11 @@ path_image_color = "#993299" weather_immunities = list("lava","ash") + var/clean_time = 50 //How long do we take to clean? + var/broom = FALSE //Do we have an speed buff from a broom? + var/adv_mop = FALSE //Do we have a cleaning buff from a better mop? + + var/blood = 1 var/trash = 0 var/pests = 0 @@ -75,6 +80,26 @@ to_chat(user, "Please close the access panel before locking it.") else to_chat(user, "\The [src] doesn't seem to respect your authority.") + + if(istype(W, /obj/item/mop/advanced)) + if(bot_core.allowed(user) && open && adv_mop == TRUE) + to_chat(user, "You replace \the [src] old mop with a new better one!") + adv_mop = TRUE + clean_time = 20 //2.5 the speed! + window_name = "Automatic Station Cleaner v2.1 BETA" //New! + qdel(W) + else + to_chat(user, "\the [src] already has this mop!") + + if(istype(W, /obj/item/twohanded/broom)) + if(bot_core.allowed(user) && open && broom == TRUE) + to_chat(user, "You add to \the [src] a broom speeding it up!") + broom = TRUE + base_speed = 1 //2x faster! + qdel(W) + else + to_chat(user, "\the [src] already has a broom!") + else return ..() @@ -221,7 +246,7 @@ icon_state = "cleanbot-c" visible_message("[src] begins to clean up [A].") mode = BOT_CLEANING - spawn(50) + spawn(clean_time) if(mode == BOT_CLEANING) if(A && isturf(A.loc)) var/atom/movable/AM = A diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm index 6c4680a477..08fffc2cf8 100644 --- a/code/modules/mob/living/simple_animal/bot/construction.dm +++ b/code/modules/mob/living/simple_animal/bot/construction.dm @@ -147,9 +147,8 @@ to_chat(user, "You need one length of cable to wire the ED-209!") return to_chat(user, "You start to wire [src]...") - if(do_after(user, 40, target = src)) - if(coil.get_amount() >= 1 && build_step == 6) - coil.use(1) + if(coil.use_tool(src, user, 40, 1)) + if(build_step == 6) to_chat(user, "You wire [src].") name = "wired ED-209 assembly" build_step++ diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index ab7c632214..e4e81bb5db 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -264,6 +264,9 @@ if((last_newpatient_speak + 300) < world.time) //Don't spam these messages! var/list/messagevoice = list("Hey, [H.name]! Hold on, I'm coming." = 'sound/voice/medbot/coming.ogg',"Wait [H.name]! I want to help!" = 'sound/voice/medbot/help.ogg',"[H.name], you appear to be injured!" = 'sound/voice/medbot/injured.ogg') var/message = pick(messagevoice) + if(prob(1) && ISINRANGE_EX(H.getFireLoss(), 0, 20)) + message = "Notices your minor burns*OwO what's this?" + messagevoice[message] = 'sound/voice/medbot/owo.ogg' speak(message) playsound(loc, messagevoice[message], 50, 0) last_newpatient_speak = world.time diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm index 2e0e9dadb4..585bf58d95 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -20,7 +20,7 @@ uniform = /obj/item/clothing/under/syndicate suit = /obj/item/clothing/suit/armor/vest shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat + gloves = /obj/item/clothing/gloves/tackler/combat/insulated ears = /obj/item/radio/headset mask = /obj/item/clothing/mask/gas head = /obj/item/clothing/head/helmet/swat @@ -39,7 +39,7 @@ uniform = /obj/item/clothing/under/syndicate suit = /obj/item/clothing/suit/space/hardsuit/syndi shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat + gloves = /obj/item/clothing/gloves/tackler/combat/insulated ears = /obj/item/radio/headset mask = /obj/item/clothing/mask/gas/syndicate back = /obj/item/tank/jetpack/oxygen @@ -59,7 +59,7 @@ uniform = /obj/item/clothing/under/syndicate suit = /obj/item/clothing/suit/space/hardsuit/syndi/elite shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat + gloves = /obj/item/clothing/gloves/tackler/combat ears = /obj/item/radio/headset mask = /obj/item/clothing/mask/gas/syndicate back = /obj/item/tank/jetpack/oxygen/harness @@ -130,7 +130,7 @@ uniform = /obj/item/clothing/under/syndicate/camo suit = /obj/item/clothing/suit/armor/bulletproof shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat + gloves = /obj/item/clothing/gloves/tackler/combat ears = /obj/item/radio/headset head = /obj/item/clothing/head/helmet/alt mask = /obj/item/clothing/mask/balaclava @@ -177,7 +177,7 @@ uniform = /obj/item/clothing/under/rank/security/officer suit = /obj/item/clothing/suit/armor/vest shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat + gloves = /obj/item/clothing/gloves/tackler/combat ears = /obj/item/radio/headset mask = /obj/item/clothing/mask/gas/sechailer/swat head = /obj/item/clothing/head/helmet/swat/nanotrasen diff --git a/code/modules/mob/living/simple_animal/damage_procs.dm b/code/modules/mob/living/simple_animal/damage_procs.dm index 0cc097dc08..90fdeb0a62 100644 --- a/code/modules/mob/living/simple_animal/damage_procs.dm +++ b/code/modules/mob/living/simple_animal/damage_procs.dm @@ -2,7 +2,7 @@ /mob/living/simple_animal/proc/adjustHealth(amount, updating_health = TRUE, forced = FALSE) if(!forced && (status_flags & GODMODE)) return FALSE - bruteloss = round(CLAMP(bruteloss + amount, 0, maxHealth),DAMAGE_PRECISION) + bruteloss = round(clamp(bruteloss + amount, 0, maxHealth),DAMAGE_PRECISION) if(updating_health) updatehealth() return amount diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 1297fddb69..7d41068020 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -87,7 +87,6 @@ pass_flags = PASSMOB mob_size = MOB_SIZE_SMALL collar_type = "kitten" - held_icon = "cat" //RUNTIME IS ALIVE! SQUEEEEEEEE~ /mob/living/simple_animal/pet/cat/Runtime @@ -99,6 +98,7 @@ gender = FEMALE gold_core_spawnable = NO_SPAWN unique_pet = TRUE + held_icon = "cat" var/list/family = list()//var restored from savefile, has count of each child type var/list/children = list()//Actual mob instances of children var/cats_deployed = 0 diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm index 9e1ae48bdd..cce5edc513 100644 --- a/code/modules/mob/living/simple_animal/friendly/crab.dm +++ b/code/modules/mob/living/simple_animal/friendly/crab.dm @@ -11,7 +11,7 @@ blood_volume = 350 speak_chance = 1 turns_per_move = 5 - butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/rawcrab = 1) + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/rawcrab = 4) response_help = "pets" response_disarm = "gently pushes aside" response_harm = "stomps" diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 370442d4c4..7f83bb9f9b 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -97,6 +97,8 @@ body_color = "brown" icon_state = "mouse_brown" +GLOBAL_VAR(tom_existed) + //TOM IS ALIVE! SQUEEEEEEEE~K :) /mob/living/simple_animal/mouse/brown/Tom name = "Tom" @@ -106,6 +108,10 @@ response_harm = "splats" gold_core_spawnable = NO_SPAWN +/mob/living/simple_animal/mouse/brown/Tom/Initialize() + . = ..() + GLOB.tom_existed = TRUE + /obj/item/reagent_containers/food/snacks/deadmouse name = "dead mouse" desc = "It looks like somebody dropped the bass on it. A lizard's favorite meal." diff --git a/code/modules/mob/living/simple_animal/guardian/types/charger.dm b/code/modules/mob/living/simple_animal/guardian/types/charger.dm index 1ece6dde37..c60e43ff01 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/charger.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/charger.dm @@ -54,7 +54,7 @@ var/blocked = FALSE if(hasmatchingsummoner(hit_atom)) //if the summoner matches don't hurt them blocked = TRUE - if(L.run_block(src, 90, "[name]", ATTACK_TYPE_TACKLE, 0, src) & BLOCK_SUCCESS) + if(L.mob_run_block(src, 90, "[name]", ATTACK_TYPE_TACKLE, 0, src, null, null) & BLOCK_SUCCESS) blocked = TRUE if(!blocked) L.drop_all_held_items() diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index 3b9700bb58..2045e194d2 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -175,7 +175,7 @@ AddElement(/datum/element/cleaning) /mob/living/simple_animal/hostile/alien/maid/AttackingTarget() - if(ismovableatom(target)) + if(ismovable(target)) if(istype(target, /obj/effect/decal/cleanable)) visible_message("[src] cleans up \the [target].") qdel(target) diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 9c89ff4a4f..ced56f0705 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -7,7 +7,7 @@ icon_living = "carp" icon_dead = "carp_dead" icon_gib = "carp_gib" - threat = 0.2 + threat = 0.1 mob_biotypes = MOB_ORGANIC|MOB_BEAST speak_chance = 0 turns_per_move = 5 diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index 439bedf3cc..f19aa0a2a7 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -186,10 +186,10 @@ . = ..() if(slowed_by_webs) if(!(locate(/obj/structure/spider/stickyweb) in loc)) - remove_movespeed_modifier(MOVESPEED_ID_TARANTULA_WEB) + remove_movespeed_modifier(/datum/movespeed_modifier/tarantula_web) slowed_by_webs = FALSE else if(locate(/obj/structure/spider/stickyweb) in loc) - add_movespeed_modifier(MOVESPEED_ID_TARANTULA_WEB, priority=100, multiplicative_slowdown=3) + add_movespeed_modifier(/datum/movespeed_modifier/tarantula_web) slowed_by_webs = TRUE //midwives are the queen of the spiders, can send messages to all them and web faster. That rare round where you get a queen spider and turn your 'for honor' players into 'r6siege' players will be a fun one. diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index c90ebe8a5c..fd278eb438 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -265,4 +265,12 @@ Difficulty: Medium desc = "The sweet blood, oh, it sings to me." invisibility = 100 +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/doom + name = "hostile-environment miner" + desc = "A miner destined to hop across dimensions for all eternity, hunting anomalous creatures." + speed = 8 + move_to_delay = 8 + ranged_cooldown_time = 8 + dash_cooldown = 8 + #undef MINER_DASH_RANGE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index 5e75088f53..d2680fbf61 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -65,10 +65,10 @@ Difficulty: Hard /mob/living/simple_animal/hostile/megafauna/bubblegum/Life() ..() - move_to_delay = CLAMP(round((health/maxHealth) * 10), 3, 10) + move_to_delay = clamp(round((health/maxHealth) * 10), 3, 10) /mob/living/simple_animal/hostile/megafauna/bubblegum/OpenFire() - anger_modifier = CLAMP(((maxHealth - health)/50),0,20) + anger_modifier = clamp(((maxHealth - health)/50),0,20) if(charging) return ranged_cooldown = world.time + ranged_cooldown_time diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 83d27e7ea6..73fb9d4e48 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -56,7 +56,7 @@ Difficulty: Very Hard L.dust() /mob/living/simple_animal/hostile/megafauna/colossus/OpenFire() - anger_modifier = CLAMP(((maxHealth - health)/50),0,20) + anger_modifier = clamp(((maxHealth - health)/50),0,20) ranged_cooldown = world.time + 120 if(enrage(target)) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm new file mode 100644 index 0000000000..3d106021de --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm @@ -0,0 +1,361 @@ +/* +Difficulty: Extremely Hard +*/ + +/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner + name = "demonic-frost miner" + desc = "An extremely geared miner, driven crazy or possessed by the demonic forces here, either way a terrifying enemy." + health = 1500 + maxHealth = 1500 + icon_state = "demonic_miner" + icon_living = "demonic_miner" + icon = 'icons/mob/icemoon/icemoon_monsters.dmi' + attacktext = "pummels" + attack_sound = 'sound/weapons/sonic_jackhammer.ogg' + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID + light_color = "#E4C7C5" + movement_type = GROUND + weather_immunities = list("snow") + speak_emote = list("roars") + armour_penetration = 100 + melee_damage_lower = 10 + melee_damage_upper = 10 + aggro_vision_range = 18 // large vision range so combat doesn't abruptly end when someone runs a bit away + rapid_melee = 4 + speed = 20 + move_to_delay = 20 + ranged = TRUE + crusher_loot = list(/obj/effect/decal/remains/plasma, /obj/item/crusher_trophy/ice_block_talisman) + loot = list(/obj/effect/decal/remains/plasma) + wander = FALSE + del_on_death = TRUE + blood_volume = BLOOD_VOLUME_NORMAL + deathmessage = "falls to the ground, decaying into plasma particles." + deathsound = "bodyfall" + attack_action_types = list(/datum/action/innate/megafauna_attack/frost_orbs, + /datum/action/innate/megafauna_attack/snowball_machine_gun, + /datum/action/innate/megafauna_attack/ice_shotgun) + /// Modifies the speed of the projectiles the demonic frost miner shoots out + var/projectile_speed_multiplier = 1 + /// If the demonic frost miner is in its enraged state + var/enraged = FALSE + /// If the demonic frost miner is currently transforming to its enraged state + var/enraging = FALSE + +/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/Initialize() + . = ..() + AddComponent(/datum/component/knockback, 7, FALSE, TRUE) + AddComponent(/datum/component/lifesteal, 50) + +/datum/action/innate/megafauna_attack/frost_orbs + name = "Fire Frost Orbs" + icon_icon = 'icons/mob/actions/actions_items.dmi' + button_icon_state = "sniper_zoom" + chosen_message = "You are now sending out frost orbs to track in on a target." + chosen_attack_num = 1 + +/datum/action/innate/megafauna_attack/snowball_machine_gun + name = "Fire Snowball Machine Gun" + icon_icon = 'icons/obj/guns/energy.dmi' + button_icon_state = "kineticgun" + chosen_message = "You are now firing a snowball machine gun at a target." + chosen_attack_num = 2 + +/datum/action/innate/megafauna_attack/ice_shotgun + name = "Fire Ice Shotgun" + icon_icon = 'icons/obj/guns/projectile.dmi' + button_icon_state = "shotgun" + chosen_message = "You are now firing shotgun ice blasts." + chosen_attack_num = 3 + +/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/OpenFire() + check_enraged() + projectile_speed_multiplier = 1 - enraged * 0.25 + SetRecoveryTime(100, 100) + + if(client) + switch(chosen_attack) + if(1) + frost_orbs() + if(2) + snowball_machine_gun() + if(3) + ice_shotgun() + return + + var/easy_attack = prob(80 - enraged * 40) + chosen_attack = rand(1, 3) + switch(chosen_attack) + if(1) + if(easy_attack) + frost_orbs(10, 8) + else + frost_orbs(5, 16) + if(2) + if(easy_attack) + snowball_machine_gun() + else + INVOKE_ASYNC(src, .proc/ice_shotgun, 5, list(list(-180, -140, -100, -60, -20, 20, 60, 100, 140), list(-160, -120, -80, -40, 0, 40, 80, 120, 160))) + snowball_machine_gun(5 * 8, 5) + if(3) + if(easy_attack) + ice_shotgun() + else + ice_shotgun(5, list(list(0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330), list(-30, -15, 0, 15, 30))) + +/obj/item/projectile/frost_orb + name = "frost orb" + icon_state = "ice_1" + damage = 20 + armour_penetration = 100 + speed = 10 + homing_turn_speed = 30 + damage_type = BURN + +/obj/item/projectile/frost_orb/on_hit(atom/target, blocked = FALSE) + . = ..() + if(isturf(target) || isobj(target)) + target.ex_act(EXPLODE_HEAVY) + +/obj/item/projectile/snowball + name = "machine-gun snowball" + icon_state = "nuclear_particle" + damage = 5 + armour_penetration = 100 + speed = 4 + damage_type = BRUTE + +/obj/item/projectile/ice_blast + name = "ice blast" + icon_state = "ice_2" + damage = 15 + armour_penetration = 100 + speed = 4 + damage_type = BRUTE + +/obj/item/projectile/ice_blast/on_hit(atom/target, blocked = FALSE) + . = ..() + if(isturf(target) || isobj(target)) + target.ex_act(EXPLODE_HEAVY) + +/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/ex_act(severity, target) + adjustBruteLoss(30 * severity - 120) + visible_message("[src] absorbs the explosion!", "You absorb the explosion!") + +/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/Goto(target, delay, minimum_distance) + if(enraging) + return + return ..() + +/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/MoveToTarget(list/possible_targets) + if(enraging) + return + return ..() + +/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/Move() + if(enraging) + return + return ..() + +/// Shoots out homing frost orbs that explode into ice blast projectiles after a couple seconds +/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/proc/frost_orbs(added_delay = 10, shoot_times = 8) + for(var/i in 1 to shoot_times) + var/turf/startloc = get_turf(src) + var/turf/endloc = get_turf(target) + if(!endloc) + break + var/obj/item/projectile/frost_orb/P = new(startloc) + P.preparePixelProjectile(endloc, startloc) + P.firer = src + if(target) + P.original = target + P.set_homing_target(target) + P.fire(rand(0, 360)) + addtimer(CALLBACK(P, /obj/item/projectile/frost_orb/proc/orb_explosion, projectile_speed_multiplier), 20) // make the orbs home in after a second + SLEEP_CHECK_DEATH(added_delay) + SetRecoveryTime(40, 60) + +/// Called when the orb is exploding, shoots out projectiles +/obj/item/projectile/frost_orb/proc/orb_explosion(projectile_speed_multiplier) + for(var/i in 0 to 5) + var/angle = i * 60 + var/turf/startloc = get_turf(src) + var/turf/endloc = get_turf(original) + if(!startloc || !endloc) + break + var/obj/item/projectile/ice_blast/P = new(startloc) + P.speed *= projectile_speed_multiplier + P.preparePixelProjectile(endloc, startloc, null, angle + rand(-10, 10)) + P.firer = firer + if(original) + P.original = original + P.fire() + qdel(src) + +/// Shoots out snowballs with a random spread +/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/proc/snowball_machine_gun(shots = 60, spread = 45) + for(var/i in 1 to shots) + var/turf/startloc = get_turf(src) + var/turf/endloc = get_turf(target) + if(!endloc) + break + var/obj/item/projectile/P = new /obj/item/projectile/snowball(startloc) + P.speed *= projectile_speed_multiplier + P.preparePixelProjectile(endloc, startloc, null, rand(-spread, spread)) + P.firer = src + if(target) + P.original = target + P.fire() + SLEEP_CHECK_DEATH(1) + SetRecoveryTime(15, 15) + +/// Shoots out ice blasts in a shotgun like pattern +/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/proc/ice_shotgun(shots = 5, list/patterns = list(list(-40, -20, 0, 20, 40), list(-30, -10, 10, 30))) + for(var/i in 1 to shots) + var/list/pattern = patterns[i % length(patterns) + 1] // alternating patterns + for(var/spread in pattern) + var/turf/startloc = get_turf(src) + var/turf/endloc = get_turf(target) + if(!endloc) + break + var/obj/item/projectile/P = new /obj/item/projectile/ice_blast(startloc) + P.speed *= projectile_speed_multiplier + P.preparePixelProjectile(endloc, startloc, null, spread) + P.firer = src + if(target) + P.original = target + P.fire() + SLEEP_CHECK_DEATH(8) + SetRecoveryTime(15, 20) + +/// Checks if the demonic frost miner is ready to be enraged +/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/proc/check_enraged() + if(enraged) + return + if(health > maxHealth*0.25) + return + SetRecoveryTime(80, 80) + adjustHealth(-maxHealth) + enraged = TRUE + enraging = TRUE + animate(src, pixel_y = pixel_y + 96, time = 100, easing = ELASTIC_EASING) + spin(100, 10) + SLEEP_CHECK_DEATH(60) + playsound(src, 'sound/effects/explosion3.ogg', 100, TRUE) + icon_state = "demonic_miner_phase2" + animate(src, pixel_y = pixel_y - 96, time = 8, flags = ANIMATION_END_NOW) + spin(8, 2) + SLEEP_CHECK_DEATH(8) + for(var/mob/living/L in viewers(src)) + shake_camera(L, 3, 2) + playsound(src, 'sound/effects/meteorimpact.ogg', 100, TRUE) + setMovetype(movement_type | FLYING) + enraging = FALSE + adjustHealth(-maxHealth) + +/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/death(gibbed, list/force_grant) + if(health > 0) + return + var/turf/T = get_turf(src) + var/loot = rand(1, 3) + switch(loot) + if(1) + new /obj/item/resurrection_crystal(T) + if(2) + new /obj/item/clothing/shoes/winterboots/ice_boots/speedy(T) + if(3) + new /obj/item/pickaxe/drill/jackhammer/demonic(T) + return ..() + +/obj/item/resurrection_crystal + name = "resurrection crystal" + desc = "When used by anything holding it, this crystal gives them a second chance at life if they die." + icon = 'icons/obj/objects.dmi' + icon_state = "demonic_crystal" + +/obj/item/resurrection_crystal/attack_self(mob/living/user) + if(!iscarbon(user)) + to_chat(user, "A dark presence stops you from absorbing the crystal.") + return + forceMove(user) + to_chat(user, "You feel a bit safer... but a demonic presence lurks in the back of your head...") + RegisterSignal(user, COMSIG_MOB_DEATH, .proc/resurrect) + +/// Resurrects the target when they die by cloning them into a new duplicate body and transferring their mind to the clone on a safe station turf +/obj/item/resurrection_crystal/proc/resurrect(mob/living/carbon/user, gibbed) + user.visible_message("You see [user]'s soul dragged out of their body!", "You feel your soul dragged away to a fresh body!") + var/typepath = user.type + var/turf/T = find_safe_turf() + var/mob/living/carbon/clone = new typepath(T) + clone.real_name = user.real_name + user.dna.transfer_identity(clone) + clone.updateappearance(mutcolor_update=1) + user.mind.transfer_to(clone) // second life + to_chat(clone, "You blink and find yourself in [get_area_name(T)].") + user.gib() + qdel(src) + +/obj/item/clothing/shoes/winterboots/ice_boots/speedy + name = "cursed ice hiking boots" + desc = "A pair of winter boots contractually made by a devil, they cannot be taken off once put on." + slowdown = SHOES_SPEED_SLIGHT + +/obj/item/clothing/shoes/winterboots/ice_boots/speedy/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, CURSED_ITEM_TRAIT) + +/obj/item/pickaxe/drill/jackhammer/demonic + name = "demonic jackhammer" + desc = "Cracks rocks at an inhuman speed, as well as being enhanced for combat purposes." + toolspeed = 0 + +/obj/item/pickaxe/drill/jackhammer/demonic/Initialize() + . = ..() + AddComponent(/datum/component/knockback, 4, FALSE, TRUE) + AddComponent(/datum/component/lifesteal, 5) + +/obj/item/crusher_trophy/ice_block_talisman + name = "ice block talisman" + desc = "A glowing trinket that a demonic miner had on him, it seems he couldn't utilize it for whatever reason." + icon_state = "ice_trap_talisman" + denied_type = /obj/item/crusher_trophy/ice_block_talisman + +/obj/item/crusher_trophy/ice_block_talisman/effect_desc() + return "mark detonation to freeze a creature in a block of ice for a period, preventing them from moving" + +/obj/item/crusher_trophy/ice_block_talisman/on_mark_detonation(mob/living/target, mob/living/user) + target.apply_status_effect(/datum/status_effect/ice_block_talisman) + +/datum/status_effect/ice_block_talisman + id = "ice_block_talisman" + duration = 25 + status_type = STATUS_EFFECT_REFRESH + alert_type = /obj/screen/alert/status_effect/ice_block_talisman + /// Stored icon overlay for the hit mob, removed when effect is removed + var/icon/cube + +/obj/screen/alert/status_effect/ice_block_talisman + name = "Frozen Solid" + desc = "You're frozen inside an ice cube, and cannot move!" + icon_state = "frozen" + +/datum/status_effect/ice_block_talisman/on_apply() + RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, .proc/owner_moved) + if(!owner.stat) + to_chat(owner, "You become frozen in a cube!") + cube = icon('icons/effects/freeze.dmi', "ice_cube") + var/icon/size_check = icon(owner.icon, owner.icon_state) + cube.Scale(size_check.Width(), size_check.Height()) + owner.add_overlay(cube) + return ..() + +/// Blocks movement from the status effect owner +/datum/status_effect/ice_block_talisman/proc/owner_moved() + return COMPONENT_MOVABLE_BLOCK_PRE_MOVE + +/datum/status_effect/ice_block_talisman/on_remove() + . = ..() + if(!owner.stat) + to_chat(owner, "The cube melts!") + owner.cut_overlay(cube) + UnregisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 4644992ad0..c59272214b 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -105,7 +105,7 @@ Difficulty: Medium /mob/living/simple_animal/hostile/megafauna/dragon/OpenFire() if(swooping) return - anger_modifier = CLAMP(((maxHealth - health)/50),0,20) + anger_modifier = clamp(((maxHealth - health)/50),0,20) ranged_cooldown = world.time + ranged_cooldown_time if(prob(15 + anger_modifier) && !client) @@ -394,3 +394,26 @@ Difficulty: Medium /mob/living/simple_animal/hostile/megafauna/dragon/lesser/grant_achievement(medaltype,scoretype) return + +//fire line keeps going even if dragon is deleted +/proc/dragon_fire_line(source, list/turfs) + var/list/hit_list = list() + for(var/turf/T in turfs) + if(istype(T, /turf/closed)) + break + new /obj/effect/hotspot(T) + T.hotspot_expose(700,50,1) + for(var/mob/living/L in T.contents) + if(L in hit_list || L == source) + continue + hit_list += L + L.adjustFireLoss(20) + to_chat(L, "You're hit by [source]'s fire breath!") + + // deals damage to mechs + for(var/obj/mecha/M in T.contents) + if(M in hit_list) + continue + hit_list += M + M.take_damage(45, BRUTE, "melee", 1) + sleep(1.5) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index a9d42373a2..477c2ce3aa 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -191,7 +191,7 @@ Difficulty: Normal /mob/living/simple_animal/hostile/megafauna/hierophant/proc/calculate_rage() //how angry we are overall did_reset = FALSE //oh hey we're doing SOMETHING, clearly we might need to heal if we recall - anger_modifier = CLAMP(((maxHealth - health) / 42),0,50) + anger_modifier = clamp(((maxHealth - health) / 42),0,50) burst_range = initial(burst_range) + round(anger_modifier * 0.08) beam_range = initial(beam_range) + round(anger_modifier * 0.12) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index 8958916880..78987ebaa0 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -27,23 +27,51 @@ mob_size = MOB_SIZE_LARGE layer = LARGE_MOB_LAYER //Looks weird with them slipping under mineral walls and cameras and shit otherwise flags_1 = PREVENT_CONTENTS_EXPLOSION_1 | HEAR_1 + /// Crusher loot dropped when fauna killed with a crusher var/list/crusher_loot var/medal_type + /// Score given to players when the fauna is killed var/score_type = BOSS_SCORE + /// If the megafauna is actually killed (vs entering another phase) var/elimination = 0 + /// Modifies attacks when at lower health var/anger_modifier = 0 + /// Internal tracking GPS inside fauna var/obj/item/gps/internal + /// Next time fauna can use a melee attack var/recovery_time = 0 + var/true_spawn = TRUE // if this is a megafauna that should grant achievements, or have a gps signal + var/nest_range = 10 + var/chosen_attack = 1 // chosen attack num + var/list/attack_action_types = list() + var/small_sprite_type + /mob/living/simple_animal/hostile/megafauna/Initialize(mapload) . = ..() apply_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) ADD_TRAIT(src, TRAIT_NO_TELEPORT, MEGAFAUNA_TRAIT) + for(var/action_type in attack_action_types) + var/datum/action/innate/megafauna_attack/attack_action = new action_type() + attack_action.Grant(src) + if(small_sprite_type) + var/datum/action/small_sprite/small_action = new small_sprite_type() + small_action.Grant(src) /mob/living/simple_animal/hostile/megafauna/Destroy() QDEL_NULL(internal) . = ..() +/mob/living/simple_animal/hostile/megafauna/Moved() + if(nest && nest.parent && get_dist(nest.parent, src) > nest_range) + var/turf/closest = get_turf(nest.parent) + for(var/i = 1 to nest_range) + closest = get_step(closest, get_dir(closest, src)) + forceMove(closest) // someone teleported out probably and the megafauna kept chasing them + target = null + return + return ..() + /mob/living/simple_animal/hostile/megafauna/death(gibbed) if(health > 0) return @@ -134,3 +162,21 @@ SSmedals.SetScore(BOSS_SCORE, C, 1) SSmedals.SetScore(score_type, C, 1) return TRUE + +/datum/action/innate/megafauna_attack + name = "Megafauna Attack" + icon_icon = 'icons/mob/actions/actions_animal.dmi' + button_icon_state = "" + var/mob/living/simple_animal/hostile/megafauna/M + var/chosen_message + var/chosen_attack_num = 0 + +/datum/action/innate/megafauna_attack/Grant(mob/living/L) + if(istype(L, /mob/living/simple_animal/hostile/megafauna)) + M = L + return ..() + return FALSE + +/datum/action/innate/megafauna_attack/Activate() + M.chosen_attack = chosen_attack_num + to_chat(M, chosen_message) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm new file mode 100644 index 0000000000..5ed163ae7e --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm @@ -0,0 +1,201 @@ +/* +Difficulty: Hard +*/ + +/mob/living/simple_animal/hostile/megafauna/wendigo + name = "wendigo" + desc = "A mythological man-eating legendary creature, you probably aren't going to survive this." + health = 2500 + maxHealth = 2500 + icon_state = "wendigo" + icon_living = "wendigo" + icon_dead = "wendigo_dead" + icon = 'icons/mob/icemoon/64x64megafauna.dmi' + attacktext = "claws" + attack_sound = 'sound/magic/demon_attack1.ogg' + weather_immunities = list("snow") + speak_emote = list("roars") + armour_penetration = 40 + melee_damage_lower = 40 + melee_damage_upper = 40 + vision_range = 9 + aggro_vision_range = 18 // man-eating for a reason + speed = 8 + move_to_delay = 8 + rapid_melee = 16 // every 1/8 second + melee_queue_distance = 20 // as far as possible really, need this because of charging and teleports + ranged = TRUE + pixel_x = -16 + loot = list(/obj/item/wendigo_blood) + crusher_loot = list(/obj/item/wendigo_blood, /obj/item/crusher_trophy/demon_claws) + wander = FALSE + del_on_death = TRUE + blood_volume = BLOOD_VOLUME_NORMAL + deathmessage = "falls, shaking the ground around it" + deathsound = 'sound/effects/gravhit.ogg' + attack_action_types = list(/datum/action/innate/megafauna_attack/heavy_stomp, + /datum/action/innate/megafauna_attack/teleport, + /datum/action/innate/megafauna_attack/disorienting_scream) + /// Saves the turf the megafauna was created at (spawns exit portal here) + var/turf/starting + /// Range for wendigo stomping when it moves + var/stomp_range = 1 + /// Stores directions the mob is moving, then calls that a move has fully ended when these directions are removed in moved + var/stored_move_dirs = 0 + /// If the wendigo is allowed to move + var/can_move = TRUE + +/datum/action/innate/megafauna_attack/heavy_stomp + name = "Heavy Stomp" + icon_icon = 'icons/mob/actions/actions_items.dmi' + button_icon_state = "sniper_zoom" + chosen_message = "You are now stomping the ground around you." + chosen_attack_num = 1 + +/datum/action/innate/megafauna_attack/teleport + name = "Teleport" + icon_icon = 'icons/effects/bubblegum.dmi' + button_icon_state = "smack ya one" + chosen_message = "You are now teleporting at the target you click on." + chosen_attack_num = 2 + +/datum/action/innate/megafauna_attack/disorienting_scream + name = "Disorienting Scream" + icon_icon = 'icons/turf/walls/wall.dmi' + button_icon_state = "wall" + chosen_message = "You are now screeching, disorienting targets around you." + chosen_attack_num = 3 + +/mob/living/simple_animal/hostile/megafauna/wendigo/Initialize() + . = ..() + starting = get_turf(src) + +/mob/living/simple_animal/hostile/megafauna/wendigo/OpenFire() + SetRecoveryTime(0, 100) + if(health <= maxHealth*0.5) + stomp_range = 2 + speed = 6 + move_to_delay = 6 + else + stomp_range = initial(stomp_range) + speed = initial(speed) + move_to_delay = initial(move_to_delay) + + if(client) + switch(chosen_attack) + if(1) + heavy_stomp() + if(2) + teleport() + if(3) + disorienting_scream() + return + + chosen_attack = rand(1, 3) + switch(chosen_attack) + if(1) + heavy_stomp() + if(2) + teleport() + if(3) + disorienting_scream() + +/mob/living/simple_animal/hostile/megafauna/wendigo/Move(atom/newloc, direct) + if(!can_move) + return + stored_move_dirs |= direct + return ..() + +/mob/living/simple_animal/hostile/megafauna/wendigo/Moved(atom/oldloc, direct) + . = ..() + stored_move_dirs &= ~direct + if(!stored_move_dirs) + INVOKE_ASYNC(src, .proc/ground_slam, stomp_range, 1) + +/// Slams the ground around the wendigo throwing back enemies caught nearby +/mob/living/simple_animal/hostile/megafauna/wendigo/proc/ground_slam(range, delay) + var/turf/orgin = get_turf(src) + var/list/all_turfs = RANGE_TURFS(range, orgin) + for(var/i = 0 to range) + for(var/turf/T in all_turfs) + if(get_dist(orgin, T) > i) + continue + playsound(T,'sound/effects/bamf.ogg', 600, TRUE, 10) + new /obj/effect/temp_visual/small_smoke/halfsecond(T) + for(var/mob/living/L in T) + if(L == src || L.throwing) + continue + to_chat(L, "[src]'s ground slam shockwave sends you flying!") + var/turf/thrownat = get_ranged_target_turf_direct(src, L, 8, rand(-10, 10)) + L.throw_at(thrownat, 8, 2, src, TRUE) //, force = MOVE_FORCE_OVERPOWERING, gentle = TRUE) + L.apply_damage(20, BRUTE) + shake_camera(L, 2, 1) + all_turfs -= T + sleep(delay) + +/// Larger but slower ground stomp +/mob/living/simple_animal/hostile/megafauna/wendigo/proc/heavy_stomp() + can_move = FALSE + ground_slam(5, 2) + SetRecoveryTime(0, 0) + can_move = TRUE + +/// Teleports to a location 4 turfs away from the enemy in view +/mob/living/simple_animal/hostile/megafauna/wendigo/proc/teleport() + var/list/possible_ends = list() + for(var/turf/T in view(4, target.loc) - view(3, target.loc)) + if(isclosedturf(T)) + continue + possible_ends |= T + var/turf/end = pick(possible_ends) + do_teleport(src, end, 0, channel=TELEPORT_CHANNEL_BLUESPACE, forced = TRUE) + SetRecoveryTime(20, 0) + +/// Shakes all nearby enemies screens and animates the wendigo shaking up and down +/mob/living/simple_animal/hostile/megafauna/wendigo/proc/disorienting_scream() + can_move = FALSE + playsound(src, 'sound/magic/demon_dies.ogg', 600, FALSE, 10) + animate(src, pixel_z = rand(5, 15), time = 1, loop = 6) + animate(pixel_z = 0, time = 1) + for(var/mob/living/L in get_hearers_in_view(7, src) - src) + shake_camera(L, 30, 1) + to_chat(L, "The wendigo screams loudly!") + SetRecoveryTime(30, 0) + SLEEP_CHECK_DEATH(12) + can_move = TRUE + return + +/mob/living/simple_animal/hostile/megafauna/wendigo/death(gibbed, list/force_grant) + if(health > 0) + return + var/obj/effect/portal/permanent/one_way/exit = new /obj/effect/portal/permanent/one_way(starting) + exit.id = "wendigo arena exit" + exit.add_atom_colour(COLOR_RED_LIGHT, ADMIN_COLOUR_PRIORITY) + exit.set_light(20, 1, LIGHT_COLOR_RED) + return ..() + +/obj/item/wendigo_blood + name = "bottle of wendigo blood" + desc = "You're not actually going to drink this, are you?" + icon = 'icons/obj/wizard.dmi' + icon_state = "vial" + +/obj/item/wendigo_blood/attack_self(mob/living/user) + if(!ishuman(user)) + return + var/mob/living/carbon/human/H = user + if(!H.mind) + return + to_chat(H, "Power courses through you! You can now shift your form at will.") + var/obj/effect/proc_holder/spell/targeted/shapeshift/polar_bear/P = new + H.mind.AddSpell(P) + playsound(H.loc,'sound/items/drink.ogg', rand(10,50), TRUE) + qdel(src) + +/obj/effect/proc_holder/spell/targeted/shapeshift/polar_bear + name = "Polar Bear Form" + desc = "Take on the shape of a polar bear." + invocation = "RAAAAAAAAWR!" + convert_damage = FALSE + + shapeshift_type = /mob/living/simple_animal/hostile/asteroid/polarbear diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 89d9919981..a7ce559d35 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -200,7 +200,7 @@ /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/proc/infest(mob/living/carbon/human/H) visible_message("[name] burrows into the flesh of [H]!") var/mob/living/simple_animal/hostile/asteroid/hivelord/legion/L - if(H.dna.check_mutation(DWARFISM)) //dwarf legions aren't just fluff! + if(HAS_TRAIT(H, TRAIT_DWARF)) //dwarf legions aren't just fluff! L = new /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf(H.loc) else L = new(H.loc) @@ -424,3 +424,29 @@ l_pocket = /obj/item/reagent_containers/food/drinks/soda_cans/buzz_fuzz mask = /obj/item/clothing/mask/rat/bee . = ..() + +// Snow Legion +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow + name = "snow legion" + desc = "You can still see what was once a human under the shifting snowy mass, clearly decorated by a clown." + icon = 'icons/mob/icemoon/icemoon_monsters.dmi' + icon_state = "snowlegion" + icon_living = "snowlegion" + icon_aggro = "snowlegion_alive" + icon_dead = "snowlegion" + crusher_loot = /obj/item/crusher_trophy/legion_skull + loot = list(/obj/item/organ/regenerative_core/legion) + brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/snow + +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/tendril + fromtendril = TRUE + +// Snow Legion skull +/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/snow + name = "snow legion" + desc = "One of many." + icon = 'icons/mob/icemoon/icemoon_monsters.dmi' + icon_state = "snowlegion_head" + icon_living = "snowlegion_head" + icon_aggro = "snowlegion_head" + icon_dead = "snowlegion_head" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm new file mode 100644 index 0000000000..7b9abd2b13 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm @@ -0,0 +1,76 @@ +/mob/living/simple_animal/hostile/asteroid/ice_demon + name = "demonic watcher" + desc = "A creature formed entirely out of ice, bluespace energy emanates from inside of it." + icon = 'icons/mob/icemoon/icemoon_monsters.dmi' + icon_state = "ice_demon" + icon_living = "ice_demon" + icon_dead = "ice_demon_dead" + icon_gib = "syndicate_gib" + mob_biotypes = MOB_ORGANIC|MOB_BEAST + mouse_opacity = MOUSE_OPACITY_ICON + speak_emote = list("telepathically cries") + speed = 1 + move_to_delay = 2 + projectiletype = /obj/item/projectile/temp/basilisk/ice + projectilesound = 'sound/weapons/pierce.ogg' + ranged = TRUE + ranged_message = "manifests ice" + ranged_cooldown_time = 30 + minimum_distance = 3 + retreat_distance = 3 + maxHealth = 150 + health = 150 + obj_damage = 40 + melee_damage_lower = 15 + melee_damage_upper = 15 + attacktext = "slices" + attack_sound = 'sound/weapons/bladeslice.ogg' + vision_range = 7 + aggro_vision_range = 7 + move_force = MOVE_FORCE_VERY_STRONG + move_resist = MOVE_FORCE_VERY_STRONG + pull_force = MOVE_FORCE_VERY_STRONG + del_on_death = TRUE + loot = list(/obj/item/stack/ore/bluespace_crystal = 3) + crusher_loot = /obj/item/crusher_trophy/watcher_wing/ice_wing + deathmessage = "fades as the energies that tied it to this world dissipate." + deathsound = 'sound/magic/demon_dies.ogg' + stat_attack = UNCONSCIOUS + movement_type = FLYING + robust_searching = TRUE + /// Distance the demon will teleport from the target + var/teleport_distance = 3 + +/obj/item/projectile/temp/basilisk/ice + name = "ice blast" + damage = 5 + nodamage = FALSE + temperature = -75 + +/mob/living/simple_animal/hostile/asteroid/ice_demon/OpenFire() + if(teleport_distance <= 0) + return ..() + var/list/possible_ends = list() + for(var/turf/T in view(teleport_distance, target.loc) - view(teleport_distance - 1, target.loc)) + if(isclosedturf(T)) + continue + possible_ends |= T + var/turf/end = pick(possible_ends) + do_teleport(src, end, 0, channel=TELEPORT_CHANNEL_BLUESPACE, forced = TRUE) + SLEEP_CHECK_DEATH(8) + return ..() + +/mob/living/simple_animal/hostile/asteroid/ice_demon/Life() + . = ..() + if(!. || target) + return + adjustHealth(-maxHealth*0.025) + +/mob/living/simple_animal/hostile/asteroid/ice_demon/death(gibbed) + move_force = MOVE_FORCE_DEFAULT + move_resist = MOVE_RESIST_DEFAULT + pull_force = PULL_FORCE_DEFAULT + var/turf/T = get_turf(src) + if(T && prob(5)) + new /obj/item/assembly/signaler/anomaly/bluespace(T) + return ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm new file mode 100644 index 0000000000..c8d5cf4b73 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm @@ -0,0 +1,54 @@ +/mob/living/simple_animal/hostile/asteroid/ice_whelp + name = "ice whelp" + desc = "The offspring of an ice drake, weak in comparison but still terrifying." + icon = 'icons/mob/icemoon/icemoon_monsters.dmi' + icon_state = "ice_whelp" + icon_living = "ice_whelp" + icon_dead = "ice_whelp_dead" + mob_biotypes = MOB_ORGANIC|MOB_BEAST + mouse_opacity = MOUSE_OPACITY_ICON + friendly = "stares down" + speak_emote = list("roars") + speed = 30 + move_to_delay = 30 + ranged = TRUE + ranged_cooldown_time = 40 + maxHealth = 350 + health = 350 + obj_damage = 40 + armour_penetration = 20 + melee_damage_lower = 20 + melee_damage_upper = 20 + attacktext = "chomps" + attack_sound = 'sound/magic/demon_attack1.ogg' + vision_range = 9 + aggro_vision_range = 9 + move_force = MOVE_FORCE_VERY_STRONG + move_resist = MOVE_FORCE_VERY_STRONG + pull_force = MOVE_FORCE_VERY_STRONG + butcher_results = list(/obj/item/stack/ore/diamond = 3, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 10, /obj/item/stack/sheet/animalhide/ashdrake = 1) + loot = list() + crusher_loot = /obj/item/crusher_trophy/tail_spike + deathmessage = "collapses on it's side." + deathsound = 'sound/magic/demon_dies.ogg' + stat_attack = UNCONSCIOUS + robust_searching = TRUE + /// How far the whelps fire can go + var/fire_range = 4 + +/mob/living/simple_animal/hostile/asteroid/ice_whelp/OpenFire() + var/turf/T = get_ranged_target_turf_direct(src, target, fire_range) + var/list/burn_turfs = getline(src, T) - get_turf(src) + dragon_fire_line(src, burn_turfs) + +/mob/living/simple_animal/hostile/asteroid/ice_whelp/Life() + . = ..() + if(!. || target) + return + adjustHealth(-maxHealth*0.025) + +/mob/living/simple_animal/hostile/asteroid/ice_whelp/death(gibbed) + move_force = MOVE_FORCE_DEFAULT + move_resist = MOVE_RESIST_DEFAULT + pull_force = PULL_FORCE_DEFAULT + return ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm index 0cd788325a..71c6d61d5d 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm @@ -28,7 +28,7 @@ /mob/living/simple_animal/hostile/asteroid/Aggro() ..() - if(vision_range != aggro_vision_range) + if(vision_range == aggro_vision_range && icon_aggro) icon_state = icon_aggro /mob/living/simple_animal/hostile/asteroid/LoseAggro() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm new file mode 100644 index 0000000000..0576d0ecfe --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm @@ -0,0 +1,56 @@ +/mob/living/simple_animal/hostile/asteroid/polarbear + name = "polar bear" + desc = "An aggressive animal that defends it's territory with incredible power. These beasts don't run from their enemies." + icon = 'icons/mob/icemoon/icemoon_monsters.dmi' + icon_state = "polarbear" + icon_living = "polarbear" + icon_dead = "polarbear_dead" + mob_biotypes = MOB_ORGANIC|MOB_BEAST + mouse_opacity = MOUSE_OPACITY_ICON + friendly = "growls at" + speak_emote = list("growls") + speed = 12 + move_to_delay = 12 + maxHealth = 300 + health = 300 + obj_damage = 40 + melee_damage_lower = 25 + melee_damage_upper = 25 + attacktext = "claws" + attack_sound = 'sound/weapons/bladeslice.ogg' + vision_range = 2 // don't aggro unless you basically antagonize it, though they will kill you worse than a goliath will + aggro_vision_range = 9 + move_force = MOVE_FORCE_VERY_STRONG + move_resist = MOVE_FORCE_VERY_STRONG + pull_force = MOVE_FORCE_VERY_STRONG + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/bear = 3, /obj/item/stack/sheet/bone = 2) + guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 1) + loot = list() + crusher_loot = /obj/item/crusher_trophy/goliath_tentacle + stat_attack = UNCONSCIOUS + robust_searching = TRUE + /// Message for when the polar bear starts to attack faster + var/aggressive_message_said = FALSE + +/mob/living/simple_animal/hostile/asteroid/polarbear/adjustHealth(amount, updating_health = TRUE, forced = FALSE) + . = ..() + if(health > maxHealth*0.5) + rapid_melee = initial(rapid_melee) + return + if(!aggressive_message_said && target) + visible_message("The [name] gets an enraged look at [target]!") + aggressive_message_said = TRUE + rapid_melee = 2 + +/mob/living/simple_animal/hostile/asteroid/polarbear/Life() + . = ..() + if(!. || target) + return + adjustHealth(-maxHealth*0.025) + aggressive_message_said = FALSE + +/mob/living/simple_animal/hostile/asteroid/polarbear/death(gibbed) + move_force = MOVE_FORCE_DEFAULT + move_resist = MOVE_RESIST_DEFAULT + pull_force = PULL_FORCE_DEFAULT + return ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm new file mode 100644 index 0000000000..9f17421691 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm @@ -0,0 +1,57 @@ +/mob/living/simple_animal/hostile/asteroid/wolf + name = "white wolf" + desc = "A beast that survives by feasting on weaker opponents, they're much stronger with numbers." + icon = 'icons/mob/icemoon/icemoon_monsters.dmi' + icon_state = "whitewolf" + icon_living = "whitewolf" + icon_dead = "whitewolf_dead" + mob_biotypes = MOB_ORGANIC|MOB_BEAST + mouse_opacity = MOUSE_OPACITY_ICON + friendly = "howls at" + speak_emote = list("howls") + speed = 5 + move_to_delay = 5 + maxHealth = 130 + health = 130 + obj_damage = 15 + melee_damage_lower = 7.5 + melee_damage_upper = 7.5 + rapid_melee = 2 // every second attack + dodging = TRUE + dodge_prob = 50 + attacktext = "bites" + attack_sound = 'sound/weapons/bite.ogg' + vision_range = 7 + aggro_vision_range = 7 + move_force = MOVE_FORCE_WEAK + move_resist = MOVE_FORCE_WEAK + pull_force = MOVE_FORCE_WEAK + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2, /obj/item/stack/sheet/sinew/wolf = 2, /obj/item/stack/sheet/bone = 2) + loot = list() + crusher_loot = /obj/item/crusher_trophy/watcher_wing + stat_attack = UNCONSCIOUS + robust_searching = TRUE + /// Message for when the wolf decides to start running away + var/retreat_message_said = FALSE + +/mob/living/simple_animal/hostile/asteroid/wolf/Move(atom/newloc) + if(newloc && newloc.z == z && (islava(newloc) || ischasm(newloc))) + return FALSE + return ..() + +/mob/living/simple_animal/hostile/asteroid/wolf/adjustHealth(amount, updating_health = TRUE, forced = FALSE) + . = ..() + if(stat == DEAD || health > maxHealth*0.1) + retreat_distance = initial(retreat_distance) + return + if(!retreat_message_said && target) + visible_message("The [name] tries to flee from [target]!") + retreat_message_said = TRUE + retreat_distance = 30 + +/mob/living/simple_animal/hostile/asteroid/wolf/Life() + . = ..() + if(!. || target) + return + adjustHealth(-maxHealth*0.025) + retreat_message_said = FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm index ca14d4ae67..c94046329b 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm @@ -1,14 +1,13 @@ /mob/living/simple_animal/hostile/retaliate/clown name = "Clown" desc = "A denizen of clown planet." - icon = 'icons/mob/simple_human.dmi' + icon = 'icons/mob/clown_mobs.dmi' icon_state = "clown" icon_living = "clown" icon_dead = "clown_dead" icon_gib = "clown_gib" mob_biotypes = MOB_ORGANIC|MOB_HUMANOID turns_per_move = 5 - response_help = "pokes" response_disarm = "gently pushes aside" response_harm = "robusts" speak = list("HONK", "Honk!", "Welcome to clown planet!") @@ -21,7 +20,6 @@ harm_intent_damage = 8 melee_damage_lower = 10 melee_damage_upper = 10 - attacktext = "attacks" attack_sound = 'sound/items/bikehorn.ogg' obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE @@ -32,15 +30,245 @@ minbodytemp = 270 maxbodytemp = 370 unsuitable_atmos_damage = 10 - - do_footstep = TRUE + var/banana_time = 0 // If there's no time set it won't spawn. + var/banana_type = /obj/item/grown/bananapeel + var/attack_reagent /mob/living/simple_animal/hostile/retaliate/clown/handle_temperature_damage() if(bodytemperature < minbodytemp) adjustBruteLoss(10) + throw_alert("temp", /obj/screen/alert/cold, 2) else if(bodytemperature > maxbodytemp) adjustBruteLoss(15) + throw_alert("temp", /obj/screen/alert/hot, 3) + else + clear_alert("temp") /mob/living/simple_animal/hostile/retaliate/clown/attack_hand(mob/living/carbon/human/M) ..() - playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1) + playsound(src.loc, 'sound/items/bikehorn.ogg', 50, TRUE) + +/mob/living/simple_animal/hostile/retaliate/clown/Life() + . = ..() + if(banana_time && banana_time < world.time) + var/turf/T = get_turf(src) + var/list/adjacent = T.GetAtmosAdjacentTurfs(1) + new banana_type(pick(adjacent)) + banana_time = world.time + rand(30,60) + +/mob/living/simple_animal/hostile/retaliate/clown/AttackingTarget() + . = ..() + if(attack_reagent && . && isliving(target)) + var/mob/living/L = target + if(L.reagents) + L.reagents.add_reagent(attack_reagent, rand(1,5)) + +/mob/living/simple_animal/hostile/retaliate/clown/lube + name = "Living Lube" + desc = "A puddle of lube brought to life by the honkmother." + icon_state = "lube" + icon_living = "lube" + turns_per_move = 1 + response_help = "dips a finger into" + response_disarm = "gently scoops and pours aside" + emote_see = list("bubbles", "oozes") + loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/particle_effect/foam) + +/mob/living/simple_animal/hostile/retaliate/clown/lube/Initialize() + . = ..() + AddElement(/datum/element/snailcrawl) + +/mob/living/simple_animal/hostile/retaliate/clown/banana + name = "Clownana" + desc = "A fusion of clown and banana DNA birthed from a botany experiment gone wrong." + icon_state = "banana tree" + icon_living = "banana tree" + response_disarm = "peels" + response_harm = "peels" + turns_per_move = 1 + speak = list("HONK", "Honk!", "YA-HONK!!!") + emote_see = list("honks", "bites into the banana", "plucks a banana off its head", "photosynthesizes") + maxHealth = 120 + health = 120 + speed = -10 + loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/item/soap, /obj/item/seeds/banana) + banana_time = 20 + +/mob/living/simple_animal/hostile/retaliate/clown/honkling + name = "Honkling" + desc = "A divine being sent by the Honkmother to spread joy. It's not dangerous, but it's a bit of a nuisance." + icon_state = "honkling" + icon_living = "honkling" + turns_per_move = 1 + speed = -10 + harm_intent_damage = 1 + melee_damage_lower = 1 + melee_damage_upper = 1 + attacktext = "cheers up" + loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/item/soap, /obj/item/seeds/banana/bluespace) + banana_type = /obj/item/grown/bananapeel + attack_reagent = /datum/reagent/consumable/laughter + +/mob/living/simple_animal/hostile/retaliate/clown/fleshclown + name = "Fleshclown" + desc = "A being forged out of the pure essence of pranking, cursed into existence by a cruel maker." + icon_state = "fleshclown" + icon_living = "fleshclown" + response_help = "reluctantly pokes" + response_disarm = "sinks his hands into the spongy flesh of" + response_harm = "cleanses the world of" + speak = list("HONK", "Honk!", "I didn't ask for this", "I feel constant and horrible pain", "YA-HONK!!!", "this body is a merciless and unforgiving prison", "I was born out of mirthful pranking but I live in suffering") + emote_see = list("honks", "sweats", "jiggles", "contemplates its existence") + speak_chance = 5 + dextrous = TRUE + ventcrawler = VENTCRAWLER_ALWAYS + maxHealth = 140 + health = 140 + speed = -5 + melee_damage_upper = 15 + attacktext = "limply slaps" + obj_damage = 5 + loot = list(/obj/item/clothing/suit/hooded/bloated_human, /obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/item/soap) + +/mob/living/simple_animal/hostile/retaliate/clown/longface + name = "Longface" + desc = "Often found walking into the bar." + icon_state = "long face" + icon_living = "long face" + move_resist = INFINITY + turns_per_move = 10 + response_help = "tries to awkwardly hug" + response_disarm = "pushes the unwieldy frame of" + response_harm = "tries to shut up" + speak = list("YA-HONK!!!") + emote_see = list("honks", "squeaks") + speak_chance = 60 + maxHealth = 150 + health = 150 + pixel_x = -16 + speed = 10 + harm_intent_damage = 5 + melee_damage_lower = 5 + attacktext = "YA-HONKs" + loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/item/soap) + +/mob/living/simple_animal/hostile/retaliate/clown/clownhulk + name = "Honk Hulk" + desc = "A cruel and fearsome clown. Don't make him angry." + icon_state = "honkhulk" + icon_living = "honkhulk" + move_resist = INFINITY + response_help = "tries desperately to appease" + response_disarm = "foolishly pushes" + response_harm = "angers" + speak = list("HONK", "Honk!", "HAUAUANK!!!", "GUUURRRRAAAHHH!!!") + emote_see = list("honks", "sweats", "grunts") + speak_chance = 5 + maxHealth = 400 + health = 400 + pixel_x = -16 + speed = 2 + harm_intent_damage = 15 + melee_damage_lower = 15 + melee_damage_upper = 20 + attacktext = "pummels" + obj_damage = 30 + environment_smash = ENVIRONMENT_SMASH_WALLS + loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/item/soap) + +/mob/living/simple_animal/hostile/retaliate/clown/clownhulk/chlown + name = "Chlown" + desc = "A real lunkhead who somehow gets all the girls." + icon_state = "chlown" + icon_living = "chlown" + response_help = "submits to" + response_disarm = "tries to assert dominance over" + response_harm = "makes a weak beta attack at" + speak = list("HONK", "Honk!", "Bruh", "cheeaaaahhh?") + emote_see = list("asserts his dominance", "emasculates everyone implicitly") + maxHealth = 500 + health = 500 + speed = -2 + armour_penetration = 20 + attacktext = "steals the girlfriend of" + attack_sound = 'sound/items/airhorn2.ogg' + loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/effect/particle_effect/foam, /obj/item/soap) + +/mob/living/simple_animal/hostile/retaliate/clown/clownhulk/honcmunculus + name = "Honkmunculus" + desc = "A slender wiry figure of alchemical origin." + icon_state = "honkmunculus" + icon_living = "honkmunculus" + response_help = "skeptically pokes" + response_disarm = "pushes the unwieldy frame of" + speak = list("honk") + emote_see = list("squirms", "writhes") + speak_chance = 1 + maxHealth = 200 + health = 200 + speed = -5 + harm_intent_damage = 5 + melee_damage_lower = 5 + melee_damage_upper = 10 + attacktext = "ferociously mauls" + environment_smash = ENVIRONMENT_SMASH_NONE + loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/xeno/bodypartless, /obj/effect/particle_effect/foam, /obj/item/soap) + attack_reagent = /datum/reagent/peaceborg_confuse + +/mob/living/simple_animal/hostile/retaliate/clown/clownhulk/destroyer + name = "The Destroyer" + desc = "An ancient being born of arcane honking." + icon_state = "destroyer" + icon_living = "destroyer" + response_disarm = "bounces off of" + response_harm = "bounces off of" + speak = list("HONK!!!", "The Honkmother is merciful, so I must act out her wrath.", "parce mihi ad beatus honkmother placet mihi ut peccata committere,", "DIE!!!") + maxHealth = 400 + health = 400 + speed = 5 + harm_intent_damage = 30 + melee_damage_lower = 20 + melee_damage_upper = 40 + armour_penetration = 30 + stat_attack = UNCONSCIOUS + attacktext = "acts out divine vengeance on" + obj_damage = 50 + environment_smash = ENVIRONMENT_SMASH_RWALLS + loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/effect/particle_effect/foam, /obj/item/soap) + +/mob/living/simple_animal/hostile/retaliate/clown/mutant + name = "Unknown" + desc = "Kill it for its own sake." + icon_state = "mutant" + icon_living = "mutant" + move_resist = INFINITY + turns_per_move = 10 + response_help = "reluctantly sinks a finger into" + response_disarm = "squishes into" + response_harm = "squishes into" + speak = list("aaaaaahhhhuuhhhuhhhaaaaa", "AAAaaauuuaaAAAaauuhhh", "huuuuuh... hhhhuuuooooonnnnkk", "HuaUAAAnKKKK") + emote_see = list("squirms", "writhes", "pulsates", "froths", "oozes") + speak_chance = 10 + maxHealth = 130 + health = 130 + pixel_x = -16 + speed = -5 + harm_intent_damage = 10 + melee_damage_lower = 10 + melee_damage_upper = 20 + attacktext = "awkwardly flails at" + loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/xeno/bodypartless, /obj/item/soap, /obj/effect/gibspawner/generic, /obj/effect/gibspawner/generic/animal, /obj/effect/gibspawner/human/bodypartless, /obj/effect/gibspawner/human) + +/mob/living/simple_animal/hostile/retaliate/clown/mutant/blob + name = "Something that was once a clown" + desc = "A grotesque bulging figure far mutated from it's original state." + icon_state = "blob" + icon_living = "blob" + speak = list("hey, buddy", "HONK!!!", "H-h-h-H-HOOOOONK!!!!", "HONKHONKHONK!!!", "HEY, BUCKO, GET BACK HERE!!!", "HOOOOOOOONK!!!") + emote_see = list("jiggles", "wobbles") + health = 130 + mob_size = MOB_SIZE_LARGE + speed = 20 + attacktext = "bounces off of" + loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/xeno/bodypartless, /obj/effect/particle_effect/foam, /obj/item/soap, /obj/effect/gibspawner/generic, /obj/effect/gibspawner/generic/animal, /obj/effect/gibspawner/human/bodypartless, /obj/effect/gibspawner/human) + attack_reagent = /datum/reagent/toxin/mindbreaker diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm index 13a4d1793e..5111b0b180 100644 --- a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm +++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm @@ -1,5 +1,13 @@ - - +/** + * Kudzu Flower Bud + * + * A flower created by flowering kudzu which spawns a venus human trap after a certain amount of time has passed. + * + * A flower created by kudzu with the flowering mutation. Spawns a venus human trap after 2 minutes under normal circumstances. + * Also spawns 4 vines going out in diagonal directions from the bud. Any living creature not aligned with plants is damaged by these vines. + * Once it grows a venus human trap, the bud itself will destroy itself. + * + */ /obj/structure/alien/resin/flower_bud_enemy //inheriting basic attack/damage stuff from alien structures name = "flower bud" desc = "A large pulsating plant..." @@ -9,9 +17,9 @@ opacity = 0 canSmoothWith = list() smooth = SMOOTH_FALSE + /// The amount of time it takes to create a venus human trap, in deciseconds var/growth_time = 1200 - /obj/structure/alien/resin/flower_bud_enemy/Initialize() . = ..() var/list/anchors = list() @@ -25,36 +33,49 @@ B.sleep_time = 10 //these shouldn't move, so let's slow down updates to 1 second (any slower and the deletion of the vines would be too slow) addtimer(CALLBACK(src, .proc/bear_fruit), growth_time) +/** + * Spawns a venus human trap, then qdels itself. + * + * Displays a message, spawns a human venus trap, then qdels itself. + */ /obj/structure/alien/resin/flower_bud_enemy/proc/bear_fruit() - visible_message("the plant has borne fruit!") + visible_message("The plant has borne fruit!") new /mob/living/simple_animal/hostile/venus_human_trap(get_turf(src)) qdel(src) - /obj/effect/ebeam/vine name = "thick vine" mouse_opacity = MOUSE_OPACITY_ICON desc = "A thick vine, painful to the touch." - /obj/effect/ebeam/vine/Crossed(atom/movable/AM) + . = ..() if(isliving(AM)) var/mob/living/L = AM - if(!("vines" in L.faction)) + if(!isvineimmune(L)) L.adjustBruteLoss(5) to_chat(L, "You cut yourself on the thorny vines.") - - +/** + * Venus Human Trap + * + * The result of a kudzu flower bud, these enemies use vines to drag prey close to them for attack. + * + * A carnivorious plant which uses vines to catch and ensnare prey. Spawns from kudzu flower buds. + * Each one has a maximum of four vines, which can be attached to a variety of things. Carbons are stunned when a vine is attached to them, and movable entities are pulled closer over time. + * Attempting to attach a vine to something with a vine already attached to it will pull all movable targets closer on command. + * Once the prey is in melee range, melee attacks from the venus human trap heals itself for 10% of its max health, assuming the target is alive. + * Akin to certain spiders, venus human traps can also be possessed and controlled by ghosts. + * + */ /mob/living/simple_animal/hostile/venus_human_trap name = "venus human trap" desc = "Now you know how the fly feels." icon_state = "venus_human_trap" - threat = 1 layer = SPACEVINE_MOB_LAYER health = 50 maxHealth = 50 - ranged = 1 + ranged = TRUE harm_intent_damage = 5 obj_damage = 60 melee_damage_lower = 25 @@ -63,65 +84,110 @@ attack_sound = 'sound/weapons/bladeslice.ogg' atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) unsuitable_atmos_damage = 0 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE faction = list("hostile","vines","plants") - var/list/grasping = list() - var/max_grasps = 4 - var/grasp_chance = 20 - var/grasp_pull_chance = 85 - var/grasp_range = 4 - del_on_death = 1 + initial_language_holder = /datum/language_holder/venus + del_on_death = TRUE + /// A list of all the plant's vines + var/list/vines = list() + /// The maximum amount of vines a plant can have at one time + var/max_vines = 4 + /// How far away a plant can attach a vine to something + var/vine_grab_distance = 5 + /// Whether or not this plant is ghost possessable + var/playable_plant = FALSE //Normal plants can **not** have players. -/mob/living/simple_animal/hostile/venus_human_trap/Destroy() - for(var/L in grasping) - var/datum/beam/B = grasping[L] - if(B) - qdel(B) - grasping = null - return ..() +/mob/living/simple_animal/hostile/venus_human_trap/ghost_playable + playable_plant = TRUE //For admins that want to buss some harmless plants -/mob/living/simple_animal/hostile/venus_human_trap/handle_automated_action() - if(..()) - for(var/mob/living/L in grasping) - if(L.stat == DEAD) - var/datum/beam/B = grasping[L] - if(B) - B.End() - grasping -= L - - //Can attack+pull multiple times per cycle - if(L.Adjacent(src)) - L.attack_animal(src) - else - if(prob(grasp_pull_chance)) - setDir(get_dir(src,L) )//staaaare - step(L,get_dir(L,src)) //reel them in - L.DefaultCombatKnockdown(60) //you can't get away now~ - - if(grasping.len < max_grasps) - grasping: - for(var/mob/living/L in view(grasp_range, src)) - if(L == src || faction_check_mob(L) || (L in grasping) || L == target) - continue - for(var/t in getline(src,L)) - for(var/a in t) - var/atom/A = a - if(A.density && A != L) - continue grasping - if(prob(grasp_chance)) - to_chat(L, "\The [src] has you entangled!") - grasping[L] = Beam(L, "vine", time=INFINITY, maxdistance=5, beam_type=/obj/effect/ebeam/vine) - - break //only take 1 new victim per cycle +/mob/living/simple_animal/hostile/venus_human_trap/Life() + . = ..() + pull_vines() +/mob/living/simple_animal/hostile/venus_human_trap/AttackingTarget() + . = ..() + if(isliving(target)) + var/mob/living/L = target + if(L.stat != DEAD) + adjustHealth(-maxHealth * 0.1) /mob/living/simple_animal/hostile/venus_human_trap/OpenFire(atom/the_target) - var/dist = get_dist(src,the_target) - Beam(the_target, "vine", time=dist*2, maxdistance=dist+2, beam_type=/obj/effect/ebeam/vine) - the_target.attack_animal(src) + for(var/datum/beam/B in vines) + if(B.target == the_target) + pull_vines() + ranged_cooldown = world.time + (ranged_cooldown_time * 0.5) + return + if(get_dist(src,the_target) > vine_grab_distance || vines.len == max_vines) + return + for(var/turf/T in getline(src,target)) + if (T.density) + return + for(var/obj/O in T) + if(O.density) + return + var/datum/beam/newVine = Beam(the_target, "vine", time=INFINITY, maxdistance = vine_grab_distance, beam_type=/obj/effect/ebeam/vine) + RegisterSignal(newVine, COMSIG_PARENT_QDELETING, .proc/remove_vine, newVine) + vines += newVine + if(isliving(the_target)) + var/mob/living/L = the_target + L.Paralyze(20) + ranged_cooldown = world.time + ranged_cooldown_time -/mob/living/simple_animal/hostile/venus_human_trap/CanAttack(atom/the_target) +/mob/living/simple_animal/hostile/venus_human_trap/Login() + . = ..() + to_chat(src, "You a venus human trap! Protect the kudzu at all costs, and feast on those who oppose you!") + +/mob/living/simple_animal/hostile/venus_human_trap/attack_ghost(mob/user) . = ..() if(.) - if(the_target in grasping) - return 0 + return + humanize_plant(user) + +/** + * Sets a ghost to control the plant if the plant is eligible + * + * Asks the interacting ghost if they would like to control the plant. + * If they answer yes, and another ghost hasn't taken control, sets the ghost to control the plant. + * Arguments: + * * mob/user - The ghost to possibly control the plant + */ + +/mob/living/simple_animal/hostile/venus_human_trap/proc/humanize_plant(mob/user) + if(key || !playable_plant || stat) + return + var/plant_ask = alert("Become a venus human trap?", "Are you reverse vegan?", "Yes", "No") + if(plant_ask == "No" || QDELETED(src)) + return + if(key) + to_chat(user, "Someone else already took this plant!") + return + key = user.key + log_game("[key_name(src)] took control of [name].") + +/** + * Manages how the vines should affect the things they're attached to. + * + * Pulls all movable targets of the vines closer to the plant + * If the target is on the same tile as the plant, destroy the vine + * Removes any QDELETED vines from the vines list. + */ +/mob/living/simple_animal/hostile/venus_human_trap/proc/pull_vines() + for(var/datum/beam/B in vines) + if(istype(B.target, /atom/movable)) + var/atom/movable/AM = B.target + if(!AM.anchored) + step(AM,get_dir(AM,src)) + if(get_dist(src,B.target) == 0) + B.End() + +/** + * Removes a vine from the list. + * + * Removes the vine from our list. + * Called specifically when the vine is about to be destroyed, so we don't have any null references. + * Arguments: + * * datum/beam/vine - The vine to be removed from the list. + */ +mob/living/simple_animal/hostile/venus_human_trap/proc/remove_vine(datum/beam/vine, force) + vines -= vine diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 3feed2129b..def6327461 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -128,7 +128,7 @@ /mob/living/simple_animal/updatehealth() ..() - health = CLAMP(health, 0, maxHealth) + health = clamp(health, 0, maxHealth) /mob/living/simple_animal/update_stat() if(status_flags & GODMODE) @@ -292,8 +292,8 @@ /mob/living/simple_animal/proc/update_simplemob_varspeed() if(speed == 0) - remove_movespeed_modifier(MOVESPEED_ID_SIMPLEMOB_VARSPEED, TRUE) - add_movespeed_modifier(MOVESPEED_ID_SIMPLEMOB_VARSPEED, TRUE, 100, multiplicative_slowdown = speed, override = TRUE) + remove_movespeed_modifier(/datum/movespeed_modifier/simplemob_varspeed) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/simplemob_varspeed, multiplicative_slowdown = speed) /mob/living/simple_animal/Stat() ..() diff --git a/code/modules/mob/living/simple_animal/slime/powers.dm b/code/modules/mob/living/simple_animal/slime/powers.dm index 4f8e271d6f..d5da6d76fc 100644 --- a/code/modules/mob/living/simple_animal/slime/powers.dm +++ b/code/modules/mob/living/simple_animal/slime/powers.dm @@ -190,7 +190,7 @@ step_away(M,src) M.Friends = Friends.Copy() babies += M - M.mutation_chance = CLAMP(mutation_chance+(rand(5,-5)),0,100) + M.mutation_chance = clamp(mutation_chance+(rand(5,-5)),0,100) SSblackbox.record_feedback("tally", "slime_babies_born", 1, M.colour) var/mob/living/simple_animal/slime/new_slime = pick(babies) diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 8594d53bd1..78f7b17616 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -147,25 +147,26 @@ /mob/living/simple_animal/slime/on_reagent_change() . = ..() - remove_movespeed_modifier(MOVESPEED_ID_SLIME_REAGENTMOD, TRUE) + remove_movespeed_modifier(/datum/movespeed_modifier/slime_reagentmod) var/amount = 0 if(reagents.has_reagent(/datum/reagent/medicine/morphine)) // morphine slows slimes down amount = 2 if(reagents.has_reagent(/datum/reagent/consumable/frostoil)) // Frostoil also makes them move VEEERRYYYYY slow amount = 5 if(amount) - add_movespeed_modifier(MOVESPEED_ID_SLIME_REAGENTMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = amount) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/slime_reagentmod, multiplicative_slowdown = amount) /mob/living/simple_animal/slime/updatehealth() . = ..() - remove_movespeed_modifier(MOVESPEED_ID_SLIME_HEALTHMOD, FALSE) - var/health_deficiency = (100 - health) + remove_movespeed_modifier(/datum/movespeed_modifier/slime_healthmod) var/mod = 0 - if(health_deficiency >= 45) - mod += (health_deficiency / 25) - if(health <= 0) - mod += 2 - add_movespeed_modifier(MOVESPEED_ID_SLIME_HEALTHMOD, TRUE, 100, multiplicative_slowdown = mod) + if(!HAS_TRAIT(src, TRAIT_IGNOREDAMAGESLOWDOWN)) + var/health_deficiency = (maxHealth - health) + if(health_deficiency >= 45) + mod += (health_deficiency / 25) + if(health <= 0) + mod += 2 + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/slime_healthmod, multiplicative_slowdown = mod) /mob/living/simple_animal/slime/adjust_bodytemperature() . = ..() @@ -173,9 +174,8 @@ if(bodytemperature >= 330.23) // 135 F or 57.08 C mod = -1 // slimes become supercharged at high temperatures else if(bodytemperature < 183.222) - mod = (283.222 - bodytemperature) / 10 * 1.75 - if(mod) - add_movespeed_modifier(MOVESPEED_ID_SLIME_TEMPMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = mod) + mod = min(15, (283.222 - bodytemperature) / 10 * 1.75) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/slime_tempmod, multiplicative_slowdown = mod) /mob/living/simple_animal/slime/ObjBump(obj/O) if(!client && powerlevel > 0) diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm index 1375d88948..0d41347179 100644 --- a/code/modules/mob/living/status_procs.dm +++ b/code/modules/mob/living/status_procs.dm @@ -622,10 +622,40 @@ tod = STATION_TIME_TIMESTAMP("hh:mm:ss", world.time) update_stat() +///Unignores all slowdowns that lack the IGNORE_NOSLOW flag. /mob/living/proc/unignore_slowdown(source) REMOVE_TRAIT(src, TRAIT_IGNORESLOWDOWN, source) - update_movespeed(FALSE) + update_movespeed() +///Ignores all slowdowns that lack the IGNORE_NOSLOW flag. /mob/living/proc/ignore_slowdown(source) ADD_TRAIT(src, TRAIT_IGNORESLOWDOWN, source) - update_movespeed(FALSE) + update_movespeed() + +///Ignores specific slowdowns. Accepts a list of slowdowns. +/mob/living/proc/add_movespeed_mod_immunities(source, slowdown_type, update = TRUE) + if(islist(slowdown_type)) + for(var/listed_type in slowdown_type) + if(ispath(listed_type)) + listed_type = "[listed_type]" //Path2String + LAZYADDASSOC(movespeed_mod_immunities, listed_type, source) + else + if(ispath(slowdown_type)) + slowdown_type = "[slowdown_type]" //Path2String + LAZYADDASSOC(movespeed_mod_immunities, slowdown_type, source) + if(update) + update_movespeed() + +///Unignores specific slowdowns. Accepts a list of slowdowns. +/mob/living/proc/remove_movespeed_mod_immunities(source, slowdown_type, update = TRUE) + if(islist(slowdown_type)) + for(var/listed_type in slowdown_type) + if(ispath(listed_type)) + listed_type = "[listed_type]" //Path2String + LAZYREMOVEASSOC(movespeed_mod_immunities, listed_type, source) + else + if(ispath(slowdown_type)) + slowdown_type = "[slowdown_type]" //Path2String + LAZYREMOVEASSOC(movespeed_mod_immunities, slowdown_type, source) + if(update) + update_movespeed() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index fd786c8631..ce3b8bf3d2 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -284,7 +284,7 @@ mob/visible_message(message, self_message, blind_message, vision_distance = DEFA /mob/proc/reset_perspective(atom/A) if(client) if(A) - if(ismovableatom(A)) + if(ismovable(A)) //Set the the thing unless it's us if(A != src) client.perspective = EYE_PERSPECTIVE @@ -593,7 +593,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) stat("Failsafe Controller:", "ERROR") if(Master) stat(null) - for(var/datum/controller/subsystem/SS in Master.subsystems) + for(var/datum/controller/subsystem/SS in Master.statworthy_subsystems) SS.stat_entry() GLOB.cameranet.stat_entry() if(statpanel("Tickets")) @@ -1033,17 +1033,22 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) /// Updates the grab state of the mob and updates movespeed /mob/setGrabState(newstate) . = ..() - if(grab_state == GRAB_PASSIVE) - remove_movespeed_modifier(MOVESPEED_ID_MOB_GRAB_STATE, update=TRUE) - else - add_movespeed_modifier(MOVESPEED_ID_MOB_GRAB_STATE, update=TRUE, priority=100, override=TRUE, multiplicative_slowdown=grab_state*3, blacklisted_movetypes=FLOATING) + switch(grab_state) + if(GRAB_PASSIVE) + remove_movespeed_modifier(MOVESPEED_ID_MOB_GRAB_STATE) + if(GRAB_AGGRESSIVE) + add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/aggressive) + if(GRAB_NECK) + add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/neck) + if(GRAB_KILL) + add_movespeed_modifier(/datum/movespeed_modifier/grab_slowdown/kill) /mob/proc/update_equipment_speed_mods() var/speedies = equipped_speed_mods() if(!speedies) - remove_movespeed_modifier(MOVESPEED_ID_MOB_EQUIPMENT, update=TRUE) + remove_movespeed_modifier(/datum/movespeed_modifier/equipment_speedmod, update=TRUE) else - add_movespeed_modifier(MOVESPEED_ID_MOB_EQUIPMENT, update=TRUE, priority=100, override=TRUE, multiplicative_slowdown=speedies, blacklisted_movetypes=FLOATING) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/equipment_speedmod, multiplicative_slowdown = speedies) /// Gets the combined speed modification of all worn items /// Except base mob type doesnt really wear items diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index bf9dad1bc7..825f015ef4 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -10,6 +10,8 @@ throwforce = 10 blocks_emissive = EMISSIVE_BLOCK_GENERIC + vis_flags = VIS_INHERIT_PLANE //when this be added to vis_contents of something it inherit something.plane, important for visualisation of mob in openspace. + var/lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE var/datum/mind/mind var/list/datum/action/actions = list() @@ -42,8 +44,11 @@ var/lying_prev = 0 var/is_shifted = FALSE - //MOVEMENT SPEED + /// List of movement speed modifiers applying to this mob var/list/movespeed_modification //Lazy list, see mob_movespeed.dm + /// List of movement speed modifiers ignored by this mob. List -> List (id) -> List (sources) + var/list/movespeed_mod_immunities //Lazy list, see mob_movespeed.dm + /// The calculated mob speed slowdown based on the modifiers list var/cached_multiplicative_slowdown ///////////////// diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index ffc0970bdf..6531df5e68 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -80,12 +80,12 @@ var/oldloc = mob.loc if(L.confused) - var/newdir = 0 - if(L.confused > 40) + var/newdir = NONE + if((L.confused > 50) && prob(min(L.confused * 0.5, 50))) newdir = pick(GLOB.alldirs) - else if(prob(L.confused * 1.5)) + else if(prob(L.confused)) newdir = angle2dir(dir2angle(direction) + pick(90, -90)) - else if(prob(L.confused * 3)) + else if(prob(L.confused * 2)) newdir = angle2dir(dir2angle(direction) + pick(45, -45)) if(newdir) direction = newdir @@ -100,15 +100,16 @@ if(mob.throwing) mob.throwing.finalize(FALSE) - var/atom/movable/P = mob.pulling - if(P && !ismob(P) && P.density) - mob.setDir(turn(mob.dir, 180)) + if(L.pulling && !(L.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + L.setDir(turn(L.dir, 180)) SEND_SIGNAL(mob, COMSIG_MOB_CLIENT_MOVE, src, direction, n, oldloc) /// Process_Grab(): checks for grab, attempts to break if so. Return TRUE to prevent movement. /client/proc/Process_Grab() if(mob.pulledby) + if((mob.pulledby == mob.pulling) && (mob.pulledby.grab_state == GRAB_PASSIVE)) //Don't autoresist passive grabs if we're grabbing them too. + return if(mob.incapacitated(ignore_restraints = 1)) move_delay = world.time + 10 return TRUE @@ -251,9 +252,9 @@ /mob/proc/update_gravity(has_gravity, override=FALSE) var/speed_change = max(0, has_gravity - STANDARD_GRAVITY) if(!speed_change) - remove_movespeed_modifier(MOVESPEED_ID_MOB_GRAVITY, update=TRUE) + remove_movespeed_modifier(/datum/movespeed_modifier/gravity) else - add_movespeed_modifier(MOVESPEED_ID_MOB_GRAVITY, update=TRUE, priority=100, override=TRUE, multiplicative_slowdown=speed_change, blacklisted_movetypes=FLOATING) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/gravity, multiplicative_slowdown = speed_change) //bodypart selection - Cyberboss //8 toggles through head - eyes - mouth diff --git a/code/modules/mob/mob_movespeed.dm b/code/modules/mob/mob_movespeed.dm deleted file mode 100644 index a0be8ff7cb..0000000000 --- a/code/modules/mob/mob_movespeed.dm +++ /dev/null @@ -1,126 +0,0 @@ - -/*Current movespeed modification list format: list(id = list( - priority, - flags, - legacy slowdown/speedup amount, - movetype_flags, - blacklisted_movetypes, - conflict - )) -*/ - -//ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE! -/mob/proc/add_movespeed_modifier(id, update=TRUE, priority=0, flags=NONE, override=FALSE, multiplicative_slowdown=0, movetypes=ALL, blacklisted_movetypes=NONE, conflict=FALSE) - var/list/temp = list(priority, flags, multiplicative_slowdown, movetypes, blacklisted_movetypes, conflict) //build the modification list - var/resort = TRUE - if(LAZYACCESS(movespeed_modification, id)) - var/list/existing_data = movespeed_modification[id] - if(movespeed_modifier_identical_check(existing_data, temp)) - return FALSE - if(!override) - return FALSE - if(priority == existing_data[MOVESPEED_DATA_INDEX_PRIORITY]) - resort = FALSE // We don't need to re-sort if we're replacing something already there and it's the same priority - LAZYSET(movespeed_modification, id, temp) - if(update) - update_movespeed(resort) - return TRUE - -/mob/proc/remove_movespeed_modifier(id, update = TRUE) - if(!LAZYACCESS(movespeed_modification, id)) - return FALSE - LAZYREMOVE(movespeed_modification, id) - UNSETEMPTY(movespeed_modification) - if(update) - update_movespeed(FALSE) - return TRUE - -/mob/vv_edit_var(var_name, var_value) - var/slowdown_edit = (var_name == NAMEOF(src, cached_multiplicative_slowdown)) - var/diff - if(slowdown_edit && isnum(cached_multiplicative_slowdown) && isnum(var_value)) - remove_movespeed_modifier(MOVESPEED_ID_ADMIN_VAREDIT) - diff = var_value - cached_multiplicative_slowdown - . = ..() - if(. && slowdown_edit && isnum(diff)) - add_movespeed_modifier(MOVESPEED_ID_ADMIN_VAREDIT, TRUE, 100, override = TRUE, multiplicative_slowdown = diff) - -/mob/proc/has_movespeed_modifier(id) - return LAZYACCESS(movespeed_modification, id) - -/mob/proc/update_config_movespeed() - add_movespeed_modifier(MOVESPEED_ID_CONFIG_SPEEDMOD, FALSE, 100, override = TRUE, multiplicative_slowdown = get_config_multiplicative_speed()) - -/mob/proc/get_config_multiplicative_speed() - if(!islist(GLOB.mob_config_movespeed_type_lookup) || !GLOB.mob_config_movespeed_type_lookup[type]) - return 0 - else - return GLOB.mob_config_movespeed_type_lookup[type] - -/mob/proc/update_movespeed(resort = TRUE) - if(resort) - sort_movespeed_modlist() - . = 0 - var/list/conflict_tracker = list() - for(var/id in get_movespeed_modifiers()) - var/list/data = movespeed_modification[id] - if(!(data[MOVESPEED_DATA_INDEX_MOVETYPE] & movement_type)) // We don't affect any of these move types, skip - continue - if(data[MOVESPEED_DATA_INDEX_BL_MOVETYPE] & movement_type) // There's a movetype here that disables this modifier, skip - continue - var/conflict = data[MOVESPEED_DATA_INDEX_CONFLICT] - var/amt = data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN] - if(conflict) - // Conflicting modifiers prioritize the larger slowdown or the larger speedup - // We purposefuly don't handle mixing speedups and slowdowns on the same id - if(abs(conflict_tracker[conflict]) < abs(amt)) - conflict_tracker[conflict] = amt - else - continue - . += amt - cached_multiplicative_slowdown = . - -/mob/proc/get_movespeed_modifiers() - return movespeed_modification - -/mob/proc/movespeed_modifier_identical_check(list/mod1, list/mod2) - if(!islist(mod1) || !islist(mod2) || mod1.len < MOVESPEED_DATA_INDEX_MAX || mod2.len < MOVESPEED_DATA_INDEX_MAX) - return FALSE - for(var/i in 1 to MOVESPEED_DATA_INDEX_MAX) - if(mod1[i] != mod2[i]) - return FALSE - return TRUE - -/mob/proc/total_multiplicative_slowdown() - . = 0 - for(var/id in get_movespeed_modifiers()) - var/list/data = movespeed_modification[id] - . += data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN] - -/proc/movespeed_data_null_check(list/data) //Determines if a data list is not meaningful and should be discarded. - . = TRUE - if(data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN]) - . = FALSE - -/mob/proc/sort_movespeed_modlist() //Verifies it too. Sorts highest priority (first applied) to lowest priority (last applied) - if(!movespeed_modification) - return - var/list/assembled = list() - for(var/our_id in movespeed_modification) - var/list/our_data = movespeed_modification[our_id] - if(!islist(our_data) || (our_data.len < MOVESPEED_DATA_INDEX_PRIORITY) || movespeed_data_null_check(our_data)) - movespeed_modification -= our_id - continue - var/our_priority = our_data[MOVESPEED_DATA_INDEX_PRIORITY] - var/resolved = FALSE - for(var/their_id in assembled) - var/list/their_data = assembled[their_id] - if(their_data[MOVESPEED_DATA_INDEX_PRIORITY] < our_priority) - assembled.Insert(assembled.Find(their_id), our_id) - assembled[our_id] = our_data - resolved = TRUE - break - if(!resolved) - assembled[our_id] = our_data - movespeed_modification = assembled - UNSETEMPTY(movespeed_modification) \ No newline at end of file diff --git a/code/modules/mob/status_procs.dm b/code/modules/mob/status_procs.dm index 10abf460c6..cf86e962bd 100644 --- a/code/modules/mob/status_procs.dm +++ b/code/modules/mob/status_procs.dm @@ -20,7 +20,7 @@ dizziness = max(amount, 0) /** - * Sets a mob's blindness to an amount if it was not above it already, similar to how status effects work + * Sets a mob's blindness to an amount if it was not above it already, similar to how status effects work */ /mob/proc/blind_eyes(amount) var/old_blind = eye_blind || HAS_TRAIT(src, TRAIT_BLIND) @@ -90,8 +90,8 @@ return var/obj/screen/plane_master/game_world/GW = locate(/obj/screen/plane_master/game_world) in client.screen var/obj/screen/plane_master/floor/F = locate(/obj/screen/plane_master/floor) in client.screen - GW.add_filter("blurry_eyes", 2, EYE_BLUR(CLAMP(eye_blurry*0.1,0.6,3))) - F.add_filter("blurry_eyes", 2, EYE_BLUR(CLAMP(eye_blurry*0.1,0.6,3))) + GW.add_filter("blurry_eyes", 2, EYE_BLUR(clamp(eye_blurry*0.1,0.6,3))) + F.add_filter("blurry_eyes", 2, EYE_BLUR(clamp(eye_blurry*0.1,0.6,3))) /mob/proc/remove_eyeblur() if(!client) @@ -120,4 +120,4 @@ ///Adjust the body temperature of a mob, with min/max settings /mob/proc/adjust_bodytemperature(amount,min_temp=0,max_temp=INFINITY) if(bodytemperature >= min_temp && bodytemperature <= max_temp) - bodytemperature = CLAMP(bodytemperature + amount,min_temp,max_temp) + bodytemperature = clamp(bodytemperature + amount,min_temp,max_temp) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index ebecf741f4..ce017ea0cc 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -434,6 +434,7 @@ mind.transfer_to(new_xeno) else transfer_ckey(new_xeno) + update_atom_languages() to_chat(new_xeno, "You are now an alien.") . = new_xeno diff --git a/code/modules/modular_computers/hardware/_hardware.dm b/code/modules/modular_computers/hardware/_hardware.dm index 744db1572f..37f3fc434e 100644 --- a/code/modules/modular_computers/hardware/_hardware.dm +++ b/code/modules/modular_computers/hardware/_hardware.dm @@ -41,11 +41,10 @@ // Cable coil. Works as repair method, but will probably require multiple applications and more cable. if(istype(I, /obj/item/stack/cable_coil)) - var/obj/item/stack/S = I if(obj_integrity == max_integrity) to_chat(user, "\The [src] doesn't seem to require repairs.") return 1 - if(S.use(1)) + if(I.use_tool(src, user, 0, 1)) to_chat(user, "You patch up \the [src] with a bit of \the [I].") obj_integrity = min(obj_integrity + 10, max_integrity) return 1 diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm new file mode 100644 index 0000000000..0976f4d067 --- /dev/null +++ b/code/modules/movespeed/_movespeed_modifier.dm @@ -0,0 +1,217 @@ +/*! Movespeed modification datums. + + How move speed for mobs works + +Move speed is now calculated by using modifier datums which are added to mobs. Some of them (nonvariable ones) are globally cached, the variable ones are instanced and changed based on need. + +This gives us the ability to have multiple sources of movespeed, reliabily keep them applied and remove them when they should be + +THey can have unique sources and a bunch of extra fancy flags that control behaviour + +Previously trying to update move speed was a shot in the dark that usually meant mobs got stuck going faster or slower + +Movespeed modification list is a simple key = datum system. Key will be the datum's ID if it is overridden to not be null, or type if it is not. + +DO NOT override datum IDs unless you are going to have multiple types that must overwrite each other. It's more efficient to use types, ID functionality is only kept for cases where dynamic creation of modifiers need to be done. + +When update movespeed is called, the list of items is iterated, according to flags priority and a bunch of conditions +this spits out a final calculated value which is used as a modifer to last_move + modifier for calculating when a mob +can next move + +Key procs +* [add_movespeed_modifier](mob.html#proc/add_movespeed_modifier) +* [remove_movespeed_modifier](mob.html#proc/remove_movespeed_modifier) +* [has_movespeed_modifier](mob.html#proc/has_movespeed_modifier) +* [update_movespeed](mob.html#proc/update_movespeed) +*/ + +/datum/movespeed_modifier + /// Whether or not this is a variable modifier. Variable modifiers can NOT be ever auto-cached. ONLY CHECKED VIA INITIAL(), EFFECTIVELY READ ONLY (and for very good reason) + var/variable = FALSE + + /// Unique ID. You can never have different modifications with the same ID. By default, this SHOULD NOT be set. Only set it for cases where you're dynamically making modifiers/need to have two types overwrite each other. If unset, uses path (converted to text) as ID. + var/id + + /// Higher ones override lower priorities. This is NOT used for ID, ID must be unique, if it isn't unique the newer one overwrites automatically if overriding. + var/priority = 0 + var/flags = NONE + + /// Multiplicative slowdown + var/multiplicative_slowdown = 0 + + /// Movetypes this applies to + var/movetypes = ALL + + /// Movetypes this never applies to + var/blacklisted_movetypes = NONE + + /// Other modification datums this conflicts with. + var/conflicts_with + +/datum/movespeed_modifier/New() + . = ..() + if(!id) + id = "[type]" //We turn the path into a string. + +GLOBAL_LIST_EMPTY(movespeed_modification_cache) + +/// Grabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO! +/proc/get_cached_movespeed_modifier(modtype) + if(!ispath(modtype, /datum/movespeed_modifier)) + CRASH("[modtype] is not a movespeed modification typepath.") + var/datum/movespeed_modifier/M = modtype + if(initial(M.variable)) + CRASH("[modtype] is a variable modifier, and can never be cached.") + M = GLOB.movespeed_modification_cache[modtype] + if(!M) + M = GLOB.movespeed_modification_cache[modtype] = new modtype + return M + +///Add a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID. +/mob/proc/add_movespeed_modifier(datum/movespeed_modifier/type_or_datum, update = TRUE) + if(ispath(type_or_datum)) + if(!initial(type_or_datum.variable)) + type_or_datum = get_cached_movespeed_modifier(type_or_datum) + else + type_or_datum = new type_or_datum + var/datum/movespeed_modifier/existing = LAZYACCESS(movespeed_modification, type_or_datum.id) + if(existing) + if(existing == type_or_datum) //same thing don't need to touch + return TRUE + remove_movespeed_modifier(existing, FALSE) + if(length(movespeed_modification)) + BINARY_INSERT(type_or_datum.id, movespeed_modification, datum/movespeed_modifier, type_or_datum, priority, COMPARE_VALUE) + LAZYSET(movespeed_modification, type_or_datum.id, type_or_datum) + if(update) + update_movespeed() + return TRUE + +/// Remove a move speed modifier from a mob, whether static or variable. +/mob/proc/remove_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE) + var/key + if(ispath(type_id_datum)) + key = initial(type_id_datum.id) || "[type_id_datum]" //id if set, path set to string if not. + else if(!istext(type_id_datum)) //if it isn't text it has to be a datum, as it isn't a type. + key = type_id_datum.id + else //assume it's an id + key = type_id_datum + if(!LAZYACCESS(movespeed_modification, key)) + return FALSE + LAZYREMOVE(movespeed_modification, key) + if(update) + update_movespeed(FALSE) + return TRUE + +/*! Used for variable slowdowns like hunger/health loss/etc, works somewhat like the old list-based modification adds. Returns the modifier datum if successful + How this SHOULD work is: + 1. Ensures type_id_datum one way or another refers to a /variable datum. This makes sure it can't be cached. This includes if it's already in the modification list. + 2. Instantiate a new datum if type_id_datum isn't already instantiated + in the list, using the type. Obviously, wouldn't work for ID only. + 3. Add the datum if necessary using the regular add proc + 4. If any of the rest of the args are not null (see: multiplicative slowdown), modify the datum + 5. Update if necessary +*/ +/mob/proc/add_or_update_variable_movespeed_modifier(datum/movespeed_modifier/type_id_datum, update = TRUE, multiplicative_slowdown) + var/modified = FALSE + var/inject = FALSE + var/datum/movespeed_modifier/final + if(istext(type_id_datum)) + final = LAZYACCESS(movespeed_modification, type_id_datum) + if(!final) + CRASH("Couldn't find existing modification when provided a text ID.") + else if(ispath(type_id_datum)) + if(!initial(type_id_datum.variable)) + CRASH("Not a variable modifier") + final = LAZYACCESS(movespeed_modification, initial(type_id_datum.id) || "[type_id_datum]") + if(!final) + final = new type_id_datum + inject = TRUE + modified = TRUE + else + if(!initial(type_id_datum.variable)) + CRASH("Not a variable modifier") + final = type_id_datum + if(!LAZYACCESS(movespeed_modification, final.id)) + inject = TRUE + modified = TRUE + if(!isnull(multiplicative_slowdown)) + final.multiplicative_slowdown = multiplicative_slowdown + modified = TRUE + if(inject) + add_movespeed_modifier(final, FALSE) + if(update && modified) + update_movespeed(TRUE) + return final + +/// Handles the special case of editing the movement var +/mob/vv_edit_var(var_name, var_value) + var/slowdown_edit = (var_name == NAMEOF(src, cached_multiplicative_slowdown)) + var/diff + if(slowdown_edit && isnum(cached_multiplicative_slowdown) && isnum(var_value)) + remove_movespeed_modifier(/datum/movespeed_modifier/admin_varedit) + diff = var_value - cached_multiplicative_slowdown + . = ..() + if(. && slowdown_edit && isnum(diff)) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/admin_varedit, multiplicative_slowdown = diff) + +///Is there a movespeed modifier for this mob +/mob/proc/has_movespeed_modifier(datum/movespeed_modifier/datum_type_id) + var/key + if(ispath(datum_type_id)) + key = initial(datum_type_id.id) || "[datum_type_id]" + else if(istext(datum_type_id)) + key = datum_type_id + else + key = datum_type_id.id + return LAZYACCESS(movespeed_modification, key) + +/// Set or update the global movespeed config on a mob +/mob/proc/update_config_movespeed() + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/mob_config_speedmod, multiplicative_slowdown = get_config_multiplicative_speed()) + +/// Get the global config movespeed of a mob by type +/mob/proc/get_config_multiplicative_speed() + if(!islist(GLOB.mob_config_movespeed_type_lookup) || !GLOB.mob_config_movespeed_type_lookup[type]) + return 0 + else + return GLOB.mob_config_movespeed_type_lookup[type] + +/// Go through the list of movespeed modifiers and calculate a final movespeed. ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE! +/mob/proc/update_movespeed() + . = 0 + var/list/conflict_tracker = list() + for(var/key in get_movespeed_modifiers()) + var/datum/movespeed_modifier/M = movespeed_modification[key] + if(!(M.movetypes & movement_type)) // We don't affect any of these move types, skip + continue + if(M.blacklisted_movetypes & movement_type) // There's a movetype here that disables this modifier, skip + continue + var/conflict = M.conflicts_with + var/amt = M.multiplicative_slowdown + if(conflict) + // Conflicting modifiers prioritize the larger slowdown or the larger speedup + // We purposefuly don't handle mixing speedups and slowdowns on the same id + if(abs(conflict_tracker[conflict]) < abs(amt)) + conflict_tracker[conflict] = amt + else + continue + . += amt + cached_multiplicative_slowdown = . + +/// Get the move speed modifiers list of the mob +/mob/proc/get_movespeed_modifiers() + . = LAZYCOPY(movespeed_modification) + for(var/id in movespeed_mod_immunities) + . -= id + +/// Calculate the total slowdown of all movespeed modifiers +/mob/proc/total_multiplicative_slowdown() + . = 0 + for(var/id in get_movespeed_modifiers()) + var/datum/movespeed_modifier/M = movespeed_modification[id] + . += M.multiplicative_slowdown + +/// Checks if a move speed modifier is valid and not missing any data +/proc/movespeed_data_null_check(datum/movespeed_modifier/M) //Determines if a data list is not meaningful and should be discarded. + . = TRUE + if(M.multiplicative_slowdown) + . = FALSE diff --git a/code/modules/movespeed/modifiers/components.dm b/code/modules/movespeed/modifiers/components.dm new file mode 100644 index 0000000000..436b85e2e1 --- /dev/null +++ b/code/modules/movespeed/modifiers/components.dm @@ -0,0 +1,21 @@ +/datum/movespeed_modifier/shrink_ray + movetypes = GROUND + multiplicative_slowdown = 4 + flags = IGNORE_NOSLOW + +/datum/movespeed_modifier/snail_crawl + multiplicative_slowdown = -7 + movetypes = GROUND + +/datum/movespeed_modifier/sanity + id = MOVESPEED_ID_SANITY + blacklisted_movetypes = FLYING + +/datum/movespeed_modifier/sanity/insane + multiplicative_slowdown = 1.5 + +/datum/movespeed_modifier/sanity/crazy + multiplicative_slowdown = 1 + +/datum/movespeed_modifier/sanity/disturbed + multiplicative_slowdown = 0.5 diff --git a/code/modules/movespeed/modifiers/innate.dm b/code/modules/movespeed/modifiers/innate.dm new file mode 100644 index 0000000000..a0357ddf0f --- /dev/null +++ b/code/modules/movespeed/modifiers/innate.dm @@ -0,0 +1,20 @@ +/datum/movespeed_modifier/strained_muscles + multiplicative_slowdown = -1 + blacklisted_movetypes = (FLYING|FLOATING) + +/datum/movespeed_modifier/pai_spacewalk + multiplicative_slowdown = 2 + flags = IGNORE_NOSLOW + +/datum/movespeed_modifier/species + movetypes = ~FLYING + variable = TRUE + +/datum/movespeed_modifier/dna_vault_speedup + blacklisted_movetypes = (FLYING|FLOATING) + multiplicative_slowdown = -1 + +/datum/movespeed_modifier/small_stride + blacklisted_movetypes = (FLOATING|CRAWLING) + variable = TRUE + flags = IGNORE_NOSLOW diff --git a/code/modules/movespeed/modifiers/items.dm b/code/modules/movespeed/modifiers/items.dm new file mode 100644 index 0000000000..94dc2a1553 --- /dev/null +++ b/code/modules/movespeed/modifiers/items.dm @@ -0,0 +1,12 @@ +/datum/movespeed_modifier/jetpack + conflicts_with = MOVE_CONFLICT_JETPACK + movetypes = FLOATING + +/datum/movespeed_modifier/jetpack/cybernetic + multiplicative_slowdown = -0.5 + +/datum/movespeed_modifier/jetpack/fullspeed + multiplicative_slowdown = -2 + +/datum/movespeed_modifier/die_of_fate + multiplicative_slowdown = 1 diff --git a/code/modules/movespeed/modifiers/misc.dm b/code/modules/movespeed/modifiers/misc.dm new file mode 100644 index 0000000000..55c1aef527 --- /dev/null +++ b/code/modules/movespeed/modifiers/misc.dm @@ -0,0 +1,6 @@ +/datum/movespeed_modifier/admin_varedit + variable = TRUE + +/datum/movespeed_modifier/yellow_orb + multiplicative_slowdown = -2 + blacklisted_movetypes = (FLYING|FLOATING) diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm new file mode 100644 index 0000000000..aa60966591 --- /dev/null +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -0,0 +1,120 @@ +/datum/movespeed_modifier/obesity + multiplicative_slowdown = 1.5 + +/datum/movespeed_modifier/monkey_reagent_speedmod + blacklisted_movetypes = FLOATING + variable = TRUE + +/datum/movespeed_modifier/monkey_health_speedmod + blacklisted_movetypes = FLOATING + variable = TRUE + +/datum/movespeed_modifier/monkey_temperature_speedmod + blacklisted_movetypes = FLOATING + variable = TRUE + +/datum/movespeed_modifier/hunger + variable = TRUE + +/datum/movespeed_modifier/slaughter + multiplicative_slowdown = -1 + +/datum/movespeed_modifier/damage_slowdown + blacklisted_movetypes = FLOATING|FLYING + variable = TRUE + +/datum/movespeed_modifier/damage_slowdown_flying + movetypes = FLOATING + variable = TRUE + +/datum/movespeed_modifier/equipment_speedmod + variable = TRUE + blacklisted_movetypes = FLOATING + +/datum/movespeed_modifier/grab_slowdown + id = MOVESPEED_ID_MOB_GRAB_STATE + blacklisted_movetypes = FLOATING + +/datum/movespeed_modifier/grab_slowdown/aggressive + multiplicative_slowdown = 3 + +/datum/movespeed_modifier/grab_slowdown/neck + multiplicative_slowdown = 6 + +/datum/movespeed_modifier/grab_slowdown/kill + multiplicative_slowdown = 9 + +/datum/movespeed_modifier/slime_reagentmod + variable = TRUE + +/datum/movespeed_modifier/slime_healthmod + variable = TRUE + +/datum/movespeed_modifier/config_walk_run + multiplicative_slowdown = 1 + id = MOVESPEED_ID_MOB_WALK_RUN + flags = IGNORE_NOSLOW + +/datum/movespeed_modifier/config_walk_run/proc/sync() + +/datum/movespeed_modifier/config_walk_run/walk/sync() + var/mod = CONFIG_GET(number/movedelay/walk_delay) + multiplicative_slowdown = isnum(mod)? mod : initial(multiplicative_slowdown) + +/datum/movespeed_modifier/config_walk_run/run/sync() + var/mod = CONFIG_GET(number/movedelay/run_delay) + multiplicative_slowdown = isnum(mod)? mod : initial(multiplicative_slowdown) + +/datum/movespeed_modifier/turf_slowdown + movetypes = GROUND + blacklisted_movetypes = (FLYING|FLOATING) + variable = TRUE + +/datum/movespeed_modifier/bulky_drag + variable = TRUE + +/datum/movespeed_modifier/cold + blacklisted_movetypes = FLOATING + variable = TRUE + +/datum/movespeed_modifier/shove + multiplicative_slowdown = SHOVE_SLOWDOWN_STRENGTH + +/datum/movespeed_modifier/human_carry + variable = TRUE + +/datum/movespeed_modifier/limbless + variable = TRUE + movetypes = GROUND + flags = IGNORE_NOSLOW + +/datum/movespeed_modifier/simplemob_varspeed + variable = TRUE + flags = IGNORE_NOSLOW + +/datum/movespeed_modifier/tarantula_web + multiplicative_slowdown = 3 + +/datum/movespeed_modifier/gravity + blacklisted_movetypes = FLOATING + variable = TRUE + flags = IGNORE_NOSLOW + +/datum/movespeed_modifier/carbon_softcrit + multiplicative_slowdown = SOFTCRIT_ADD_SLOWDOWN + +/datum/movespeed_modifier/slime_tempmod + variable = TRUE + +/datum/movespeed_modifier/carbon_crawling + multiplicative_slowdown = CRAWLING_ADD_SLOWDOWN + movetypes = CRAWLING + flags = IGNORE_NOSLOW + +/datum/movespeed_modifier/mob_config_speedmod + variable = TRUE + flags = IGNORE_NOSLOW + +/datum/movespeed_modifier/liver_cirrhosis + blacklisted_movetypes = FLOATING + variable = TRUE diff --git a/code/modules/movespeed/modifiers/reagents.dm b/code/modules/movespeed/modifiers/reagents.dm new file mode 100644 index 0000000000..b6c2458670 --- /dev/null +++ b/code/modules/movespeed/modifiers/reagents.dm @@ -0,0 +1,14 @@ +/datum/movespeed_modifier/reagent + blacklisted_movetypes = (FLYING|FLOATING) + +/datum/movespeed_modifier/reagent/stimulants + multiplicative_slowdown = -0.5 + +/datum/movespeed_modifier/reagent/changelinghaste + multiplicative_slowdown = -2 + +/datum/movespeed_modifier/reagent/skooma + multiplicative_slowdown = -1 + +/datum/movespeed_modifier/reagent/nitryl + multiplicative_slowdown = -1 diff --git a/code/modules/movespeed/modifiers/status_effects.dm b/code/modules/movespeed/modifiers/status_effects.dm new file mode 100644 index 0000000000..4c710cb483 --- /dev/null +++ b/code/modules/movespeed/modifiers/status_effects.dm @@ -0,0 +1,44 @@ +/datum/movespeed_modifier/status_effect/bloodchill + multiplicative_slowdown = 3 + +/datum/movespeed_modifier/status_effect/bonechill + multiplicative_slowdown = 3 + +/datum/movespeed_modifier/status_effect/tarfoot + multiplicative_slowdown = 0.5 + blacklisted_movetypes = (FLYING|FLOATING) + +/datum/movespeed_modifier/status_effect/sepia + variable = TRUE + blacklisted_movetypes = (FLYING|FLOATING) + +/datum/movespeed_modifier/status_effect/mesmerize + blacklisted_movetypes = CRAWLING + multiplicative_slowdown = 5 + priority = 64 + +/datum/movespeed_modifier/status_effect/tased + multiplicative_slowdown = 1.5 + priority = 50 + +/datum/movespeed_modifier/status_effect/tased/no_combat_mode + multiplicative_slowdown = 8 + priority = 100 + +/datum/movespeed_modifier/status_effect/electrostaff + multiplicative_slowdown = 1 + movetypes = GROUND + +//no comment. +/datum/movespeed_modifier/status_effect/breast_hypertrophy + blacklisted_movetypes = FLOATING + variable = TRUE + +//this shouldn't even exist. +/datum/movespeed_modifier/status_effect/penis_hypertrophy + blacklisted_movetypes = FLOATING + variable = TRUE + +/datum/movespeed_modifier/status_effect/mkultra + multiplicative_slowdown = -2 + blacklisted_movetypes= FLYING|FLOATING diff --git a/code/modules/ninja/ninja_event.dm b/code/modules/ninja/ninja_event.dm index f1e7119530..bc3c445731 100644 --- a/code/modules/ninja/ninja_event.dm +++ b/code/modules/ninja/ninja_event.dm @@ -41,6 +41,9 @@ Contents: for(var/obj/effect/landmark/carpspawn/L in GLOB.landmarks_list) if(isturf(L.loc)) spawn_locs += L.loc + for(var/obj/effect/landmark/loneopspawn/L in GLOB.landmarks_list) + if(isturf(L.loc)) + spawn_locs += L.loc if(!spawn_locs.len) return kill() spawn_loc = pick(spawn_locs) diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm index b7b7bc36b7..f039dc32b2 100644 --- a/code/modules/photography/camera/camera.dm +++ b/code/modules/photography/camera/camera.dm @@ -53,8 +53,8 @@ return var/desired_x = input(user, "How high do you want the camera to shoot, between [picture_size_x_min] and [picture_size_x_max]?", "Zoom", picture_size_x) as num var/desired_y = input(user, "How wide do you want the camera to shoot, between [picture_size_y_min] and [picture_size_y_max]?", "Zoom", picture_size_y) as num - picture_size_x = min(CLAMP(desired_x, picture_size_x_min, picture_size_x_max), CAMERA_PICTURE_SIZE_HARD_LIMIT) - picture_size_y = min(CLAMP(desired_y, picture_size_y_min, picture_size_y_max), CAMERA_PICTURE_SIZE_HARD_LIMIT) + picture_size_x = min(clamp(desired_x, picture_size_x_min, picture_size_x_max), CAMERA_PICTURE_SIZE_HARD_LIMIT) + picture_size_y = min(clamp(desired_y, picture_size_y_min, picture_size_y_max), CAMERA_PICTURE_SIZE_HARD_LIMIT) return TRUE /obj/item/camera/attack(mob/living/carbon/human/M, mob/user) @@ -155,8 +155,8 @@ if(!isturf(target_turf)) blending = FALSE return FALSE - size_x = CLAMP(size_x, 0, CAMERA_PICTURE_SIZE_HARD_LIMIT) - size_y = CLAMP(size_y, 0, CAMERA_PICTURE_SIZE_HARD_LIMIT) + size_x = clamp(size_x, 0, CAMERA_PICTURE_SIZE_HARD_LIMIT) + size_y = clamp(size_y, 0, CAMERA_PICTURE_SIZE_HARD_LIMIT) var/list/desc = list("This is a photo of an area of [size_x+1] meters by [size_y+1] meters.") var/ai_user = isAI(user) var/list/seen diff --git a/code/modules/photography/camera/camera_image_capturing.dm b/code/modules/photography/camera/camera_image_capturing.dm index f25d80c050..5bd9c108d1 100644 --- a/code/modules/photography/camera/camera_image_capturing.dm +++ b/code/modules/photography/camera/camera_image_capturing.dm @@ -4,7 +4,7 @@ if(istype(A)) appearance = A.appearance dir = A.dir - if(ismovableatom(A)) + if(ismovable(A)) var/atom/movable/AM = A step_x = AM.step_x step_y = AM.step_y @@ -68,7 +68,7 @@ for(var/atom/A in sorted) var/xo = (A.x - center.x) * world.icon_size + A.pixel_x + xcomp var/yo = (A.y - center.y) * world.icon_size + A.pixel_y + ycomp - if(ismovableatom(A)) + if(ismovable(A)) var/atom/movable/AM = A xo += AM.step_x yo += AM.step_y diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index fa023b0e3a..7d314a3726 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -196,19 +196,23 @@ switch(tdir) if(NORTH) + pixel_x = 0 pixel_y = 23 if(SOUTH) + pixel_x = 0 pixel_y = -23 if(EAST) + pixel_y = 0 pixel_x = 24 if(WEST) + pixel_y = 0 pixel_x = -25 /obj/machinery/power/apc/Destroy() GLOB.apcs_list -= src if(malfai && operating) - malfai.malf_picker.processing_time = CLAMP(malfai.malf_picker.processing_time - 10,0,1000) + malfai.malf_picker.processing_time = clamp(malfai.malf_picker.processing_time - 10,0,1000) area.power_light = FALSE area.power_equip = FALSE area.power_environ = FALSE @@ -593,19 +597,15 @@ user.visible_message("[user.name] adds cables to the APC frame.", \ "You start adding cables to the APC frame...") playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) - if(do_after(user, 20, target = src)) - if (C.get_amount() < 10 || !C) + if(C.use_tool(src, user, 20, 10) && !terminal && opened && has_electronics) + var/turf/T = get_turf(src) + var/obj/structure/cable/N = T.get_cable_node() + if (prob(50) && electrocute_mob(usr, N, N, 1, TRUE)) + do_sparks(5, TRUE, src) return - if (C.get_amount() >= 10 && !terminal && opened && has_electronics) - var/turf/T = get_turf(src) - var/obj/structure/cable/N = T.get_cable_node() - if (prob(50) && electrocute_mob(usr, N, N, 1, TRUE)) - do_sparks(5, TRUE, src) - return - C.use(10) - to_chat(user, "You add cables to the APC frame.") - make_terminal() - terminal.connect_to_network() + to_chat(user, "You add cables to the APC frame.") + make_terminal() + terminal.connect_to_network() else if (istype(W, /obj/item/electronics/apc) && opened) if (has_electronics) to_chat(user, "There is already a board inside the [src]!") @@ -1350,7 +1350,7 @@ lighting = autoset(lighting, 0) environ = autoset(environ, 0) area.poweralert(0, src) - + else if(cell_percent < 15 && longtermpower < 0) // <15%, turn off lighting & equipment equipment = autoset(equipment, 2) lighting = autoset(lighting, 2) @@ -1447,7 +1447,7 @@ /obj/machinery/power/apc/proc/set_broken() if(malfai && operating) - malfai.malf_picker.processing_time = CLAMP(malfai.malf_picker.processing_time - 10,0,1000) + malfai.malf_picker.processing_time = clamp(malfai.malf_picker.processing_time - 10,0,1000) stat |= BROKEN operating = FALSE if(occupier) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index ed90ed407f..3d8e35935f 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -91,6 +91,21 @@ By design, d1 is the smallest direction and d2 is the highest d1 = _d1 d2 = _d2 + if(dir != SOUTH) + var/angle_to_turn = dir2angle(dir) + if(angle_to_turn == 0 || angle_to_turn == 180) + angle_to_turn += 180 + // direct dir set instead of setDir intentional + dir = SOUTH + if(d1) + d1 = turn(d1, angle_to_turn) + if(d2) + d2 = turn(d2, angle_to_turn) + if(d1 > d2) + var/temp = d2 + d2 = d1 + d1 = temp + var/turf/T = get_turf(src) // hide if turf is not intact if(level==1) hide(T.intact) @@ -217,7 +232,7 @@ By design, d1 is the smallest direction and d2 is the highest /obj/structure/cable/proc/surplus() if(powernet) - return CLAMP(powernet.avail-powernet.load, 0, powernet.avail) + return clamp(powernet.avail-powernet.load, 0, powernet.avail) else return 0 @@ -233,7 +248,7 @@ By design, d1 is the smallest direction and d2 is the highest /obj/structure/cable/proc/delayed_surplus() if(powernet) - return CLAMP(powernet.newavail - powernet.delayedload, 0, powernet.newavail) + return clamp(powernet.newavail - powernet.delayedload, 0, powernet.newavail) else return 0 @@ -495,6 +510,7 @@ By design, d1 is the smallest direction and d2 is the highest full_w_class = WEIGHT_CLASS_SMALL grind_results = list(/datum/reagent/copper = 2) //2 copper per cable in the coil usesound = 'sound/items/deconstruct.ogg' + used_skills = list(/datum/skill/level/job/wiring) /obj/item/stack/cable_coil/cyborg is_cyborg = 1 @@ -533,7 +549,7 @@ By design, d1 is the smallest direction and d2 is the highest if(affecting && affecting.status == BODYPART_ROBOTIC) if(user == H) user.visible_message("[user] starts to fix some of the wires in [H]'s [affecting.name].", "You start fixing some of the wires in [H]'s [affecting.name].") - if(!do_after(user, H, 50)) + if(!do_mob(user, H, 50)) return if(item_heal_robotic(H, user, 0, 15)) use(1) @@ -565,7 +581,7 @@ By design, d1 is the smallest direction and d2 is the highest return var/obj/item/restraints/handcuffs/cable/result = new(get_turf(user)) user.put_in_hands(result) - result.color = color + result.color = color to_chat(user, "You make some restraints out of cable") //add cables to the stack @@ -576,8 +592,6 @@ By design, d1 is the smallest direction and d2 is the highest amount += extra update_icon() - - /////////////////////////////////////////////// // Cable laying procedures ////////////////////////////////////////////// @@ -848,4 +862,4 @@ By design, d1 is the smallest direction and d2 is the highest . = ..() var/list/cable_colors = GLOB.cable_colors color = pick(cable_colors) - + diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 93fe7e8fa6..cc321fdb4d 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -157,7 +157,7 @@ /obj/item/stock_parts/cell/proc/get_electrocute_damage() if(charge >= 1000) - return CLAMP(round(charge/10000), 10, 90) + rand(-5,5) + return clamp(round(charge/10000), 10, 90) + rand(-5,5) else return 0 @@ -334,7 +334,7 @@ . = ..() if(. & EMP_PROTECT_SELF) return - charge = CLAMP((charge-(10000/severity)),0,maxcharge) + charge = clamp((charge-(10000/severity)),0,maxcharge) /obj/item/stock_parts/cell/emergency_light name = "miniature power cell" diff --git a/code/modules/power/floodlight.dm b/code/modules/power/floodlight.dm index 9fb1a1ce7d..e0b3f5f316 100644 --- a/code/modules/power/floodlight.dm +++ b/code/modules/power/floodlight.dm @@ -15,8 +15,7 @@ state = FLOODLIGHT_NEEDS_WIRES desc = "A bare metal frame looking vaguely like a floodlight. Requires wiring." else if(istype(O, /obj/item/stack/cable_coil) && (state == FLOODLIGHT_NEEDS_WIRES)) - var/obj/item/stack/S = O - if(S.use(5)) + if(O.use_tool(src, user, 0, 5)) to_chat(user, "You wire [src].") name = "wired [name]" desc = "A bare metal frame looking vaguely like a floodlight. Requires securing with a screwdriver." diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 02ff4127eb..181df7b07c 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -118,8 +118,7 @@ return if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/coil = W - if(coil.use(1)) + if(W.use_tool(src, user, 0, 1, max_level = JOB_SKILL_TRAINED)) icon_state = "[fixture_type]-construct-stage2" stage = 2 user.visible_message("[user.name] adds wires to [src].", \ @@ -193,7 +192,7 @@ var/on = FALSE // 1 if on, 0 if off var/on_gs = FALSE var/static_power_used = 0 - var/brightness = 11 // luminosity when on, also used in power calculation + var/brightness = 9 // luminosity when on, also used in power calculation var/bulb_power = 0.75 // basically the alpha of the emitted light source var/bulb_colour = "#FFF6ED" // befault colour of the light. var/status = LIGHT_OK // LIGHT_OK, _EMPTY, _BURNED or _BROKEN @@ -232,7 +231,8 @@ icon_state = "bulb" base_state = "bulb" fitting = "bulb" - brightness = 6 + brightness = 5 + nightshift_brightness = 4 bulb_colour = "#FFDDBB" desc = "A small lighting fixture." light_type = /obj/item/light/bulb @@ -274,11 +274,11 @@ spawn(2) switch(fitting) if("tube") - brightness = 11 + brightness = 9 if(prob(2)) break_light_tube(1) if("bulb") - brightness = 6 + brightness = 5 if(prob(5)) break_light_tube(1) spawn(1) @@ -314,7 +314,7 @@ . = ..() SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays) if(on && status == LIGHT_OK) - SSvis_overlays.add_vis_overlay(src, overlayicon, base_state, EMISSIVE_LAYER, EMISSIVE_PLANE, dir, CLAMP(light_power*250, 30, 200)) + SSvis_overlays.add_vis_overlay(src, overlayicon, base_state, EMISSIVE_LAYER, EMISSIVE_PLANE, dir, clamp(light_power*250, 30, 200)) // update the icon_state and luminosity of the light depending on its state @@ -361,11 +361,11 @@ set_light(0) update_icon() - active_power_usage = (brightness * 7.2) + active_power_usage = (brightness * 10) if(on != on_gs) on_gs = on if(on) - static_power_used = brightness * 14.4 * (hijacked ? 2 : 1) //20W per unit luminosity + static_power_used = brightness * 20 * (hijacked ? 2 : 1) //20W per unit luminosity addStaticPower(static_power_used, STATIC_LIGHT) else removeStaticPower(static_power_used, STATIC_LIGHT) @@ -748,7 +748,7 @@ icon_state = "ltube" base_state = "ltube" item_state = "c_tube" - brightness = 11 + brightness = 9 /obj/item/light/tube/broken status = LIGHT_BROKEN @@ -761,7 +761,7 @@ item_state = "contvapour" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' - brightness = 6 + brightness = 5 /obj/item/light/bulb/broken status = LIGHT_BROKEN @@ -830,7 +830,8 @@ icon = 'icons/obj/lighting.dmi' base_state = "floor" // base description and icon_state icon_state = "floor" - brightness = 6 + brightness = 5 + nightshift_brightness = 4 layer = 2.5 light_type = /obj/item/light/bulb fitting = "bulb" diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 39977b7d06..ecea673a70 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -42,7 +42,7 @@ /obj/machinery/power/proc/surplus() if(powernet) - return CLAMP(powernet.avail-powernet.load, 0, powernet.avail) + return clamp(powernet.avail-powernet.load, 0, powernet.avail) else return 0 @@ -58,7 +58,7 @@ /obj/machinery/power/proc/delayed_surplus() if(powernet) - return CLAMP(powernet.newavail - powernet.delayedload, 0, powernet.newavail) + return clamp(powernet.newavail - powernet.delayedload, 0, powernet.newavail) else return 0 diff --git a/code/modules/power/powernet.dm b/code/modules/power/powernet.dm index 3b70383bee..65d5202ff4 100644 --- a/code/modules/power/powernet.dm +++ b/code/modules/power/powernet.dm @@ -96,6 +96,6 @@ /datum/powernet/proc/get_electrocute_damage() if(avail >= 1000) - return CLAMP(round(avail/10000), 10, 90) + rand(-5,5) + return clamp(round(avail/10000), 10, 90) + rand(-5,5) else return 0 \ No newline at end of file diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index 2e6ec57f77..68a6b34216 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -28,11 +28,19 @@ var/bitcoinproduction_drain = 0.15 var/bitcoinmining = FALSE rad_insulation = RAD_EXTREME_INSULATION + var/obj/item/radio/Radio /obj/machinery/power/rad_collector/anchored anchored = TRUE +/obj/machinery/power/rad_collector/Initialize() + . = ..() + Radio = new /obj/item/radio(src) + Radio.listening = 0 + Radio.set_frequency(FREQ_ENGINEERING) + /obj/machinery/power/rad_collector/Destroy() + QDEL_NULL(Radio) return ..() /obj/machinery/power/rad_collector/process() @@ -42,6 +50,7 @@ if(!loaded_tank.air_contents.gases[/datum/gas/plasma]) investigate_log("out of fuel.", INVESTIGATE_SINGULO) playsound(src, 'sound/machines/ding.ogg', 50, 1) + Radio.talk_into(src, "Insufficient plasma in [get_area(src)] [src], ejecting \the [loaded_tank].", FREQ_ENGINEERING) eject() else var/gasdrained = min(powerproduction_drain*drainratio,loaded_tank.air_contents.gases[/datum/gas/plasma]) @@ -55,6 +64,7 @@ else if(is_station_level(z) && SSresearch.science_tech) if(!loaded_tank.air_contents.gases[/datum/gas/tritium] || !loaded_tank.air_contents.gases[/datum/gas/oxygen]) playsound(src, 'sound/machines/ding.ogg', 50, 1) + Radio.talk_into(src, "Insufficient oxygen and tritium in [get_area(src)] [src] to produce research points, ejecting \the [loaded_tank].", FREQ_ENGINEERING) eject() else var/gasdrained = bitcoinproduction_drain*drainratio diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index c471047682..ed3a098dae 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -201,7 +201,7 @@ // if(defer_powernet_rebuild != 2) // defer_powernet_rebuild = 1 for(var/atom/X in urange(consume_range,src,1)) - if(isturf(X) || ismovableatom(X)) + if(isturf(X) || ismovable(X)) consume(X) // if(defer_powernet_rebuild != 2) // defer_powernet_rebuild = 0 diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm index 59792b6539..e33116b02c 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm @@ -79,8 +79,7 @@ construction_state = PA_CONSTRUCTION_UNSECURED did_something = TRUE else if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/CC = W - if(CC.use(1)) + if(W.use_tool(src, user, 0, 1)) user.visible_message("[user.name] adds wires to the [name].", \ "You add some wires.") construction_state = PA_CONSTRUCTION_PANEL_OPEN diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index 12132b5bae..beaf4bfc43 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -222,8 +222,7 @@ construction_state = PA_CONSTRUCTION_UNSECURED did_something = TRUE else if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/CC = W - if(CC.use(1)) + if(W.use_tool(src, user, 0, 1)) user.visible_message("[user.name] adds wires to the [name].", \ "You add some wires.") construction_state = PA_CONSTRUCTION_PANEL_OPEN diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 76eeeae205..025784e909 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -119,14 +119,13 @@ /obj/singularity/Bump(atom/A) + set waitfor = FALSE consume(A) - return - /obj/singularity/Bumped(atom/movable/AM) + set waitfor = FALSE consume(AM) - /obj/singularity/process() if(current_size >= STAGE_TWO) move() @@ -268,6 +267,7 @@ /obj/singularity/proc/eat() + set waitfor = FALSE for(var/tile in spiral_range_turfs(grav_pull, src)) var/turf/T = tile if(!T || !isturf(loc)) @@ -284,8 +284,6 @@ else consume(X) CHECK_TICK - return - /obj/singularity/proc/consume(atom/A) var/gain = A.singularity_act(current_size, src) @@ -295,8 +293,6 @@ name = "supermatter-charged [initial(name)]" consumedSupermatter = 1 set_light(10) - return - /obj/singularity/proc/move(force_move = 0) if(!move_self) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 5aa60a245b..5ed1a1e8de 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -125,15 +125,12 @@ to_chat(user, "You start building the power terminal...") playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) - if(do_after(user, 20, target = src) && C.get_amount() >= 10) - if(C.get_amount() < 10 || !C) - return + if(C.use_tool(src, user, 20, 10)) var/obj/structure/cable/N = T.get_cable_node() //get the connecting node cable, if there's one if (prob(50) && electrocute_mob(usr, N, N, 1, TRUE)) //animate the electrocution if uncautious and unlucky do_sparks(5, TRUE, src) return - C.use(10) user.visible_message(\ "[user.name] has built a power terminal.",\ "You build the power terminal.") @@ -220,7 +217,7 @@ . += "smes-og[clevel]" /obj/machinery/power/smes/proc/chargedisplay() - return CLAMP(round(5.5*charge/capacity),0,5) + return clamp(round(5.5*charge/capacity),0,5) /obj/machinery/power/smes/process() if(stat & BROKEN) @@ -372,7 +369,7 @@ target = text2num(target) . = TRUE if(.) - input_level = CLAMP(target, 0, input_level_max) + input_level = clamp(target, 0, input_level_max) log_smes(usr) if("output") var/target = params["target"] @@ -394,7 +391,7 @@ target = text2num(target) . = TRUE if(.) - output_level = CLAMP(target, 0, output_level_max) + output_level = clamp(target, 0, output_level_max) log_smes(usr) /obj/machinery/power/smes/proc/log_smes(mob/user) diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index d228a1e1f0..03f34b7f77 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -28,10 +28,8 @@ /obj/machinery/power/solar/Initialize(mapload, obj/item/solar_assembly/S) . = ..() panel = new() -#if DM_VERSION >= 513 panel.vis_flags = VIS_INHERIT_ID|VIS_INHERIT_ICON|VIS_INHERIT_PLANE vis_contents += panel -#endif panel.icon = icon panel.icon_state = "solar_panel" panel.layer = FLY_LAYER @@ -170,7 +168,7 @@ else //dot product of sun and panel -- Lambert's Cosine Law . = cos(azimuth_current - sun_azimuth) - . = CLAMP(round(., 0.01), 0, 1) + . = clamp(round(., 0.01), 0, 1) sunfrac = . /obj/machinery/power/solar/process() @@ -385,7 +383,7 @@ if(adjust) value = azimuth_rate + adjust if(value != null) - azimuth_rate = round(CLAMP(value, -2 * SSsun.base_rotation, 2 * SSsun.base_rotation), 0.01) + azimuth_rate = round(clamp(value, -2 * SSsun.base_rotation, 2 * SSsun.base_rotation), 0.01) return TRUE return FALSE if(action == "tracking") @@ -464,7 +462,7 @@ ///Rotates the panel to the passed angles /obj/machinery/power/solar_control/proc/set_panels(azimuth) - azimuth = CLAMP(round(azimuth, 0.01), -360, 719.99) + azimuth = clamp(round(azimuth, 0.01), -360, 719.99) if(azimuth >= 360) azimuth -= 360 if(azimuth < 0) diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index f91dc43990..28e9194eef 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -66,8 +66,6 @@ #define SUPERMATTER_COUNTDOWN_TIME 30 SECONDS -#define SUPERMATTER_INTEGRITY_MULT 1.3 //(loss of integrity / 10) ^ 1.3 - GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) /obj/machinery/power/supermatter_crystal @@ -160,8 +158,6 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) var/datum/looping_sound/supermatter/soundloop var/moveable = FALSE - var/min_damage = 0 - var/power_calc = 0 /obj/machinery/power/supermatter_crystal/Initialize() . = ..() @@ -253,7 +249,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) add_overlay(causality_field, TRUE) var/speaking = "[emergency_alert] The supermatter has reached critical integrity failure. Emergency causality destabilization field has been activated." - radio.talk_into(src, speaking, common_channel, language = get_default_language()) + radio.talk_into(src, speaking, common_channel, language = get_selected_language()) for(var/i in SUPERMATTER_COUNTDOWN_TIME to 0 step -10) if(damage < explosion_point) // Cutting it a bit close there engineers radio.talk_into(src, "[safe_alert] Failsafe has been disengaged.", common_channel) @@ -346,7 +342,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) else if(takes_damage) //causing damage - damage = max(damage + (max(CLAMP(removed.total_moles() / 200, 0.5, 1) * removed.temperature - ((T0C + HEAT_PENALTY_THRESHOLD)*dynamic_heat_resistance), 0) * mole_heat_penalty / 150 ) * DAMAGE_INCREASE_MULTIPLIER, 0) + damage = max(damage + (max(clamp(removed.total_moles() / 200, 0.5, 1) * removed.temperature - ((T0C + HEAT_PENALTY_THRESHOLD)*dynamic_heat_resistance), 0) * mole_heat_penalty / 150 ) * DAMAGE_INCREASE_MULTIPLIER, 0) damage = max(damage + (max(power - POWER_PENALTY_THRESHOLD, 0)/500) * DAMAGE_INCREASE_MULTIPLIER, 0) damage = max(damage + (max(combined_gas - MOLE_PENALTY_THRESHOLD, 0)/80) * DAMAGE_INCREASE_MULTIPLIER, 0) @@ -356,7 +352,6 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) //capping damage damage = min(damage_archived + (DAMAGE_HARDCAP * explosion_point),damage) - damage = max(min_damage, damage) //max integrity if(damage > damage_archived && prob(10)) playsound(get_turf(src), 'sound/effects/empulse.ogg', 50, 1) @@ -389,14 +384,14 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) mole_heat_penalty = max(combined_gas / MOLE_HEAT_PENALTY, 0.25) if (combined_gas > POWERLOSS_INHIBITION_MOLE_THRESHOLD && co2comp > POWERLOSS_INHIBITION_GAS_THRESHOLD) - powerloss_dynamic_scaling = CLAMP(powerloss_dynamic_scaling + CLAMP(co2comp - powerloss_dynamic_scaling, -0.02, 0.02), 0, 1) + powerloss_dynamic_scaling = clamp(powerloss_dynamic_scaling + clamp(co2comp - powerloss_dynamic_scaling, -0.02, 0.02), 0, 1) else - powerloss_dynamic_scaling = CLAMP(powerloss_dynamic_scaling - 0.05,0, 1) - powerloss_inhibitor = CLAMP(1-(powerloss_dynamic_scaling * CLAMP(combined_gas/POWERLOSS_INHIBITION_MOLE_BOOST_THRESHOLD,1 ,1.5)),0 ,1) + powerloss_dynamic_scaling = clamp(powerloss_dynamic_scaling - 0.05,0, 1) + powerloss_inhibitor = clamp(1-(powerloss_dynamic_scaling * clamp(combined_gas/POWERLOSS_INHIBITION_MOLE_BOOST_THRESHOLD,1 ,1.5)),0 ,1) if(matter_power) var/removed_matter = max(matter_power/MATTER_POWER_CONVERSION, 40) - power_calc = max(power_calc + removed_matter, 0) + power = max(power + removed_matter, 0) matter_power = max(matter_power - removed_matter, 0) var/temp_factor = 50 @@ -409,7 +404,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) temp_factor = 30 icon_state = base_icon_state - power_calc = max( (removed.temperature * temp_factor / T0C) * gasmix_power_ratio + power_calc, 0) //Total laser power plus an overload + power = max( (removed.temperature * temp_factor / T0C) * gasmix_power_ratio + power, 0) //Total laser power plus an overload if(prob(50)) radiation_pulse(src, power * (1 + (tritiumcomp * TRITIUM_RADIOACTIVITY_MODIFIER) + ((pluoxiumcomp * PLUOXIUM_RADIOACTIVITY_MODIFIER) * pluoxiumbonus) * (power_transmission_bonus/(10-(bzcomp * BZ_RADIOACTIVITY_MODIFIER))))) // Rad Modifiers BZ(500%), Tritium(300%), and Pluoxium(-200%) @@ -441,19 +436,15 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) for(var/mob/living/carbon/human/l in view(src, HALLUCINATION_RANGE(power))) // If they can see it without mesons on. Bad on them. if(!istype(l.glasses, /obj/item/clothing/glasses/meson)) var/D = sqrt(1 / max(1, get_dist(l, src))) - l.hallucination += power_calc * config_hallucination_power * D - l.hallucination = CLAMP(0, 200, l.hallucination) + l.hallucination += power * config_hallucination_power * D + l.hallucination = clamp(0, 200, l.hallucination) for(var/mob/living/l in range(src, round((power / 100) ** 0.25))) var/rads = (power / 10) * sqrt( 1 / max(get_dist(l, src),1) ) l.rad_act(rads) - power_calc -= ((power_calc/500)**3) * powerloss_inhibitor - if ((100-get_integrity()) < 75) - power = (power_calc * ((100 - (0.15*(100-get_integrity()) - 5)**2) / 100)) + power_calc*0.1 - else - power = power_calc * (((100-get_integrity())^((3*(100-get_integrity()))/1000) + 2*(100-get_integrity()))/100) //new and improved, more linear - //power = power_calc * ((((100-get_integrity())**1.3)-(2*(100-get_integrity())))/100) + power -= ((power/500)**3) * powerloss_inhibitor + if(power > POWER_PENALTY_THRESHOLD || damage > damage_penalty_point) if(power > POWER_PENALTY_THRESHOLD) @@ -466,7 +457,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) supermatter_zap(src, 5, min(power*2, 20000)) else if (damage > damage_penalty_point && prob(20)) playsound(src.loc, 'sound/weapons/emitter2.ogg', 100, 1, extrarange = 10) - supermatter_zap(src, 5, CLAMP(power*2, 4000, 20000)) + supermatter_zap(src, 5, clamp(power*2, 4000, 20000)) if(prob(15) && power > POWER_PENALTY_THRESHOLD) supermatter_pull(src, power/750) @@ -476,9 +467,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) supermatter_anomaly_gen(src, GRAVITATIONAL_ANOMALY, rand(5, 10)) if(power > SEVERE_POWER_PENALTY_THRESHOLD && prob(2) || prob(0.3) && power > POWER_PENALTY_THRESHOLD) supermatter_anomaly_gen(src, PYRO_ANOMALY, rand(5, 10)) - if (damage - damage_archived > 0) - min_damage += ((damage - damage_archived) / 9) * SUPERMATTER_INTEGRITY_MULT - if(damage > (min_damage < 200 ? min_damage : 0) + warning_point) // while the core is still damaged and it's still worth noting its status + if(damage > warning_point) // while the core is still damaged and it's still worth noting its status if((REALTIMEOFDAY - lastwarning) / 10 >= WARNING_DELAY) alarm() @@ -517,7 +506,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) if(!istype(Proj.firer, /obj/machinery/power/emitter)) investigate_log("has been hit by [Proj] fired by [key_name(Proj.firer)]", INVESTIGATE_SUPERMATTER) if(Proj.flag != "bullet") - power_calc += Proj.damage * config_bullet_energy + power += Proj.damage * config_bullet_energy if(!has_been_powered) investigate_log("has been powered for the first time.", INVESTIGATE_SUPERMATTER) message_admins("[src] has been powered for the first time [ADMIN_JMP(src)].") @@ -618,17 +607,6 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) to_chat(user, "You extract a sliver from \the [src]. \The [src] begins to react violently!") new /obj/item/nuke_core/supermatter_sliver(drop_location()) matter_power += 200 - if (istype(W, /obj/item/supermatterspray)) - var/obj/item/supermatterspray/S = W - if (S.usesleft > 0 && do_after(user, 60, target=src)) - min_damage = max(0,min_damage - 10) - to_chat(user, "You spray \the [src] with [S].") - playsound(user.loc,'sound/effects/spray2.ogg',50,1,-6) - S.usesleft-- - if (prob(10)) - to_chat(user, "Your hands slip and you drop [S] into \the [src]!") - Consume(S) - return else if(user.dropItemToGround(W)) user.visible_message("As [user] touches \the [src] with \a [W], silence fills the room...",\ "You touch \the [src] with \the [W], and everything suddenly goes silent.\n\The [W] flashes into dust as you flinch away from \the [src].",\ @@ -736,7 +714,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) /obj/machinery/power/supermatter_crystal/proc/supermatter_pull(turf/center, pull_range = 10) playsound(src.loc, 'sound/weapons/marauder.ogg', 100, 1, extrarange = 7) for(var/atom/P in orange(pull_range,center)) - if(ismovableatom(P)) + if(ismovable(P)) var/atom/movable/pulled_object = P if(ishuman(P)) var/mob/living/carbon/human/H = P diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index 1b08693d1c..e98fe3c88e 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -65,7 +65,7 @@ pixel_x = -32 pixel_y = -32 for (var/ball in orbiting_balls) - var/range = rand(1, CLAMP(orbiting_balls.len, 3, 7)) + var/range = rand(1, clamp(orbiting_balls.len, 3, 7)) tesla_zap(ball, range, TESLA_MINI_POWER/7*range) else energy = 0 // ensure we dont have miniballs of miniballs diff --git a/code/modules/procedural_mapping/mapGenerators/repair.dm b/code/modules/procedural_mapping/mapGenerators/repair.dm index 20ba10b0e1..d9380a40dd 100644 --- a/code/modules/procedural_mapping/mapGenerators/repair.dm +++ b/code/modules/procedural_mapping/mapGenerators/repair.dm @@ -26,8 +26,8 @@ var/z_offset = SSmapping.station_start var/list/bounds for (var/path in SSmapping.config.GetFullMapPaths()) - var/datum/parsed_map/parsed = load_map(file(path), 1, 1, z_offset, measureOnly = FALSE, no_changeturf = FALSE, cropMap=TRUE, x_lower = mother1.x_low, y_lower = mother1.y_low, x_upper = mother1.x_high, y_upper = mother1.y_high) - bounds = parsed?.bounds + var/datum/parsed_map/parsed = load_map(file(path), 1, 1, z_offset, orientation = SSmapping.config.orientation, cropMap = TRUE, x_lower = mother1.x_low, y_lower = mother1.y_low, x_upper = mother1.x_high, y_upper = mother1.y_high) + bounds = parsed.bounds z_offset += bounds[MAP_MAXZ] - bounds[MAP_MINZ] + 1 var/list/obj/machinery/atmospherics/atmos_machines = list() diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm index 58a5bfb497..461166ab0d 100644 --- a/code/modules/projectiles/ammunition/ballistic/pistol.dm +++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm @@ -1,28 +1,28 @@ // 10mm (Stechkin) /obj/item/ammo_casing/c10mm - name = ".10mm bullet casing" + name = "10mm bullet casing" desc = "A 10mm bullet casing." caliber = "10mm" projectile_type = /obj/item/projectile/bullet/c10mm /obj/item/ammo_casing/c10mm/ap - name = ".10mm armor-piercing bullet casing" + name = "10mm armor-piercing bullet casing" desc = "A 10mm armor-piercing bullet casing." projectile_type = /obj/item/projectile/bullet/c10mm_ap /obj/item/ammo_casing/c10mm/hp - name = ".10mm hollow-point bullet casing" + name = "10mm hollow-point bullet casing" desc = "A 10mm hollow-point bullet casing." projectile_type = /obj/item/projectile/bullet/c10mm_hp /obj/item/ammo_casing/c10mm/fire - name = ".10mm incendiary bullet casing" + name = "10mm incendiary bullet casing" desc = "A 10mm incendiary bullet casing." projectile_type = /obj/item/projectile/bullet/incendiary/c10mm /obj/item/ammo_casing/c10mm/soporific - name = ".10mm soporific bullet casing" + name = "10mm soporific bullet casing" desc = "A 10mm soporific bullet casing." projectile_type = /obj/item/projectile/bullet/c10mm/soporific diff --git a/code/modules/projectiles/ammunition/energy/special.dm b/code/modules/projectiles/ammunition/energy/special.dm index 39e3ca06ff..994b0f7f01 100644 --- a/code/modules/projectiles/ammunition/energy/special.dm +++ b/code/modules/projectiles/ammunition/energy/special.dm @@ -3,6 +3,10 @@ select_name = "ion" fire_sound = 'sound/weapons/ionrifle.ogg' +/obj/item/ammo_casing/energy/ion/hos + projectile_type = /obj/item/projectile/ion + e_cost = 200 + /obj/item/ammo_casing/energy/declone projectile_type = /obj/item/projectile/energy/declone select_name = "declone" diff --git a/code/modules/projectiles/ammunition/energy/stun.dm b/code/modules/projectiles/ammunition/energy/stun.dm index 2abc472138..f063672654 100644 --- a/code/modules/projectiles/ammunition/energy/stun.dm +++ b/code/modules/projectiles/ammunition/energy/stun.dm @@ -16,9 +16,6 @@ fire_sound = 'sound/weapons/gunshot.ogg' e_cost = 100 -/obj/item/ammo_casing/energy/electrode/hos - projectile_type = /obj/item/projectile/energy/electrode/security/hos - e_cost = 200 /obj/item/ammo_casing/energy/electrode/old e_cost = 1000 diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index 4f37cf3ba9..8ebddaa24f 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -112,18 +112,21 @@ update_icon() /obj/item/ammo_box/update_icon() - switch(multiple_sprites) - if(1) - icon_state = "[initial(icon_state)]-[stored_ammo.len]" - if(2) - icon_state = "[initial(icon_state)]-[stored_ammo.len ? "[max_ammo]" : "0"]" - desc = "[initial(desc)] There are [stored_ammo.len] shell\s left!" + . = ..() + desc = "[initial(desc)] There [stored_ammo.len == 1 ? "is" : "are"] [stored_ammo.len] shell\s left!" for (var/material in bullet_cost) var/material_amount = bullet_cost[material] material_amount = (material_amount*stored_ammo.len) + base_cost[material] custom_materials[material] = material_amount set_custom_materials(custom_materials)//make sure we setup the correct properties again +/obj/item/ammo_box/update_icon_state() + switch(multiple_sprites) + if(1) + icon_state = "[initial(icon_state)]-[stored_ammo.len]" + if(2) + icon_state = "[initial(icon_state)]-[stored_ammo.len ? "[max_ammo]" : "0"]" + //Behavior for magazines /obj/item/ammo_box/magazine/proc/ammo_count() return stored_ammo.len diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index 81ae026138..597c7203b4 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -121,3 +121,51 @@ icon_state = "foambox_riot" ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot custom_materials = list(/datum/material/iron = 50000) + +//Shotgun clips +/obj/item/ammo_box/shotgun + name = "stripper clip (shotgun shells)" + desc = "A stripper clip, designed to help with loading a shotgun slightly faster." + icon = 'icons/obj/ammo.dmi' + icon_state = "shotgunclip" + caliber = "shotgun" // slapped in to allow shell mix n match + ammo_type = /obj/item/ammo_casing/shotgun + max_ammo = 4 + var/pixeloffsetx = 4 + start_empty = TRUE + +/obj/item/ammo_box/shotgun/update_overlays() + . = ..() + if(stored_ammo.len) + var/offset = -4 + for(var/A in stored_ammo) + var/obj/item/ammo_casing/shotgun/C = A + offset += pixeloffsetx + var/mutable_appearance/shell_overlay = mutable_appearance(icon, "[initial(C.icon_state)]-clip") + shell_overlay.pixel_x += offset + shell_overlay.appearance_flags = RESET_COLOR + . += shell_overlay + +/obj/item/ammo_box/shotgun/loaded + start_empty = FALSE + +/obj/item/ammo_box/shotgun/loaded/rubbershot + ammo_type = /obj/item/ammo_casing/shotgun/rubbershot + +/obj/item/ammo_box/shotgun/loaded/buckshot + ammo_type = /obj/item/ammo_casing/shotgun/buckshot + +/obj/item/ammo_box/shotgun/loaded/beanbag + ammo_type = /obj/item/ammo_casing/shotgun/beanbag + +/obj/item/ammo_box/shotgun/loaded/stunslug + ammo_type = /obj/item/ammo_casing/shotgun/stunslug + +/obj/item/ammo_box/shotgun/loaded/techshell + ammo_type = /obj/item/ammo_casing/shotgun/techshell + +/obj/item/ammo_box/shotgun/loaded/incendiary + ammo_type = /obj/item/ammo_casing/shotgun/incendiary + +/obj/item/ammo_box/shotgun/loaded/dart + ammo_type = /obj/item/ammo_casing/shotgun/dart diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index b43ac3057a..afe2b9ca3e 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -331,8 +331,7 @@ /obj/item/gun/ballistic/revolver/doublebarrel/improvised/attackby(obj/item/A, mob/user, params) ..() if(istype(A, /obj/item/stack/cable_coil) && !sawn_off) - var/obj/item/stack/cable_coil/C = A - if(C.use(10)) + if(A.use_tool(src, user, 0, 10, max_level = JOB_SKILL_BASIC)) slot_flags = ITEM_SLOT_BACK to_chat(user, "You tie the lengths of cable to the shotgun, making a sling.") slung = TRUE diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 7fb17ced57..4894a8d8eb 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -41,9 +41,12 @@ to_chat(user, "You're too exhausted for that.")//CIT CHANGE - ditto return//CIT CHANGE - ditto pump(user, TRUE) - recentpump = world.time + 10 - if(istype(user))//CIT CHANGE - makes pumping shotguns cost a lil bit of stamina. - user.adjustStaminaLossBuffered(2) //CIT CHANGE - DITTO. make this scale inversely to the strength stat when stats/skills are added + if(HAS_TRAIT(user, TRAIT_FAST_PUMP)) + recentpump = world.time + 2 + else + recentpump = world.time + 10 + if(istype(user))//CIT CHANGE - makes pumping shotguns cost a lil bit of stamina. + user.adjustStaminaLossBuffered(2) //CIT CHANGE - DITTO. make this scale inversely to the strength stat when stats/skills are added return /obj/item/gun/ballistic/shotgun/blow_up(mob/user) @@ -90,7 +93,7 @@ fire_delay = 7 mag_type = /obj/item/ammo_box/magazine/internal/shot/riot sawn_desc = "Come with me if you want to live." - unique_reskin = list("Tatical" = "riotshotgun", + unique_reskin = list("Tactical" = "riotshotgun", "Wood Stock" = "wood_riotshotgun" ) @@ -212,7 +215,7 @@ fire_delay = 5 mag_type = /obj/item/ammo_box/magazine/internal/shot/com w_class = WEIGHT_CLASS_HUGE - unique_reskin = list("Tatical" = "cshotgun", + unique_reskin = list("Tactical" = "cshotgun", "Slick" = "cshotgun_slick" ) diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index e0c84e7047..ff3f127817 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -232,7 +232,7 @@ ..() if(!automatic_charge_overlays) return - var/ratio = can_shoot() ? CEILING(CLAMP(cell.charge / cell.maxcharge, 0, 1) * charge_sections, 1) : 0 + var/ratio = can_shoot() ? CEILING(clamp(cell.charge / cell.maxcharge, 0, 1) * charge_sections, 1) : 0 // Sets the ratio to 0 if the gun doesn't have enough charge to fire, or if it's power cell is removed. // TG issues #5361 & #47908 if(ratio == old_ratio && !force_update) diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index efe107a3f8..71ee8bc5ef 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -52,13 +52,16 @@ /obj/item/gun/energy/e_gun/hos name = "\improper X-01 MultiPhase Energy Gun" - desc = "This is an expensive, modern recreation of an antique laser gun. This gun has several unique firemodes, but lacks the ability to recharge over time." + desc = "This is an expensive, modern recreation of an antique laser gun. This gun has several unique firemodes, but lacks the ability to recharge over time in exchange for inbuilt advanced firearm EMP shielding." icon_state = "hoslaser" force = 10 - ammo_type = list(/obj/item/ammo_casing/energy/electrode/hos, /obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser/hos) + ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser/hos, /obj/item/ammo_casing/energy/ion/hos) ammo_x_offset = 4 resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF +/obj/item/gun/energy/e_gun/hos/emp_act(severity) + return + /obj/item/gun/energy/e_gun/dragnet name = "\improper DRAGnet" desc = "The \"Dynamic Rapid-Apprehension of the Guilty\" net is a revolution in law enforcement technology." diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm index f230dc7fea..f8ddcb5aae 100644 --- a/code/modules/projectiles/guns/misc/beam_rifle.dm +++ b/code/modules/projectiles/guns/misc/beam_rifle.dm @@ -318,7 +318,7 @@ AC.sync_stats() /obj/item/gun/energy/beam_rifle/proc/delay_penalty(amount) - aiming_time_left = CLAMP(aiming_time_left + amount, 0, aiming_time) + aiming_time_left = clamp(aiming_time_left + amount, 0, aiming_time) /obj/item/ammo_casing/energy/beam_rifle name = "particle acceleration lens" @@ -369,11 +369,11 @@ HS_BB.stun = projectile_stun HS_BB.impact_structure_damage = impact_structure_damage HS_BB.aoe_mob_damage = aoe_mob_damage - HS_BB.aoe_mob_range = CLAMP(aoe_mob_range, 0, 15) //Badmin safety lock + HS_BB.aoe_mob_range = clamp(aoe_mob_range, 0, 15) //Badmin safety lock HS_BB.aoe_fire_chance = aoe_fire_chance HS_BB.aoe_fire_range = aoe_fire_range HS_BB.aoe_structure_damage = aoe_structure_damage - HS_BB.aoe_structure_range = CLAMP(aoe_structure_range, 0, 15) //Badmin safety lock + HS_BB.aoe_structure_range = clamp(aoe_structure_range, 0, 15) //Badmin safety lock HS_BB.wall_devastate = wall_devastate HS_BB.wall_pierce_amount = wall_pierce_amount HS_BB.structure_pierce_amount = structure_piercing @@ -465,7 +465,7 @@ else target.ex_act(EXPLODE_HEAVY) return TRUE - if(ismovableatom(target)) + if(ismovable(target)) var/atom/movable/AM = target if(AM.density && !AM.CanPass(src, get_turf(target)) && !ismob(AM)) if(structure_pierce < structure_pierce_amount) diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm index e754a9c070..8a1db49762 100644 --- a/code/modules/projectiles/pins.dm +++ b/code/modules/projectiles/pins.dm @@ -241,3 +241,87 @@ to_chat(user, "The pin beeps, refusing to fire.") return FALSE return TRUE + +/obj/item/firing_pin/security_level + name = "security level firing pin" + desc = "A sophisticated firing pin that authorizes operation based on its settings and current security level." + icon_state = "firing_pin_sec_level" + var/min_sec_level = SEC_LEVEL_GREEN + var/max_sec_level = SEC_LEVEL_DELTA + var/only_lethals = FALSE + var/can_toggle = TRUE + +/obj/item/firing_pin/security_level/Initialize() + . = ..() + fail_message = "INVALID SECURITY LEVEL. CURRENT: [uppertext(NUM2SECLEVEL(GLOB.security_level))]. \ + MIN: [uppertext(NUM2SECLEVEL(min_sec_level))]. MAX: [uppertext(NUM2SECLEVEL(max_sec_level))]. \ + ONLY LETHALS: [only_lethals ? "YES" : "NO"]." + update_icon() + +/obj/item/firing_pin/security_level/examine(mob/user) + . = ..() + var/lethal = only_lethals ? "only lethal " : "" + if(min_sec_level != max_sec_level) + . += "It's currently set to disallow [lethal]operation when the security level isn't between [NUM2SECLEVEL(min_sec_level)] and [NUM2SECLEVEL(max_sec_level)]." + else + . += "It's currently set to disallow [lethal]operation when the security level isn't [NUM2SECLEVEL(min_sec_level)]." + if(can_toggle) + . += "You can use a multitool to modify its settings." + +/obj/item/firing_pin/security_level/multitool_act(mob/living/user, obj/item/I) + . = TRUE + if(!can_toggle || !user.canUseTopic(src, BE_CLOSE)) + return + var/selection = alert(user, "Which setting would you want to modify?", "Firing Pin Settings", "Minimum Level Setting", "Maximum Level Setting", "Lethals Only Toggle") + if(QDELETED(src) || QDELETED(user) || !user.canUseTopic(src, BE_CLOSE)) + return + var/static/list/till_designs_pr_isnt_merged = list("green", "blue", "amber", "red", "delta") + switch(selection) + if("Minimum Level Setting") + var/input = input(user, "Input the new minimum level setting.", "Firing Pin Settings", NUM2SECLEVEL(min_sec_level)) as null|anything in till_designs_pr_isnt_merged + if(!input) + return + min_sec_level = till_designs_pr_isnt_merged.Find(input) - 1 + if(min_sec_level > max_sec_level) + max_sec_level = SEC_LEVEL_DELTA + if("Maximum Level Setting") + var/input = input(user, "Input the new maximum level setting.", "Firing Pin Settings", NUM2SECLEVEL(max_sec_level)) as null|anything in till_designs_pr_isnt_merged + if(!input) + return + max_sec_level = till_designs_pr_isnt_merged.Find(input) - 1 + if(max_sec_level < max_sec_level) + min_sec_level = SEC_LEVEL_GREEN + if("Lethals Only Toggle") + only_lethals = !only_lethals + + fail_message = "INVALID SECURITY LEVEL. CURRENT: [uppertext(NUM2SECLEVEL(GLOB.security_level))]. \ + MIN: [uppertext(NUM2SECLEVEL(min_sec_level))]. MAX: [uppertext(NUM2SECLEVEL(max_sec_level))]. \ + ONLY LETHALS: [only_lethals ? "YES" : "NO"]." + update_icon() + +/obj/item/firing_pin/security_level/update_overlays() + . = ..() + var/offset = 0 + for(var/level in list(min_sec_level, max_sec_level)) + var/mutable_appearance/overlay = mutable_appearance(icon, "pin_sec_level_overlay") + overlay.pixel_x += offset + offset += 4 + switch(level) + if(SEC_LEVEL_GREEN) + overlay.color = "#b2ff59" //light green + if(SEC_LEVEL_BLUE) + overlay.color = "#99ccff" //light blue + if(SEC_LEVEL_AMBER) + overlay.color = "#ffae42" //light yellow/orange + if(SEC_LEVEL_RED) + overlay.color = "#ff3f34" //light red + else + overlay.color = "#fe59c2" //neon fuchsia + . += overlay + var/mutable_appearance/overlay = mutable_appearance(icon, "pin_sec_level_overlay") + overlay.pixel_x += offset + overlay.color = only_lethals ? "#b2ff59" : "#ff3f34" + . += overlay + +/obj/item/firing_pin/security_level/pin_auth(mob/living/user) + return (only_lethals && !(gun.chambered?.harmful)) || ISINRANGE(GLOB.security_level, min_sec_level, max_sec_level) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 6094a7aa46..71aa78da4b 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -33,12 +33,13 @@ var/fired = FALSE //Have we been fired yet var/paused = FALSE //for suspending the projectile midair var/last_projectile_move = 0 - var/last_process = 0 var/time_offset = 0 var/datum/point/vector/trajectory var/trajectory_ignore_forcemove = FALSE //instructs forceMove to NOT reset our trajectory to the new location! var/speed = 0.8 //Amount of deciseconds it takes for projectile to travel + /// "leftover" ticks and stuff yeah. hey when are we rewriting projectiles for the eighth time to do something smarter like incrementing x pixels until it meets a goal instead of for(var/i in 1 to required_moves)? + var/tick_moves_leftover = 0 var/Angle = 0 var/original_angle = 0 //Angle at firing var/nondirectional_sprite = FALSE //Set TRUE to prevent projectiles from having their sprites rotated based on firing angle @@ -224,7 +225,7 @@ /obj/item/projectile/proc/vol_by_damage() if(src.damage) - return CLAMP((src.damage) * 0.67, 30, 100)// Multiply projectile damage by 0.67, then CLAMP the value between 30 and 100 + return clamp((src.damage) * 0.67, 30, 100)// Multiply projectile damage by 0.67, then CLAMP the value between 30 and 100 else return 50 //if the projectile doesn't do damage, play its hitsound at 50% volume @@ -255,7 +256,7 @@ def_zone = ran_zone(def_zone, max(100-(7*distance), 5) * zone_accuracy_factor) //Lower accurancy/longer range tradeoff. 7 is a balanced number to use. if(isturf(A) && hitsound_wall) - var/volume = CLAMP(vol_by_damage() + 20, 0, 100) + var/volume = clamp(vol_by_damage() + 20, 0, 100) if(suppressed) volume = 5 playsound(loc, hitsound_wall, volume, 1, -1) @@ -315,6 +316,8 @@ objs += O var/obj/O = safepick(objs) if(O) + if(length(O.buckled_mobs)) + return pick(O.buckled_mobs) return O //Nothing else is here that we can hit, hit the turf if we haven't. if(!(T in permutated) && can_hit_target(T, permutated, T == original, TRUE)) @@ -349,26 +352,20 @@ /obj/item/projectile/Process_Spacemove(movement_dir = 0) return TRUE //Bullets don't drift in space -/obj/item/projectile/process() - last_process = world.time +/obj/item/projectile/process(wait) if(!loc || !fired || !trajectory) fired = FALSE return PROCESS_KILL if(paused || !isturf(loc)) - last_projectile_move += world.time - last_process //Compensates for pausing, so it doesn't become a hitscan projectile when unpaused from charged up ticks. return - var/elapsed_time_deciseconds = (world.time - last_projectile_move) + time_offset - time_offset = 0 - var/required_moves = speed > 0? FLOOR(elapsed_time_deciseconds / speed, 1) : MOVES_HITSCAN //Would be better if a 0 speed made hitscan but everyone hates those so I can't make it a universal system :< - if(required_moves == MOVES_HITSCAN) - required_moves = SSprojectiles.global_max_tick_moves - else - if(required_moves > SSprojectiles.global_max_tick_moves) - var/overrun = required_moves - SSprojectiles.global_max_tick_moves - required_moves = SSprojectiles.global_max_tick_moves - time_offset += overrun * speed - time_offset += MODULUS(elapsed_time_deciseconds, speed) - + var/ds = (SSprojectiles.flags & SS_TICKER)? (wait * world.tick_lag) : wait + var/required_moves = ds / speed + var/leftover = MODULUS(required_moves, 1) + tick_moves_leftover += leftover + required_moves = round(required_moves) + if(tick_moves_leftover > 1) + required_moves += round(tick_moves_leftover) + tick_moves_leftover = MODULUS(tick_moves_leftover, 1) for(var/i in 1 to required_moves) pixel_move(1, FALSE) @@ -392,7 +389,7 @@ stack_trace("WARNING: Projectile [type] deleted due to being unable to resolve a target after angle was null!") qdel(src) return - var/turf/target = locate(CLAMP(starting + xo, 1, world.maxx), CLAMP(starting + yo, 1, world.maxy), starting.z) + var/turf/target = locate(clamp(starting + xo, 1, world.maxx), clamp(starting + yo, 1, world.maxy), starting.z) setAngle(Get_Angle(src, target)) original_angle = Angle if(!nondirectional_sprite) @@ -525,10 +522,10 @@ if(!homing_target) return FALSE var/datum/point/PT = RETURN_PRECISE_POINT(homing_target) - PT.x += CLAMP(homing_offset_x, 1, world.maxx) - PT.y += CLAMP(homing_offset_y, 1, world.maxy) + PT.x += clamp(homing_offset_x, 1, world.maxx) + PT.y += clamp(homing_offset_y, 1, world.maxy) var/angle = closer_angle_difference(Angle, angle_between_points(RETURN_PRECISE_POINT(src), PT)) - setAngle(Angle + CLAMP(angle, -homing_turn_speed, homing_turn_speed)) + setAngle(Angle + clamp(angle, -homing_turn_speed, homing_turn_speed)) /obj/item/projectile/proc/set_homing_target(atom/A) if(!A || (!isturf(A) && !isturf(A.loc))) @@ -622,7 +619,7 @@ var/ox = round(screenviewX/2) - user.client.pixel_x //"origin" x var/oy = round(screenviewY/2) - user.client.pixel_y //"origin" y - angle = ATAN2(y - oy, x - ox) + angle = arctan(y - oy, x - ox) return list(angle, p_x, p_y) /obj/item/projectile/Crossed(atom/movable/AM) //A mob moving on a tile with a projectile is hit by it. diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm index 06d94414be..25809cc7ca 100644 --- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm +++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm @@ -60,11 +60,11 @@ if(R.overdose_threshold == 0 || emptrig == TRUE) //Is there a possible OD? M.reagents.add_reagent(R.type, R.volume) else - var/transVol = CLAMP(R.volume, 0, (R.overdose_threshold - M.reagents.get_reagent_amount(R.type)) -1) + var/transVol = clamp(R.volume, 0, (R.overdose_threshold - M.reagents.get_reagent_amount(R.type)) -1) M.reagents.add_reagent(R.type, transVol) else if(!R.overdose_threshold == 0) - var/transVol = CLAMP(R.volume, 0, R.overdose_threshold-1) + var/transVol = clamp(R.volume, 0, R.overdose_threshold-1) M.reagents.add_reagent(R.type, transVol) else M.reagents.add_reagent(R.type, R.volume) diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index 4411334883..ff95b65a49 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -51,7 +51,7 @@ /obj/item/projectile/bullet/shotgun_meteorslug/on_hit(atom/target, blocked = FALSE) . = ..() - if(ismovableatom(target)) + if(ismovable(target)) var/atom/movable/M = target var/atom/throw_target = get_edge_target_turf(M, get_dir(src, get_step_away(M, src))) M.safe_throw_at(throw_target, 3, 2) diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 5f2edd5206..ff6340bcdb 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -182,18 +182,14 @@ var/path = pick(/mob/living/simple_animal/hostile/carp, /mob/living/simple_animal/hostile/bear, /mob/living/simple_animal/hostile/mushroom, - /mob/living/simple_animal/hostile/statue, /mob/living/simple_animal/hostile/retaliate/bat, /mob/living/simple_animal/hostile/retaliate/goat, /mob/living/simple_animal/hostile/killertomato, /mob/living/simple_animal/hostile/poison/giant_spider, /mob/living/simple_animal/hostile/poison/giant_spider/hunter, /mob/living/simple_animal/hostile/blob/blobbernaut/independent, - /mob/living/simple_animal/hostile/carp/ranged, - /mob/living/simple_animal/hostile/carp/ranged/chaos, /mob/living/simple_animal/hostile/asteroid/basilisk/watcher, /mob/living/simple_animal/hostile/asteroid/goliath/beast, - /mob/living/simple_animal/hostile/headcrab, /mob/living/simple_animal/hostile/morph, /mob/living/simple_animal/hostile/stickman, /mob/living/simple_animal/hostile/stickman/dog, @@ -232,7 +228,6 @@ if(!new_mob) return - new_mob.grant_language(/datum/language/common) // Some forms can still wear some items for(var/obj/item/W in contents) diff --git a/code/modules/projectiles/projectile/special/ion.dm b/code/modules/projectiles/projectile/special/ion.dm index ae0888d3df..9755269031 100644 --- a/code/modules/projectiles/projectile/special/ion.dm +++ b/code/modules/projectiles/projectile/special/ion.dm @@ -3,7 +3,7 @@ icon_state = "ion" damage = 0 damage_type = BURN - nodamage = 1 + nodamage = TRUE flag = "energy" impact_effect_type = /obj/effect/temp_visual/impact_effect/ion var/emp_radius = 1 @@ -14,4 +14,4 @@ return BULLET_ACT_HIT /obj/item/projectile/ion/weak - emp_radius = 0 + emp_radius = 0 \ No newline at end of file diff --git a/code/modules/projectiles/projectile/special/neurotoxin.dm b/code/modules/projectiles/projectile/special/neurotoxin.dm index a72d078384..2f6a55a7d0 100644 --- a/code/modules/projectiles/projectile/special/neurotoxin.dm +++ b/code/modules/projectiles/projectile/special/neurotoxin.dm @@ -1,8 +1,9 @@ /obj/item/projectile/bullet/neurotoxin name = "neurotoxin spit" icon_state = "neurotoxin" - damage = 5 + damage = 15 damage_type = TOX + var/stagger_duration = 8 SECONDS /obj/item/projectile/bullet/neurotoxin/on_hit(atom/target, blocked = FALSE) if(isalien(target)) @@ -10,5 +11,6 @@ nodamage = TRUE else if(iscarbon(target)) var/mob/living/L = target - L.DefaultCombatKnockdown(100, TRUE, FALSE, 30, 25) + L.KnockToFloor(TRUE) + L.Stagger(stagger_duration) return ..() diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 89dd229407..f4c06f39cc 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -728,7 +728,7 @@ return //Make sure things are limited, but superacids/bases can push forward the reaction - pH = CLAMP(pH, 0, 14) + pH = clamp(pH, 0, 14) //return said amount to compare for next step. return (reactedVol) @@ -849,7 +849,7 @@ /datum/reagents/proc/adjust_thermal_energy(J, min_temp = 2.7, max_temp = 1000) var/S = specific_heat() - chem_temp = CLAMP(chem_temp + (J / (S * total_volume)), min_temp, max_temp) + chem_temp = clamp(chem_temp + (J / (S * total_volume)), min_temp, max_temp) if(istype(my_atom, /obj/item/reagent_containers)) var/obj/item/reagent_containers/RC = my_atom RC.temp_check() @@ -877,7 +877,7 @@ for (var/datum/reagent/reagentgas in reagent_list) R.add_reagent(reagentgas, amount/5) remove_reagent(reagentgas, amount/5) - s.set_up(R, CLAMP(amount/10, 0, 2), T) + s.set_up(R, clamp(amount/10, 0, 2), T) s.start() return FALSE @@ -995,7 +995,7 @@ RC.pH_check()//checks beaker resilience) //clamp the removal amount to be between current reagent amount //and zero, to prevent removing more than the holder has stored - amount = CLAMP(amount, 0, R.volume) + amount = clamp(amount, 0, R.volume) R.volume -= amount update_total() if(!safety)//So it does not handle reactions when it need not to diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index e08b526911..6da592a56c 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -574,9 +574,7 @@ /datum/reagent/consumable/ethanol/alexander, /datum/reagent/consumable/clownstears, /datum/reagent/toxin/minttoxin, - /datum/reagent/consumable/ethanol/atomicbomb, - /datum/reagent/drug/aphrodisiac, - /datum/reagent/drug/aphrodisiacplus + /datum/reagent/consumable/ethanol/atomicbomb ) /obj/machinery/chem_dispenser/drinks/beer/fullupgrade //fully ugpraded stock parts, emagged diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index f0d6bab381..dfc31279eb 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -151,7 +151,7 @@ target = text2num(target) . = TRUE if(.) - target_temperature = CLAMP(target, 0, 1000) + target_temperature = clamp(target, 0, 1000) if("eject") on = FALSE replace_beaker(usr) diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 5eb5b94de9..a85ac8b085 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -51,7 +51,7 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) var/inverse_chem // What chem is metabolised when purity is below inverse_chem_val, this shouldn't be made, but if it does, well, I guess I'll know about it. var/metabolizing = FALSE var/chemical_flags // See fermi/readme.dm REAGENT_DEAD_PROCESS, REAGENT_DONOTSPLIT, REAGENT_ONLYINVERSE, REAGENT_ONMOBMERGE, REAGENT_INVISIBLE, REAGENT_FORCEONNEW, REAGENT_SNEAKYNAME - var/value = 0 //How much does it sell for in cargo? + var/value = REAGENT_VALUE_NONE //How much does it sell for in cargo? /datum/reagent/Destroy() // This should only be called by the holder, so it's already handled clearing its references . = ..() @@ -62,7 +62,7 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) return 0 if(method == VAPOR) //smoke, foam, spray if(M.reagents) - var/modifier = CLAMP((1 - touch_protection), 0, 1) + var/modifier = clamp((1 - touch_protection), 0, 1) var/amount = round(reac_volume*modifier, 0.1) if(amount >= 0.5) M.reagents.add_reagent(type, amount) diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index abe5c7de46..464557f617 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -14,6 +14,7 @@ taste_description = "alcohol" var/boozepwr = 65 //Higher numbers equal higher hardness, higher hardness equals more intense alcohol poisoning pH = 7.33 + value = REAGENT_VALUE_VERY_COMMON //don't bother tweaking all drinks values, way too many can easily be done roundstart or with an upgraded dispenser. /* Boozepwr Chart @@ -88,7 +89,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "glass of beer" glass_desc = "A freezing pint of beer." pH = 4 - value = 0.1 /datum/reagent/consumable/ethanol/beer/light name = "Light Beer" @@ -98,7 +98,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "glass of light beer" glass_desc = "A freezing pint of watery light beer." pH = 5 - value = 0.3 /datum/reagent/consumable/ethanol/beer/green name = "Green Beer" @@ -109,7 +108,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "glass of green beer" glass_desc = "A freezing pint of green beer. Festive." pH = 6 - value = 0.3 /datum/reagent/consumable/ethanol/beer/green/on_mob_life(mob/living/carbon/M) if(M.color != color) @@ -129,7 +127,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "DAMN, THIS THING LOOKS ROBUST!" shot_glass_icon_state = "shotglasscream" pH = 6 - value = 0.1 /datum/reagent/consumable/ethanol/kahlua/on_mob_life(mob/living/carbon/M) @@ -152,7 +149,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "The silky, smokey whiskey goodness inside the glass makes the drink look very classy." shot_glass_icon_state = "shotglassbrown" pH = 4.5 - value = 0.1 /datum/reagent/consumable/ethanol/thirteenloko name = "Thirteen Loko" @@ -167,7 +163,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "thirteen_loko_glass" glass_name = "glass of Thirteen Loko" glass_desc = "This is a glass of Thirteen Loko, it appears to be of the highest quality. The drink, not the glass." - value = 0.3 /datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(mob/living/carbon/M) M.drowsyness = max(0,M.drowsyness-7) @@ -229,7 +224,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "The glass contain wodka. Xynta." shot_glass_icon_state = "shotglassclear" pH = 8.1 - value = 0.1 /datum/reagent/consumable/ethanol/vodka/on_mob_life(mob/living/carbon/M) M.radiation = max(M.radiation-2,0) @@ -245,7 +239,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "glass_brown" glass_name = "glass of bilk" glass_desc = "A brew of milk and beer. For those alcoholics who fear osteoporosis." - value = 0.5 /datum/reagent/consumable/ethanol/bilk/on_mob_life(mob/living/carbon/M) if(M.getBruteLoss() && prob(10)) @@ -264,7 +257,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "Three Mile Island Ice Tea" glass_desc = "A glass of this is sure to prevent a meltdown." pH = 3.5 - value = 1 + value = REAGENT_VALUE_RARE /datum/reagent/consumable/ethanol/threemileisland/on_mob_life(mob/living/carbon/M) M.set_drugginess(50) @@ -280,7 +273,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "glass of gin" glass_desc = "A crystal clear glass of Griffeater gin." pH = 6.9 - value = 0.1 /datum/reagent/consumable/ethanol/rum name = "Rum" @@ -293,7 +285,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "Now you want to Pray for a pirate suit, don't you?" shot_glass_icon_state = "shotglassbrown" pH = 6.5 - value = 0.1 /datum/reagent/consumable/ethanol/tequila name = "Tequila" @@ -306,7 +297,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "Now all that's missing is the weird colored shades!" shot_glass_icon_state = "shotglassgold" pH = 4 - value = 0.1 /datum/reagent/consumable/ethanol/vermouth name = "Vermouth" @@ -319,7 +309,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "You wonder why you're even drinking this straight." shot_glass_icon_state = "shotglassclear" pH = 3.25 - value = 0.1 /datum/reagent/consumable/ethanol/wine name = "Wine" @@ -332,7 +321,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "A very classy looking drink." shot_glass_icon_state = "shotglassred" pH = 3.45 - value = 0.1 /datum/reagent/consumable/ethanol/lizardwine name = "Lizard wine" @@ -342,7 +330,7 @@ All effects don't start immediately, but rather get worse over time; the rate is quality = DRINK_FANTASTIC taste_description = "scaley sweetness" pH = 3 - value = 2 + value = REAGENT_VALUE_VERY_RARE /datum/reagent/consumable/ethanol/grappa name = "Grappa" @@ -354,7 +342,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "glass of grappa" glass_desc = "A fine drink originally made to prevent waste by using the leftovers from winemaking." pH = 3.5 - value = 0.1 /datum/reagent/consumable/ethanol/cognac name = "Cognac" @@ -367,7 +354,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "Damn, you feel like some kind of French aristocrat just by holding this." shot_glass_icon_state = "shotglassbrown" pH = 3.5 - value = 0.1 /datum/reagent/consumable/ethanol/absinthe name = "Absinthe" @@ -379,7 +365,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "glass of absinthe" glass_desc = "It's as strong as it smells." shot_glass_icon_state = "shotglassgreen" - value = 0.1 /datum/reagent/consumable/ethanol/absinthe/on_mob_life(mob/living/carbon/M) if(prob(10) && !HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE)) @@ -395,6 +380,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "glass_brown2" glass_name = "Hooch" glass_desc = "You've really hit rock bottom now... your liver packed its bags and left last night." + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/ethanol/hooch/on_mob_life(mob/living/carbon/M) if(M.mind && M.mind.assigned_role == "Assistant") @@ -412,7 +398,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "glass of ale" glass_desc = "A freezing pint of delicious Ale." pH = 4.5 - value = 0.1 /datum/reagent/consumable/ethanol/goldschlager name = "Goldschlager" @@ -425,7 +410,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "glass of goldschlager" glass_desc = "100% proof that teen girls will drink anything with gold in it." shot_glass_icon_state = "shotglassgold" - value = 0.5 + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/ethanol/patron name = "Patron" @@ -439,7 +424,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "Drinking patron in the bar, with all the subpar ladies." shot_glass_icon_state = "shotglassclear" pH = 4.5 - value = 0.1 + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/ethanol/gintonic name = "Gin and Tonic" @@ -452,7 +437,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "Gin and Tonic" glass_desc = "A mild but still great cocktail. Drink up, like a true Englishman." pH = 3 - value = 0.5 /datum/reagent/consumable/ethanol/rum_coke name = "Rum and Coke" @@ -465,7 +449,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "Rum and Coke" glass_desc = "The classic go-to of space-fratboys." pH = 4 - value = 1 /datum/reagent/consumable/ethanol/cuba_libre name = "Cuba Libre" @@ -477,8 +460,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "cubalibreglass" glass_name = "Cuba Libre" glass_desc = "A classic mix of rum, cola, and lime. A favorite of revolutionaries everywhere!" - value = 0.5 - /datum/reagent/consumable/ethanol/cuba_libre/on_mob_life(mob/living/carbon/M) if(M.mind && M.mind.has_antag_datum(/datum/antagonist/rev)) //Cuba Libre, the traditional drink of revolutions! Heals revolutionaries. @@ -499,7 +480,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "whiskeycolaglass" glass_name = "whiskey cola" glass_desc = "An innocent-looking mixture of cola and Whiskey. Delicious." - value = 0.5 /datum/reagent/consumable/ethanol/martini name = "Classic Martini" @@ -511,7 +491,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "martiniglass" glass_name = "Classic Martini" glass_desc = "Damn, the bartender even stirred it, not shook it." - value = 1 /datum/reagent/consumable/ethanol/vodkamartini name = "Vodka Martini" @@ -523,7 +502,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "martiniglass" glass_name = "Vodka martini" glass_desc ="A bastardisation of the classic martini. Still great." - value = 1 /datum/reagent/consumable/ethanol/white_russian @@ -536,7 +514,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "whiterussianglass" glass_name = "White Russian" glass_desc = "A very nice looking drink. But that's just, like, your opinion, man." - value = 1 /datum/reagent/consumable/ethanol/screwdrivercocktail name = "Screwdriver" @@ -548,7 +525,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "screwdriverglass" glass_name = "Screwdriver" glass_desc = "A simple, yet superb mixture of Vodka and orange juice. Just the thing for the tired engineer." - value = 1 /datum/reagent/consumable/ethanol/screwdrivercocktail/on_mob_life(mob/living/carbon/M) if(M.mind && (M.mind.assigned_role in list("Station Engineer", "Atmospheric Technician", "Chief Engineer"))) //Engineers lose radiation poisoning at a massive rate. @@ -564,7 +540,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "booger" glass_name = "Booger" glass_desc = "Ewww..." - value = 0.3 + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/ethanol/bloody_mary name = "Bloody Mary" @@ -576,7 +552,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "bloodymaryglass" glass_name = "Bloody Mary" glass_desc = "Tomato juice, mixed with Vodka and a lil' bit of lime. Tastes like liquid murder." - value = 1.3 /datum/reagent/consumable/ethanol/bloody_mary/on_mob_life(mob/living/carbon/C) if(AmBloodsucker(C)) @@ -595,7 +570,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "bravebullglass" glass_name = "Brave Bull" glass_desc = "Tequila and Coffee liqueur, brought together in a mouthwatering mixture. Drink up." - value = 2 var/tough_text /datum/reagent/consumable/ethanol/brave_bull/on_mob_metabolize(mob/living/M) @@ -619,7 +593,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "tequilasunriseglass" glass_name = "tequila Sunrise" glass_desc = "Oh great, now you feel nostalgic about sunrises back on Terra..." - value = 2 var/obj/effect/light_holder /datum/reagent/consumable/ethanol/tequila_sunrise/on_mob_metabolize(mob/living/M) @@ -649,7 +622,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "Toxins Special" glass_desc = "Whoah, this thing is on FIRE!" shot_glass_icon_state = "toxinsspecialglass" - value = 2 + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/ethanol/toxins_special/on_mob_life(var/mob/living/M) M.adjust_bodytemperature(15 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL + 20) //310.15 is the normal bodytemp. @@ -668,7 +641,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "Heavy, hot and strong. Just like the Iron fist of the LAW." pH = 2 overdose_threshold = 40 - value = 3 var/datum/brain_trauma/special/beepsky/B /datum/reagent/consumable/ethanol/beepsky_smash/on_mob_metabolize(mob/living/carbon/M) @@ -709,7 +681,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "irishcreamglass" glass_name = "Irish Cream" glass_desc = "It's cream, mixed with whiskey. What else would you expect from the Irish?" - value = 1 /datum/reagent/consumable/ethanol/manly_dorf name = "The Manly Dorf" @@ -721,14 +692,13 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "manlydorfglass" glass_name = "The Manly Dorf" glass_desc = "A manly concoction made from Ale and Beer. Intended for true men only." - value = 2 var/dorf_mode /datum/reagent/consumable/ethanol/manly_dorf/on_mob_metabolize(mob/living/M) var/real_dorf = isdwarf(M) //_species(H, /datum/species/dwarf) if(ishuman(M)) var/mob/living/carbon/human/H = M - if(H.dna.check_mutation(DWARFISM) || HAS_TRAIT(H, TRAIT_ALCOHOL_TOLERANCE) || real_dorf) + if(HAS_TRAIT(H, TRAIT_DWARF) || HAS_TRAIT(H, TRAIT_ALCOHOL_TOLERANCE || real_dorf)) to_chat(H, "Now THAT is MANLY!") if(real_dorf) boozepwr = 100 // Don't want dwarves to die because of a low booze power @@ -752,7 +722,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "longislandicedteaglass" glass_name = "Long Island Iced Tea" glass_desc = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only." - value = 1 /datum/reagent/consumable/ethanol/moonshine name = "Moonshine" @@ -763,7 +732,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "glass_clear" glass_name = "Moonshine" glass_desc = "You've really hit rock bottom now... your liver packed its bags and left last night." - value = 2 + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/ethanol/b52 name = "B-52" @@ -776,7 +745,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "B-52" glass_desc = "Kahlua, Irish Cream, and cognac. You will get bombed." shot_glass_icon_state = "b52glass" - value = 5.2 /datum/reagent/consumable/ethanol/b52/on_mob_metabolize(mob/living/M) playsound(M, 'sound/effects/explosion_distant.ogg', 100, FALSE) @@ -791,7 +759,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "irishcoffeeglass" glass_name = "Irish Coffee" glass_desc = "Coffee and alcohol. More fun than a Mimosa to drink in the morning." - value = 2 /datum/reagent/consumable/ethanol/margarita name = "Margarita" @@ -803,7 +770,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "margaritaglass" glass_name = "Margarita" glass_desc = "On the rocks with salt on the rim. Arriba~!" - value = 2 /datum/reagent/consumable/ethanol/black_russian name = "Black Russian" @@ -815,7 +781,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "blackrussianglass" glass_name = "Black Russian" glass_desc = "For the lactose-intolerant. Still as classy as a White Russian." - value = 3 /datum/reagent/consumable/ethanol/manhattan @@ -828,7 +793,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "manhattanglass" glass_name = "Manhattan" glass_desc = "The Detective's undercover drink of choice. He never could stomach gin..." - value = 3 /datum/reagent/consumable/ethanol/manhattan_proj @@ -841,7 +805,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "proj_manhattanglass" glass_name = "Manhattan Project" glass_desc = "A scientist's drink of choice, for thinking how to blow up the station." - value = 6 + value = REAGENT_VALUE_RARE /datum/reagent/consumable/ethanol/manhattan_proj/on_mob_life(mob/living/carbon/M) @@ -858,7 +822,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "whiskeysodaglass2" glass_name = "whiskey soda" glass_desc = "Ultimate refreshment." - value = 1 /datum/reagent/consumable/ethanol/antifreeze name = "Anti-freeze" @@ -870,7 +833,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "antifreeze" glass_name = "Anti-freeze" glass_desc = "The ultimate refreshment." - value = 3 /datum/reagent/consumable/ethanol/antifreeze/on_mob_life(mob/living/carbon/M) M.adjust_bodytemperature(20 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL + 20) //310.15 is the normal bodytemp. @@ -886,7 +848,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "b&p" glass_name = "Barefoot" glass_desc = "Barefoot and pregnant." - value = 4 /datum/reagent/consumable/ethanol/barefoot/on_mob_life(mob/living/carbon/M) if(ishuman(M)) //Barefoot causes the imbiber to quickly regenerate brute trauma if they're not wearing shoes. @@ -906,7 +867,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "snowwhite" glass_name = "Snow White" glass_desc = "A cold refreshment." - value = 1 /datum/reagent/consumable/ethanol/demonsblood //Prevents the imbiber from being dragged into a pool of blood by a slaughter demon. name = "Demon's Blood" @@ -918,7 +878,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "demonsblood" glass_name = "Demons Blood" glass_desc = "Just looking at this thing makes the hair at the back of your neck stand up." - value = 2 /datum/reagent/consumable/ethanol/devilskiss //If eaten by a slaughter demon, the demon will regret it. name = "Devil's Kiss" @@ -930,7 +889,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "devilskiss" glass_name = "Devils Kiss" glass_desc = "Creepy time!" - value = 2 /datum/reagent/consumable/ethanol/vodkatonic name = "Vodka and Tonic" @@ -942,7 +900,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "vodkatonicglass" glass_name = "vodka and tonic" glass_desc = "For when a gin and tonic isn't Russian enough." - value = 1 /datum/reagent/consumable/ethanol/ginfizz name = "Gin Fizz" @@ -954,7 +911,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "ginfizzglass" glass_name = "gin fizz" glass_desc = "Refreshingly lemony, deliciously dry." - value = 1 /datum/reagent/consumable/ethanol/bahama_mama name = "Bahama Mama" @@ -966,7 +922,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "bahama_mama" glass_name = "Bahama Mama" glass_desc = "A tropical cocktail with a complex blend of flavors." - value = 2 /datum/reagent/consumable/ethanol/singulo name = "Singulo" @@ -978,7 +933,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "singulo" glass_name = "Singulo" glass_desc = "A blue-space beverage." - value = 4 /datum/reagent/consumable/ethanol/sbiten name = "Sbiten" @@ -990,7 +944,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "sbitenglass" glass_name = "Sbiten" glass_desc = "A spicy mix of Vodka and Spice. Very hot." - value = 2 /datum/reagent/consumable/ethanol/sbiten/on_mob_life(mob/living/carbon/M) M.adjust_bodytemperature(50 * TEMPERATURE_DAMAGE_COEFFICIENT, 0 ,BODYTEMP_HEAT_DAMAGE_LIMIT) //310.15 is the normal bodytemp. @@ -1006,7 +959,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "red_meadglass" glass_name = "Red Mead" glass_desc = "A True Viking's Beverage, though its color is strange." - value = 5 + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/ethanol/mead name = "Mead" @@ -1019,7 +972,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "meadglass" glass_name = "Mead" glass_desc = "A Viking's Beverage, though a cheap one." - value = 1 /datum/reagent/consumable/ethanol/iced_beer name = "Iced Beer" @@ -1030,7 +982,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "iced_beerglass" glass_name = "iced beer" glass_desc = "A beer so frosty, the air around it freezes." - value = 1 /datum/reagent/consumable/ethanol/iced_beer/on_mob_life(mob/living/carbon/M) M.adjust_bodytemperature(-20 * TEMPERATURE_DAMAGE_COEFFICIENT, T0C) //310.15 is the normal bodytemp. @@ -1045,7 +996,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "grogglass" glass_name = "Grog" glass_desc = "A fine and cepa drink for Space." - value = 2.1 /datum/reagent/consumable/ethanol/aloe name = "Aloe" @@ -1057,7 +1007,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "aloe" glass_name = "Aloe" glass_desc = "Very, very, very good." - value = 1 + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/ethanol/andalusia name = "Andalusia" @@ -1069,7 +1019,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "andalusia" glass_name = "Andalusia" glass_desc = "A nice, strangely named drink." - value = 1 /datum/reagent/consumable/ethanol/alliescocktail name = "Allies Cocktail" @@ -1081,7 +1030,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "alliescocktail" glass_name = "Allies cocktail" glass_desc = "A drink made from your allies." - value = 4 /datum/reagent/consumable/ethanol/acid_spit name = "Acid Spit" @@ -1093,7 +1041,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "acidspitglass" glass_name = "Acid Spit" glass_desc = "A drink from Nanotrasen. Made from live aliens." - value = 3 /datum/reagent/consumable/ethanol/amasec name = "Amasec" @@ -1105,7 +1052,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "amasecglass" glass_name = "Amasec" glass_desc = "Always handy before COMBAT!!!" - value = 2 /datum/reagent/consumable/ethanol/changelingsting name = "Changeling Sting" @@ -1117,14 +1063,13 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "changelingsting" glass_name = "Changeling Sting" glass_desc = "A stingy drink." - value = 1.5 /datum/reagent/consumable/ethanol/changelingsting/on_mob_life(mob/living/carbon/M) if(M.mind) //Changeling Sting assists in the recharging of changeling chemicals. var/datum/antagonist/changeling/changeling = M.mind.has_antag_datum(/datum/antagonist/changeling) if(changeling) changeling.chem_charges += metabolization_rate - changeling.chem_charges = CLAMP(changeling.chem_charges, 0, changeling.chem_storage) + changeling.chem_charges = clamp(changeling.chem_charges, 0, changeling.chem_storage) return ..() /datum/reagent/consumable/ethanol/irishcarbomb @@ -1137,7 +1082,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "irishcarbomb" glass_name = "Irish Car Bomb" glass_desc = "An Irish car bomb." - value = 5 /datum/reagent/consumable/ethanol/syndicatebomb name = "Syndicate Bomb" @@ -1149,7 +1093,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "syndicatebomb" glass_name = "Syndicate Bomb" glass_desc = "A syndicate bomb." - value = 2 /datum/reagent/consumable/ethanol/syndicatebomb/on_mob_life(mob/living/carbon/M) if(prob(5)) @@ -1177,7 +1120,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "erikasurprise" glass_name = "Erika Surprise" glass_desc = "The surprise is, it's green!" - value = 4 /datum/reagent/consumable/ethanol/driestmartini name = "Driest Martini" @@ -1190,7 +1132,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "driestmartiniglass" glass_name = "Driest Martini" glass_desc = "Only for the experienced. You think you see sand floating in the glass." - value = 5 /datum/reagent/consumable/ethanol/bananahonk name = "Banana Honk" @@ -1203,7 +1144,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "bananahonkglass" glass_name = "Banana Honk" glass_desc = "A drink from Clown Heaven." - value = 8 /datum/reagent/consumable/ethanol/bananahonk/on_mob_life(mob/living/carbon/M) if((ishuman(M) && M.job == "Clown") || ismonkey(M)) @@ -1222,7 +1162,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "silencerglass" glass_name = "Silencer" glass_desc = "A drink from Mime Heaven." - value = 2 /datum/reagent/consumable/ethanol/silencer/on_mob_life(mob/living/carbon/M) if(ishuman(M) && M.job == "Mime") @@ -1240,7 +1179,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "drunkenblumpkin" glass_name = "Drunken Blumpkin" glass_desc = "A drink for the drunks." - value = 3 + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/ethanol/whiskey_sour //Requested since we had whiskey cola and soda but not sour. name = "Whiskey Sour" @@ -1252,7 +1191,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "whiskey_sour" glass_name = "whiskey sour" glass_desc = "Lemon juice mixed with whiskey and a dash of sugar. Surprisingly satisfying." - value = 2 /datum/reagent/consumable/ethanol/hcider name = "Hard Cider" @@ -1265,7 +1203,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "hard cider" glass_desc = "Tastes like autumn... no wait, fall!" shot_glass_icon_state = "shotglassbrown" - value = 3 /datum/reagent/consumable/ethanol/fetching_fizz //A reference to one of my favorite games of all time. Pulls nearby ores to the imbiber! name = "Fetching Fizz" @@ -1278,7 +1215,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "fetching_fizz" glass_name = "Fetching Fizz" glass_desc = "Induces magnetism in the imbiber. Started as a barroom prank but evolved to become popular with miners and scrappers. Metallic aftertaste." - value = 2 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/consumable/ethanol/fetching_fizz/on_mob_life(mob/living/carbon/M) for(var/obj/item/stack/ore/O in orange(3, M)) @@ -1297,7 +1234,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "hearty_punch" glass_name = "Hearty Punch" glass_desc = "Aromatic beverage served piping hot. According to folk tales it can almost wake the dead." - value = 1 + value = REAGENT_VALUE_RARE //considering the low recipe yield. /datum/reagent/consumable/ethanol/hearty_punch/on_mob_life(mob/living/carbon/M) if(M.health <= 0) @@ -1318,8 +1255,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "glass_brown2" glass_name = "Bacchus' Blessing" glass_desc = "You didn't think it was possible for a liquid to be so utterly revolting. Are you sure about this...?" - value = 8 - + value = REAGENT_VALUE_RARE /datum/reagent/consumable/ethanol/atomicbomb name = "Atomic Bomb" @@ -1331,7 +1267,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "atomicbombglass" glass_name = "Atomic Bomb" glass_desc = "Nanotrasen cannot take legal responsibility for your actions after imbibing." - value = 3.56 + value = REAGENT_VALUE_RARE /datum/reagent/consumable/ethanol/atomicbomb/on_mob_life(mob/living/carbon/M) M.set_drugginess(50) @@ -1360,7 +1296,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "gargleblasterglass" glass_name = "Pan-Galactic Gargle Blaster" glass_desc = "Like having your brain smashed out by a slice of lemon wrapped around a large gold brick." - value = 5 /datum/reagent/consumable/ethanol/gargle_blaster/on_mob_life(mob/living/carbon/M) M.dizziness +=1.5 @@ -1393,7 +1328,7 @@ All effects don't start immediately, but rather get worse over time; the rate is impure_chem = /datum/reagent/consumable/ethanol/neuroweak inverse_chem_val = 0.5 //Clear conversion inverse_chem = /datum/reagent/consumable/ethanol/neuroweak - value = 4 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/consumable/ethanol/neurotoxin/proc/pickt() return (pick(TRAIT_PARALYSIS_L_ARM,TRAIT_PARALYSIS_R_ARM,TRAIT_PARALYSIS_R_LEG,TRAIT_PARALYSIS_L_LEG)) @@ -1434,7 +1369,6 @@ All effects don't start immediately, but rather get worse over time; the rate is description = "A mostly safe alcoholic drink for the true daredevils. Counteracts Neurotoxins." boozepwr = 60 pH = 8 - value = 3 /datum/reagent/consumable/ethanol/neuroweak/on_mob_life(mob/living/carbon/M) if(holder.has_reagent(/datum/reagent/consumable/ethanol/neurotoxin)) @@ -1460,7 +1394,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "hippiesdelightglass" glass_name = "Hippie's Delight" glass_desc = "A drink enjoyed by people during the 1960's." - value = 1.96 + value = REAGENT_VALUE_RARE /datum/reagent/consumable/ethanol/hippies_delight/on_mob_life(mob/living/carbon/M) M.slurring = max(M.slurring,50) @@ -1504,8 +1438,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "nog3" glass_name = "eggnog" glass_desc = "The traditional way to get absolutely hammered at a Christmas party." - value = 4 - /datum/reagent/consumable/ethanol/narsour name = "Nar'Sour" @@ -1517,7 +1449,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "narsour" glass_name = "Nar'Sour" glass_desc = "A new hit cocktail inspired by THE ARM Breweries will have you shouting Fuu ma'jin in no time!" - value = 6.66 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/consumable/ethanol/narsour/on_mob_life(mob/living/carbon/M) M.cultslurring = min(M.cultslurring + 3, 3) @@ -1534,7 +1466,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "cogchamp" glass_name = "CogChamp" glass_desc = "Not even Ratvar's Four Generals could withstand this! Qevax Jryy!" - value = 8.13 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/consumable/ethanol/cogchamp/on_mob_life(mob/living/carbon/M) M.clockcultslurring = min(M.clockcultslurring + 3, 3) @@ -1550,7 +1482,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "glass_orange" glass_name = "Triple Sec" glass_desc = "A glass of straight Triple Sec." - value = 1.5 /datum/reagent/consumable/ethanol/creme_de_menthe name = "Creme de Menthe" @@ -1561,7 +1492,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "glass_green" glass_name = "Creme de Menthe" glass_desc = "You can almost feel the first breath of spring just looking at it." - value = 2 /datum/reagent/consumable/ethanol/creme_de_cacao name = "Creme de Cacao" @@ -1572,7 +1502,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "glass_brown" glass_name = "Creme de Cacao" glass_desc = "A million hazing lawsuits and alcohol poisonings have started with this humble ingredient." - value = 1 /datum/reagent/consumable/ethanol/creme_de_coconut name = "Creme de Coconut" @@ -1594,7 +1523,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "quadruple_sec" glass_name = "Quadruple Sec" glass_desc = "An intimidating and lawful beverage dares you to violate the law and make its day. Still can't drink it on duty, though." - value = 3.04 /datum/reagent/consumable/ethanol/quadruple_sec/on_mob_life(mob/living/carbon/M) if(M.mind && HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM)) //Securidrink in line with the screwderiver for engineers or nothing for mimes. @@ -1613,7 +1541,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "quintuple_sec" glass_name = "Quintuple Sec" glass_desc = "Now you are become law, destroyer of clowns." - value = 4.01 + value = REAGENT_VALUE_EXCEPTIONAL /datum/reagent/consumable/ethanol/quintuple_sec/on_mob_life(mob/living/carbon/M) if(M.mind && HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM)) //Securidrink in line with the screwderiver for engineers or nothing for mimes but STRONG.. @@ -1657,7 +1585,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "grasshopper" glass_name = "Grasshopper" glass_desc = "You weren't aware edible beverages could be that green." - value = 1 /datum/reagent/consumable/ethanol/stinger name = "Stinger" @@ -1669,7 +1596,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "stinger" glass_name = "Stinger" glass_desc = "You wonder what would happen if you pointed this at a heat source..." - value = 1 /datum/reagent/consumable/ethanol/bastion_bourbon name = "Bastion Bourbon" @@ -1684,7 +1610,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "If you're feeling low, count on the buttery flavor of our own bastion bourbon." shot_glass_icon_state = "shotglassgreen" pH = 4 - value = 8 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/consumable/ethanol/bastion_bourbon/on_mob_metabolize(mob/living/L) var/heal_points = 10 @@ -1721,7 +1647,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "Squirt Cider" glass_desc = "Squirt cider will toughen you right up. Too bad about the musty aftertaste." shot_glass_icon_state = "shotglassgreen" - value = 1 /datum/reagent/consumable/ethanol/squirt_cider/on_mob_life(mob/living/carbon/M) M.satiety += 5 //for context, vitamins give 30 satiety per tick @@ -1738,7 +1663,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "fringe_weaver" glass_name = "Fringe Weaver" glass_desc = "It's a wonder it doesn't spill out of the glass." - value = 1 /datum/reagent/consumable/ethanol/sugar_rush name = "Sugar Rush" @@ -1751,7 +1675,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "sugar_rush" glass_name = "Sugar Rush" glass_desc = "If you can't mix a Sugar Rush, you can't tend bar." - value = 1 /datum/reagent/consumable/ethanol/sugar_rush/on_mob_life(mob/living/carbon/M) M.satiety -= 10 //junky as hell! a whole glass will keep you from being able to eat junk food @@ -1768,7 +1691,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "crevice_spike" glass_name = "Crevice Spike" glass_desc = "It'll either knock the drunkenness out of you or knock you out cold. Both, probably." - value = 1 + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/ethanol/crevice_spike/on_mob_metabolize(mob/living/L) //damage only applies when drink first enters system and won't again until drink metabolizes out L.adjustBruteLoss(3 * min(5,volume)) //minimum 3 brute damage on ingestion to limit non-drink means of injury - a full 5 unit gulp of the drink trucks you for the full 15 @@ -1782,7 +1705,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "sakecup" glass_name = "cup of sake" glass_desc = "A traditional cup of sake." - value = 0.1 /datum/reagent/consumable/ethanol/peppermint_patty name = "Peppermint Patty" @@ -1794,7 +1716,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "peppermint_patty" glass_name = "Peppermint Patty" glass_desc = "A boozy minty hot cocoa that warms your belly on a cold night." - value = 2 /datum/reagent/consumable/ethanol/peppermint_patty/on_mob_life(mob/living/carbon/M) M.apply_status_effect(/datum/status_effect/throat_soothed) @@ -1812,7 +1733,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "Alexander" glass_desc = "A creamy, indulgent delight that is stronger than it seems." var/obj/item/shield/mighty_shield - value = 1 /datum/reagent/consumable/ethanol/alexander/on_mob_metabolize(mob/living/L) if(ishuman(L)) @@ -1844,7 +1764,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "sidecar" glass_name = "Sidecar" glass_desc = "The one ride you'll gladly give up the wheel for." - value = 1 /datum/reagent/consumable/ethanol/between_the_sheets name = "Between the Sheets" @@ -1856,7 +1775,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "between_the_sheets" glass_name = "Between the Sheets" glass_desc = "The only drink that comes with a label reminding you of Nanotrasen's zero-tolerance promiscuity policy." - value = 2 /datum/reagent/consumable/ethanol/between_the_sheets/on_mob_life(mob/living/L) ..() @@ -1881,7 +1799,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "kamikaze" glass_name = "Kamikaze" glass_desc = "Divinely windy." - value = 1 /datum/reagent/consumable/ethanol/mojito name = "Mojito" @@ -1893,7 +1810,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "mojito" glass_name = "Mojito" glass_desc = "A drink that looks as refreshing as it tastes." - value = 1 /datum/reagent/consumable/ethanol/moscow_mule name = "Moscow Mule" @@ -1914,7 +1830,6 @@ All effects don't start immediately, but rather get worse over time; the rate is taste_description = "utter bitterness" glass_name = "glass of fernet" glass_desc = "A glass of pure Fernet. Only an absolute madman would drink this alone." - value = 0.1 /datum/reagent/consumable/ethanol/fernet/on_mob_life(mob/living/carbon/M) if(M.nutrition <= NUTRITION_LEVEL_STARVING) @@ -1933,7 +1848,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "godlyblend" glass_name = "glass of fernet cola" glass_desc = "A sawed-off cola bottle filled with Fernet Cola. Nothing better after eating like a lardass." - value = 1 /datum/reagent/consumable/ethanol/fernet_cola/on_mob_life(mob/living/carbon/M) if(M.nutrition <= NUTRITION_LEVEL_STARVING) @@ -1943,7 +1857,6 @@ All effects don't start immediately, but rather get worse over time; the rate is return ..() /datum/reagent/consumable/ethanol/fanciulli - name = "Fanciulli" description = "What if the Manhattan coctail ACTUALLY used a bitter herb liquour? Helps you sobers up." //also causes a bit of stamina damage to symbolize the afterdrink lazyness color = "#CA933F" // rgb: 202, 147, 63 @@ -1953,7 +1866,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "fanciulli" glass_name = "glass of fanciulli" glass_desc = "A glass of Fanciulli. It's just Manhattan with Fernet." - value = 1 /datum/reagent/consumable/ethanol/fanciulli/on_mob_life(mob/living/carbon/M) M.nutrition = max(M.nutrition - 5, 0) @@ -1966,7 +1878,6 @@ All effects don't start immediately, but rather get worse over time; the rate is . = TRUE ..() - /datum/reagent/consumable/ethanol/branca_menta name = "Branca Menta" description = "A refreshing mixture of bitter Fernet with mint creme liquour." @@ -1977,7 +1888,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state= "minted_fernet" glass_name = "glass of branca menta" glass_desc = "A glass of Branca Menta, perfect for those lazy and hot sunday summer afternoons." //Get lazy literally by drinking this - value = 1 /datum/reagent/consumable/ethanol/branca_menta/on_mob_life(mob/living/carbon/M) M.adjust_bodytemperature(-20 * TEMPERATURE_DAMAGE_COEFFICIENT, T0C) @@ -2000,7 +1910,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "blank_paper" glass_name = "glass of blank paper" glass_desc = "A fizzy cocktail for those looking to start fresh." - value = 1 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/consumable/ethanol/blank_paper/on_mob_life(mob/living/carbon/M) if(ishuman(M) && M.job == "Mime") @@ -2017,7 +1927,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "champagne_glass" glass_name = "Champagne" glass_desc = "The flute clearly displays the slowly rising bubbles." - value = 1 + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/ethanol/wizz_fizz name = "Wizz Fizz" @@ -2029,7 +1939,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "wizz_fizz" glass_name = "Wizz Fizz" glass_desc = "The glass bubbles and froths with an almost magical intensity." - value = 1 + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/ethanol/wizz_fizz/on_mob_life(mob/living/carbon/M) //A healing drink similar to Quadruple Sec, Ling Stings, and Screwdrivers for the Wizznerds; the check is consistent with the changeling sting @@ -2049,7 +1959,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "bug_spray" glass_name = "Bug Spray" glass_desc = "Your eyes begin to water as the sting of alcohol reaches them." - value = 1 /datum/reagent/consumable/ethanol/bug_spray/on_mob_life(mob/living/carbon/M) //Bugs should not drink Bug spray. @@ -2071,7 +1980,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "applejack_glass" glass_name = "Applejack" glass_desc = "You feel like you could drink this all neight." - value = 0.1 /datum/reagent/consumable/ethanol/jack_rose name = "Jack Rose" @@ -2083,7 +1991,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "jack_rose" glass_name = "Jack Rose" glass_desc = "Enough of these, and you really will start to suppose your toeses are roses." - value = 1 /datum/reagent/consumable/ethanol/turbo name = "Turbo" @@ -2095,7 +2002,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "turbo" glass_name = "Turbo" glass_desc = "A turbulent cocktail for outlaw hoverbikers." - value = 0.3 + value = REAGENT_VALUE_RARE /datum/reagent/consumable/ethanol/turbo/on_mob_life(mob/living/carbon/M) if(prob(4)) @@ -2113,7 +2020,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "old_timer" glass_name = "Old Timer" glass_desc = "WARNING! May cause premature aging!" - value = 2 + value = REAGENT_VALUE_UNCOMMON //Parsnip juice? Really? lol /datum/reagent/consumable/ethanol/old_timer/on_mob_life(mob/living/carbon/M) if(prob(20)) @@ -2146,7 +2053,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "rubberneck" glass_name = "Rubberneck" glass_desc = "A popular drink amongst those adhering to an all synthetic diet." - value = 1 + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/ethanol/duplex name = "Duplex" @@ -2158,7 +2065,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "duplex" glass_name = "Duplex" glass_desc = "To imbibe one component separately from the other is consider a great faux pas." - value = 1 /datum/reagent/consumable/ethanol/trappist name = "Trappist Beer" @@ -2170,7 +2076,6 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "trappistglass" glass_name = "Trappist Beer" glass_desc = "boozy Catholicism in a glass." - value = 1 /datum/reagent/consumable/ethanol/trappist/on_mob_life(mob/living/carbon/M) if(M.mind.isholy) @@ -2188,8 +2093,8 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "blazaamglass" glass_name = "Blazaam" glass_desc = "The glass seems to be sliding between realities. Doubles as a Berenstain remover." + value = REAGENT_VALUE_UNCOMMON var/stored_teleports = 0 - value = 4 /datum/reagent/consumable/ethanol/blazaam/on_mob_life(mob/living/carbon/M) if(M.drunkenness > 40) @@ -2211,7 +2116,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "planet_cracker" glass_name = "Planet Cracker" glass_desc = "Although historians believe the drink was originally created to commemorate the end of an important conflict in man's past, its origins have largely been forgotten and it is today seen more as a general symbol of human supremacy." - value = 1 + value = REAGENT_VALUE_VERY_RARE /datum/reagent/consumable/ethanol/mauna_loa name = "Mauna Loa" @@ -2223,6 +2128,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "mauna_loa" glass_name = "Mauna Loa" glass_desc = "Lavaland in a drink... mug... volcano... thing." + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/ethanol/mauna_loa/on_mob_life(mob/living/carbon/M) // Heats the user up while the reagent is in the body. Occasionally makes you burst into flames. @@ -2236,13 +2142,14 @@ All effects don't start immediately, but rather get worse over time; the rate is name = "Commander and Chief" description = "A cocktail for the captain on the go." color = "#ffffc9" + can_synth = FALSE boozepwr = 50 quality = DRINK_FANTASTIC taste_description = "duty and responsibility" glass_icon_state = "commander_and_chief" glass_name = "Commander and Chief" glass_desc = "The gems of this majestic chalice represent the departments and their Heads." - value = 10 + value = REAGENT_VALUE_AMAZING /datum/reagent/consumable/ethanol/commander_and_chief/on_mob_life(mob/living/carbon/M) if(M.mind && HAS_TRAIT(M.mind, TRAIT_CAPTAIN_METABOLISM)) @@ -2281,6 +2188,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "hellfire" glass_name = "Hellfire" glass_desc = "An amber colored drink that isn't quite as hot as it looks." + value = REAGENT_VALUE_UNCOMMON /datum/reagent/consumable/ethanol/hellfire/on_mob_life(mob/living/carbon/M) M.adjust_bodytemperature(30 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL + 30) @@ -2296,6 +2204,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "sins_delight" glass_name = "Sin's Delight" glass_desc = "You can smell the seven sins rolling off the top of the glass." + value = REAGENT_VALUE_RARE /datum/reagent/consumable/ethanol/strawberry_daiquiri name = "Strawberry Daiquiri" @@ -2328,6 +2237,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "miami_vice" glass_name = "Miami Vice" glass_desc = "Strawberries and coconut, like yin and yang." + value = REAGENT_VALUE_UNCOMMON /datum/reagent/consumable/ethanol/malibu_sunset name = "Malibu Sunset" @@ -2350,6 +2260,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "hotlime_miami" glass_name = "Hotlime Miami" glass_desc = "This looks very aesthetically pleasing." + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/ethanol/hotlime_miami/on_mob_life(mob/living/carbon/M) M.set_drugginess(50) @@ -2580,7 +2491,6 @@ All effects don't start immediately, but rather get worse over time; the rate is var/list/names = list("null fruit" = 1) //Names of the fruits used. Associative list where name is key, value is the percentage of that fruit. var/list/tastes = list("bad coding" = 1) //List of tastes. See above. pH = 4 - value = 4 /datum/reagent/consumable/ethanol/fruit_wine/on_new(list/data) names = data["names"] diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index ebbce61c57..62aea28009 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -165,6 +165,7 @@ metabolization_rate = INFINITY color = "#FF4DD2" taste_description = "laughter" + value = REAGENT_VALUE_VERY_COMMON /datum/reagent/consumable/laughter/on_mob_life(mob/living/carbon/M) M.emote("laugh") @@ -177,6 +178,7 @@ metabolization_rate = 1.5 * REAGENTS_METABOLISM color = "#FF4DD2" taste_description = "laughter" + value = REAGENT_VALUE_RARE /datum/reagent/consumable/superlaughter/on_mob_life(mob/living/carbon/M) if(prob(30)) @@ -210,6 +212,7 @@ glass_name = "glass of milk" glass_desc = "White and nutritious goodness!" pH = 6.5 + value = REAGENT_VALUE_VERY_COMMON /datum/reagent/consumable/milk/on_mob_life(mob/living/carbon/M) if(HAS_TRAIT(M, TRAIT_CALCIUM_HEALER)) @@ -231,6 +234,7 @@ glass_icon_state = "glass_white" glass_name = "glass of soy milk" glass_desc = "White and nutritious soy goodness!" + value = REAGENT_VALUE_VERY_COMMON /datum/reagent/consumable/soymilk/on_mob_life(mob/living/carbon/M) if(M.getBruteLoss() && prob(20)) @@ -324,17 +328,18 @@ glass_icon_state = "lemonpitcher" glass_name = "pitcher of lemonade" glass_desc = "This drink leaves you feeling nostalgic for some reason." + value = REAGENT_VALUE_VERY_COMMON /datum/reagent/consumable/tea/arnold_palmer name = "Arnold Palmer" description = "Encourages the patient to go golfing." color = "#FFB766" quality = DRINK_NICE - nutriment_factor = 2 taste_description = "bitter tea" glass_icon_state = "arnold_palmer" glass_name = "Arnold Palmer" glass_desc = "You feel like taking a few golf swings after a few swigs of this." + value = REAGENT_VALUE_VERY_COMMON /datum/reagent/consumable/tea/arnold_palmer/on_mob_life(mob/living/carbon/M) if(prob(5)) @@ -384,6 +389,7 @@ /datum/reagent/consumable/space_cola name = "Cola" description = "A refreshing beverage." + nutriment_factor = 0.5 * REAGENTS_METABOLISM color = "#100800" // rgb: 16, 8, 0 taste_description = "cola" glass_icon_state = "glass_brown" @@ -404,6 +410,7 @@ glass_icon_state = "nuka_colaglass" glass_name = "glass of Nuka Cola" glass_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland." + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/carbon/M) M.Jitter(20) @@ -418,6 +425,7 @@ /datum/reagent/consumable/spacemountainwind name = "SM Wind" description = "Blows right through you like a space wind." + nutriment_factor = 0.5 * REAGENTS_METABOLISM color = "#102000" // rgb: 16, 32, 0 taste_description = "sweet citrus soda" glass_icon_state = "Space_mountain_wind_glass" @@ -435,6 +443,7 @@ /datum/reagent/consumable/dr_gibb name = "Dr. Gibb" description = "A delicious blend of 42 different flavours." + nutriment_factor = 0.5 * REAGENTS_METABOLISM color = "#102000" // rgb: 16, 32, 0 taste_description = "cherry soda" // FALSE ADVERTISING glass_icon_state = "dr_gibb_glass" @@ -449,6 +458,7 @@ /datum/reagent/consumable/space_up name = "Space-Up" description = "Tastes like a hull breach in your mouth." + nutriment_factor = 0.5 * REAGENTS_METABOLISM color = "#00FF00" // rgb: 0, 255, 0 taste_description = "cherry soda" glass_icon_state = "space-up_glass" @@ -463,6 +473,7 @@ /datum/reagent/consumable/lemon_lime name = "Lemon Lime" description = "A tangy substance made of 0.5% natural citrus!" + nutriment_factor = 0.5 * REAGENTS_METABOLISM color = "#8CFF00" // rgb: 135, 255, 0 taste_description = "tangy lime and lemon soda" glass_icon_state = "glass_yellow" @@ -476,6 +487,7 @@ /datum/reagent/consumable/pwr_game name = "Pwr Game" description = "The only drink with the PWR that true gamers crave." + nutriment_factor = 0.5 * REAGENTS_METABOLISM color = "#9385bf" // rgb: 58, 52, 75 taste_description = "sweet and salty tang" glass_icon_state = "glass_red" @@ -489,6 +501,7 @@ /datum/reagent/consumable/shamblers name = "Shambler's Juice" description = "~Shake me up some of that Shambler's Juice!~" + nutriment_factor = 0.5 * REAGENTS_METABOLISM color = "#f00060" // rgb: 94, 0, 38 taste_description = "carbonated metallic soda" glass_icon_state = "glass_red" @@ -502,6 +515,7 @@ /datum/reagent/consumable/buzz_fuzz name = "Buzz Fuzz" description = "~A Hive of Flavour!~ NOTICE: Addicting." + nutriment_factor = 0 addiction_threshold = 26 //A can and a sip color = "#8CFF00" // rgb: 135, 255, 0 taste_description = "carbonated honey and pollen" @@ -552,6 +566,7 @@ glass_icon_state = "grey_bull_glass" glass_name = "glass of Grey Bull" glass_desc = "Surprisingly it isnt grey." + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/grey_bull/on_mob_metabolize(mob/living/L) ..() @@ -572,6 +587,7 @@ /datum/reagent/consumable/sodawater name = "Soda Water" description = "A can of club soda. Why not make a scotch and soda?" + nutriment_factor = 0 color = "#619494" // rgb: 97, 148, 148 taste_description = "carbonated water" glass_icon_state = "glass_clear" @@ -604,6 +620,7 @@ /datum/reagent/consumable/ice name = "Ice" description = "Frozen water, your dentist wouldn't like you chewing this." + nutriment_factor = 0 //Its water why would this even geive nutriments? reagent_state = SOLID color = "#619494" // rgb: 97, 148, 148 taste_description = "ice" @@ -624,6 +641,7 @@ glass_icon_state = "soy_latte" glass_name = "soy latte" glass_desc = "A nice and refreshing beverage while you're reading." + value = REAGENT_VALUE_VERY_COMMON /datum/reagent/consumable/soy_latte/on_mob_life(mob/living/carbon/M) M.dizziness = max(0,M.dizziness-5) @@ -645,6 +663,7 @@ glass_icon_state = "cafe_latte" glass_name = "cafe latte" glass_desc = "A nice, strong and refreshing beverage while you're reading." + value = REAGENT_VALUE_VERY_COMMON /datum/reagent/consumable/cafe_latte/on_mob_life(mob/living/carbon/M) M.dizziness = max(0,M.dizziness-5) @@ -666,6 +685,7 @@ glass_icon_state = "doctorsdelightglass" glass_name = "Doctor's Delight" glass_desc = "The space doctor's favorite. Guaranteed to restore bodily injury; side effects include cravings and hunger." + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/doctor_delight/on_mob_life(mob/living/carbon/M) M.adjustBruteLoss(-0.5, 0) @@ -688,6 +708,7 @@ glass_icon_state = "chocolatepudding" glass_name = "chocolate pudding" glass_desc = "Tasty." + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/vanillapudding name = "Vanilla Pudding" @@ -699,50 +720,55 @@ glass_icon_state = "vanillapudding" glass_name = "vanilla pudding" glass_desc = "Tasty." + value = REAGENT_VALUE_UNCOMMON //real vanilla. /datum/reagent/consumable/cherryshake name = "Cherry Shake" description = "A cherry flavored milkshake." color = "#FFB6C1" quality = DRINK_VERYGOOD - nutriment_factor = 4 * REAGENTS_METABOLISM + nutriment_factor = 2 * REAGENTS_METABOLISM taste_description = "creamy cherry" glass_icon_state = "cherryshake" glass_name = "cherry shake" glass_desc = "A cherry flavored milkshake." + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/bluecherryshake name = "Blue Cherry Shake" description = "An exotic milkshake." color = "#00F1FF" quality = DRINK_VERYGOOD - nutriment_factor = 4 * REAGENTS_METABOLISM + nutriment_factor = 2 * REAGENTS_METABOLISM taste_description = "creamy blue cherry" glass_icon_state = "bluecherryshake" glass_name = "blue cherry shake" glass_desc = "An exotic blue milkshake." + value = REAGENT_VALUE_UNCOMMON /datum/reagent/consumable/pumpkin_latte name = "Pumpkin Latte" description = "A mix of pumpkin juice and coffee." color = "#F4A460" quality = DRINK_VERYGOOD - nutriment_factor = 3 * REAGENTS_METABOLISM + nutriment_factor = 2 * REAGENTS_METABOLISM taste_description = "creamy pumpkin" glass_icon_state = "pumpkin_latte" glass_name = "pumpkin latte" glass_desc = "A mix of coffee and pumpkin juice." + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/gibbfloats name = "Gibb Floats" description = "Ice cream on top of a Dr. Gibb glass." color = "#B22222" quality = DRINK_NICE - nutriment_factor = 3 * REAGENTS_METABOLISM + nutriment_factor = 1 * REAGENTS_METABOLISM taste_description = "creamy cherry" glass_icon_state = "gibbfloats" glass_name = "Gibbfloat" glass_desc = "Dr. Gibb with ice cream on top." + value = REAGENT_VALUE_VERY_COMMON /datum/reagent/consumable/pumpkinjuice name = "Pumpkin Juice" @@ -755,6 +781,7 @@ description = "Juiced from real blumpkin." color = "#00BFFF" taste_description = "a mouthful of pool water" + value = REAGENT_VALUE_VERY_COMMON /datum/reagent/consumable/triple_citrus name = "Triple Citrus" @@ -784,6 +811,7 @@ color = "#7D4E29" quality = DRINK_NICE taste_description = "chocolate milk" + value = REAGENT_VALUE_VERY_COMMON /datum/reagent/consumable/menthol name = "Menthol" @@ -812,6 +840,7 @@ color = "#FFA500" taste_description = "parsnip" glass_name = "glass of parsnip juice" + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/peachjuice //Intended to be extremely rare due to being the limiting ingredients in the blazaam drink name = "Peach Juice" @@ -837,6 +866,7 @@ glass_icon_state = "cream_soda" glass_name = "Cream Soda" glass_desc = "A classic space-American vanilla flavored soft drink." + value = REAGENT_VALUE_VERY_COMMON //just a little vanilla /datum/reagent/consumable/cream_soda/on_mob_life(mob/living/carbon/M) M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL) @@ -845,6 +875,7 @@ /datum/reagent/consumable/sol_dry name = "Sol Dry" description = "A soothing, mellow drink made from ginger." + nutriment_factor = 0.5 * REAGENTS_METABOLISM color = "#f7d26a" quality = DRINK_NICE taste_description = "sweet ginger spice" @@ -864,6 +895,7 @@ glass_icon_state = "red_queen" glass_name = "Red Queen" glass_desc = "DRINK ME." + value = REAGENT_VALUE_COMMON //growth serum. var/current_size = RESIZE_DEFAULT_SIZE /datum/reagent/consumable/red_queen/on_mob_life(mob/living/carbon/H) @@ -889,10 +921,11 @@ description = "A drink of a bygone era of milk and artificial sweetener back on a rock." color = "#f76aeb"//rgb(247, 106, 235) glass_icon_state = "pinkmilk" - quality = DRINK_FANTASTIC //Love drink + quality = DRINK_VERYGOOD taste_description = "sweet strawberry and milk cream" glass_name = "tall glass of strawberry milk" glass_desc = "Delicious flavored strawberry syrup mixed with milk." + value = REAGENT_VALUE_VERY_COMMON /datum/reagent/consumable/tea/pinkmilk/on_mob_life(mob/living/carbon/M) if(prob(15)) @@ -905,7 +938,7 @@ description = "A timeless classic!" color = "#f76aeb"//rgb(247, 106, 235) glass_icon_state = "pinktea" - quality = DRINK_FANTASTIC //Love drink + quality = DRINK_VERYGOOD taste_description = "sweet tea with a hint of strawberry" glass_name = "mug of strawberry tea" glass_desc = "Delicious traditional tea flavored with strawberries." @@ -948,6 +981,7 @@ glass_icon_state = "monkey_energy_glass" glass_name = "glass of Monkey Energy" glass_desc = "You can unleash the ape, but without the pop of the can?" + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/monkey_energy/on_mob_life(mob/living/carbon/M) M.Jitter(20) @@ -965,3 +999,4 @@ glass_icon_state = "glass_yellow" glass_name = "glass of bungo juice" glass_desc = "Exotic! You feel like you are on vacation already." + value = REAGENT_VALUE_COMMON diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index c96feec4e2..ef4b7f3a53 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -1,6 +1,5 @@ /datum/reagent/drug name = "Drug" - value = 12 metabolization_rate = 0.5 * REAGENTS_METABOLISM taste_description = "bitterness" var/trippy = TRUE //Does this drug make you trip? @@ -11,7 +10,7 @@ /datum/reagent/drug/space_drugs name = "Space drugs" - value = 6 + value = REAGENT_VALUE_VERY_COMMON description = "An illegal chemical compound used as drug." color = "#60A584" // rgb: 96, 165, 132 overdose_threshold = 30 @@ -38,7 +37,6 @@ /datum/reagent/drug/nicotine name = "Nicotine" - value = 0 description = "Slightly reduces stun times. If overdosed it will deal toxin and oxygen damage." reagent_state = LIQUID color = "#60A584" // rgb: 96, 165, 132 @@ -66,6 +64,7 @@ overdose_threshold = 20 addiction_threshold = 10 pH = 10 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/drug/crank/on_mob_life(mob/living/carbon/M) if(prob(5)) @@ -112,6 +111,7 @@ overdose_threshold = 20 addiction_threshold = 15 pH = 9 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/drug/krokodil/on_mob_life(mob/living/carbon/M) @@ -167,6 +167,7 @@ var/jitter = TRUE var/confusion = TRUE pH = 5 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/drug/methamphetamine/on_mob_metabolize(mob/living/L) ..() @@ -196,7 +197,7 @@ . = 1 /datum/reagent/drug/methamphetamine/overdose_process(mob/living/M) - if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc)) + if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc)) for(var/i in 1 to 4) step(M, pick(GLOB.cardinals)) if(prob(20)) @@ -223,7 +224,7 @@ ..() /datum/reagent/drug/methamphetamine/addiction_act_stage3(mob/living/M) - if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc)) + if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc)) for(var/i = 0, i < 4, i++) step(M, pick(GLOB.cardinals)) M.Jitter(15) @@ -233,7 +234,7 @@ ..() /datum/reagent/drug/methamphetamine/addiction_act_stage4(mob/living/carbon/human/M) - if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc)) + if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc)) for(var/i = 0, i < 8, i++) step(M, pick(GLOB.cardinals)) M.Jitter(20) @@ -250,6 +251,7 @@ overdose_threshold = 35 jitter = FALSE brain_damage = FALSE + value = REAGENT_VALUE_RARE /datum/reagent/drug/bath_salts name = "Bath Salts" @@ -261,6 +263,7 @@ taste_description = "salt" // because they're bathsalts? var/datum/brain_trauma/special/psychotic_brawling/bath_salts/rage pH = 8.2 + value = REAGENT_VALUE_RARE /datum/reagent/drug/bath_salts/on_mob_metabolize(mob/living/L) ..() @@ -285,7 +288,7 @@ M.adjustStaminaLoss(-5, 0) M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 4) M.hallucination += 5 - if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc)) + if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc)) step(M, pick(GLOB.cardinals)) step(M, pick(GLOB.cardinals)) ..() @@ -293,7 +296,7 @@ /datum/reagent/drug/bath_salts/overdose_process(mob/living/M) M.hallucination += 5 - if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc)) + if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc)) for(var/i in 1 to 8) step(M, pick(GLOB.cardinals)) if(prob(20)) @@ -304,7 +307,7 @@ /datum/reagent/drug/bath_salts/addiction_act_stage1(mob/living/M) M.hallucination += 10 - if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc)) + if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc)) for(var/i = 0, i < 8, i++) step(M, pick(GLOB.cardinals)) M.Jitter(5) @@ -315,7 +318,7 @@ /datum/reagent/drug/bath_salts/addiction_act_stage2(mob/living/M) M.hallucination += 20 - if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc)) + if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc)) for(var/i = 0, i < 8, i++) step(M, pick(GLOB.cardinals)) M.Jitter(10) @@ -327,7 +330,7 @@ /datum/reagent/drug/bath_salts/addiction_act_stage3(mob/living/M) M.hallucination += 30 - if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc)) + if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc)) for(var/i = 0, i < 12, i++) step(M, pick(GLOB.cardinals)) M.Jitter(15) @@ -339,7 +342,7 @@ /datum/reagent/drug/bath_salts/addiction_act_stage4(mob/living/carbon/human/M) M.hallucination += 30 - if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovableatom(M.loc)) + if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc)) for(var/i = 0, i < 16, i++) step(M, pick(GLOB.cardinals)) M.Jitter(50) @@ -357,6 +360,7 @@ reagent_state = LIQUID color = "#78FFF0" pH = 9.2 + value = REAGENT_VALUE_RARE /datum/reagent/drug/aranesp/on_mob_life(mob/living/carbon/M) var/high_message = pick("You feel amped up.", "You feel ready.", "You feel like you can push it to the limit.") @@ -378,6 +382,7 @@ addiction_threshold = 10 overdose_threshold = 20 pH = 10.5 + value = REAGENT_VALUE_RARE /datum/reagent/drug/happiness/on_mob_add(mob/living/L) ..() @@ -457,10 +462,11 @@ addiction_stage3_end = 40 addiction_stage4_end = 240 pH = 12.5 + value = REAGENT_VALUE_EXCEPTIONAL /datum/reagent/drug/skooma/on_mob_metabolize(mob/living/L) . = ..() - L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING)) + L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/skooma) L.next_move_modifier *= 2 if(ishuman(L)) var/mob/living/carbon/human/H = L @@ -473,7 +479,7 @@ /datum/reagent/drug/skooma/on_mob_end_metabolize(mob/living/L) . = ..() - L.remove_movespeed_modifier(type) + L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/skooma) L.next_move_modifier *= 0.5 if(ishuman(L)) var/mob/living/carbon/human/H = L @@ -521,3 +527,35 @@ if(prob(40)) M.emote(pick("twitch","drool","moan")) ..() + +/datum/reagent/syndicateadrenals + name = "Syndicate Adrenaline" + description = "Regenerates your stamina and increases your reaction time." + color = "#E62111" + overdose_threshold = 6 + value = REAGENT_VALUE_VERY_RARE + +/datum/reagent/syndicateadrenals/on_mob_life(mob/living/M) + M.adjustStaminaLoss(-5*REM) + . = ..() + +/datum/reagent/syndicateadrenals/on_mob_metabolize(mob/living/M) + . = ..() + if(istype(M)) + M.next_move_modifier *= 0.5 + to_chat(M, "You feel an intense surge of energy rushing through your veins.") + +/datum/reagent/syndicateadrenals/on_mob_end_metabolize(mob/living/M) + . = ..() + if(istype(M)) + M.next_move_modifier *= 2 + to_chat(M, "You feel as though the world around you is going faster.") + +/datum/reagent/syndicateadrenals/overdose_start(mob/living/M) + to_chat(M, "You feel an intense pain in your chest...") + +/datum/reagent/syndicateadrenals/overdose_process(mob/living/M) + if(iscarbon(M)) + var/mob/living/carbon/C = M + if(!C.undergoing_cardiac_arrest()) + C.set_heartattack(TRUE) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 819af8513f..c7ff3f01c9 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -11,7 +11,7 @@ name = "Consumable" taste_description = "generic food" taste_mult = 4 - value = 0.1 + value = REAGENT_VALUE_VERY_COMMON var/nutriment_factor = 1 * REAGENTS_METABOLISM var/quality = 0 //affects mood, typically higher for mixed drinks with more complex recipes @@ -41,7 +41,7 @@ name = "Nutriment" description = "All the vitamins, minerals, and carbohydrates the body needs in pure form." reagent_state = SOLID - nutriment_factor = 15 * REAGENTS_METABOLISM + nutriment_factor = 10 * REAGENTS_METABOLISM color = "#664330" // rgb: 102, 67, 48 var/brute_heal = 1 @@ -90,8 +90,8 @@ /datum/reagent/consumable/nutriment/vitamin name = "Vitamin" description = "All the best vitamins, minerals, and carbohydrates the body needs in pure form." - value = 0.5 - + value = REAGENT_VALUE_COMMON + nutriment_factor = 15 * REAGENTS_METABOLISM //The are the best food for you! brute_heal = 1 burn_heal = 1 @@ -105,9 +105,9 @@ description = "A variety of cooking oil derived from fat or plants. Used in food preparation and frying." color = "#EADD6B" //RGB: 234, 221, 107 (based off of canola oil) taste_mult = 0.8 - value = 1 + value = REAGENT_VALUE_COMMON taste_description = "oil" - nutriment_factor = 7 * REAGENTS_METABOLISM //Not very healthy on its own + nutriment_factor = 5 * REAGENTS_METABOLISM //Not very healthy on its own metabolization_rate = 10 * REAGENTS_METABOLISM var/fry_temperature = 450 //Around ~350 F (117 C) which deep fryers operate around in the real world var/boiling //Used in mob life to determine if the oil kills, and only on touch application @@ -151,11 +151,11 @@ reagent_state = SOLID color = "#FFFFFF" // rgb: 255, 255, 255 taste_mult = 1.5 // stop sugar drowning out other flavours - nutriment_factor = 5 * REAGENTS_METABOLISM + nutriment_factor = 3 * REAGENTS_METABOLISM metabolization_rate = 2 * REAGENTS_METABOLISM overdose_threshold = 200 // Hyperglycaemic shock taste_description = "sweetness" - value = 1 + value = REAGENT_VALUE_NONE /datum/reagent/consumable/sugar/overdose_start(mob/living/M) to_chat(M, "You go into hyperglycaemic shock! Lay off the twinkies!") @@ -177,21 +177,21 @@ /datum/reagent/consumable/soysauce name = "Soysauce" description = "A salty sauce made from the soy plant." - nutriment_factor = 2 * REAGENTS_METABOLISM color = "#792300" // rgb: 121, 35, 0 taste_description = "umami" + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/ketchup name = "Ketchup" description = "Ketchup, catsup, whatever. It's tomato paste." - nutriment_factor = 5 * REAGENTS_METABOLISM + nutriment_factor = 3 * REAGENTS_METABOLISM color = "#731008" // rgb: 115, 16, 8 taste_description = "ketchup" /datum/reagent/consumable/mustard name = "Mustard" description = "Mustard, mostly used on hotdogs, corndogs and burgers." - nutriment_factor = 5 * REAGENTS_METABOLISM + nutriment_factor = 3 * REAGENTS_METABOLISM color = "#DDED26" // rgb: 221, 237, 38 taste_description = "mustard" @@ -231,7 +231,7 @@ description = "A special oil that noticably chills the body. Extracted from Icepeppers and slimes." color = "#8BA6E9" // rgb: 139, 166, 233 taste_description = "mint" - value = 2 + value = REAGENT_VALUE_COMMON pH = 13 //HMM! I wonder /datum/reagent/consumable/frostoil/on_mob_life(mob/living/carbon/M) @@ -376,14 +376,13 @@ name = "Coco Powder" description = "A fatty, bitter paste made from coco beans." reagent_state = SOLID - nutriment_factor = 5 * REAGENTS_METABOLISM + nutriment_factor = 3 * REAGENTS_METABOLISM color = "#302000" // rgb: 48, 32, 0 taste_description = "bitterness" /datum/reagent/consumable/hot_coco name = "Hot Chocolate" description = "Made with love! And coco beans." - nutriment_factor = 3 * REAGENTS_METABOLISM color = "#660000" // rgb: 221, 202, 134 taste_description = "creamy chocolate" glass_icon_state = "chocolateglass" @@ -401,6 +400,7 @@ metabolization_rate = 0.2 * REAGENTS_METABOLISM taste_description = "mushroom" pH = 11 + value = REAGENT_VALUE_COMMON /datum/reagent/drug/mushroomhallucinogen/on_mob_life(mob/living/carbon/M) M.slurring = max(M.slurring,50) @@ -431,6 +431,7 @@ color = "#FEFEFE" taste_description = "garlic" metabolization_rate = 0.15 * REAGENTS_METABOLISM + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/garlic/on_mob_life(mob/living/carbon/M) if(isvampire(M)) //incapacitating but not lethal. Unfortunately, vampires cannot vomit. @@ -461,7 +462,7 @@ M.emote("scream") if(prob(min(5, current_cycle)) && iscarbon(M)) var/mob/living/carbon/C - C.vomit() + C.vomit() if(INJECT) if(prob(min(20, current_cycle))) to_chat(M, "You feel like your veins are boiling!") @@ -470,10 +471,10 @@ ..() /datum/reagent/consumable/sprinkles name = "Sprinkles" - value = 3 description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops." color = "#FF00FF" // rgb: 255, 0, 255 taste_description = "childhood whimsy" + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/sprinkles/on_mob_life(mob/living/carbon/M) if(M.mind && HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM)) @@ -485,15 +486,15 @@ name = "Peanut Butter" description = "A popular food paste made from ground dry-roasted peanuts." color = "#C29261" - value = 3 - nutriment_factor = 15 * REAGENTS_METABOLISM + value = REAGENT_VALUE_UNCOMMON + nutriment_factor = 10 * REAGENTS_METABOLISM taste_description = "peanuts" /datum/reagent/consumable/cornoil name = "Corn Oil" description = "An oil derived from various types of corn." - nutriment_factor = 20 * REAGENTS_METABOLISM - value = 4 + nutriment_factor = 12 * REAGENTS_METABOLISM + value = REAGENT_VALUE_UNCOMMON color = "#302000" // rgb: 48, 32, 0 taste_description = "slime" @@ -511,7 +512,7 @@ /datum/reagent/consumable/enzyme name = "Universal Enzyme" - value = 1 + value = REAGENT_VALUE_COMMON description = "A universal enzyme used in the preperation of certain chemicals and foods." color = "#365E30" // rgb: 54, 94, 48 taste_description = "sweetness" @@ -547,7 +548,6 @@ /datum/reagent/consumable/flour name = "Flour" - value = 0.5 description = "This is what you rub all over yourself to pretend to be a ghost." reagent_state = SOLID color = "#FFFFFF" // rgb: 0, 0, 0 @@ -564,19 +564,18 @@ name = "Cherry Jelly" description = "Totally the best. Only to be spread on foods with excellent lateral symmetry." color = "#801E28" // rgb: 128, 30, 40 - value = 1 + value = REAGENT_VALUE_COMMON taste_description = "cherry" /datum/reagent/consumable/bluecherryjelly name = "Blue Cherry Jelly" description = "Blue and tastier kind of cherry jelly." color = "#00F0FF" - value = 12 + value = REAGENT_VALUE_UNCOMMON taste_description = "blue cherry" /datum/reagent/consumable/rice name = "Rice" - value = 0.5 description = "tiny nutritious grains" reagent_state = SOLID nutriment_factor = 3 * REAGENTS_METABOLISM @@ -585,7 +584,7 @@ /datum/reagent/consumable/vanilla name = "Vanilla Powder" - value = 1 + value = REAGENT_VALUE_UNCOMMON description = "A fatty, bitter paste made from vanilla pods." reagent_state = SOLID nutriment_factor = 5 * REAGENTS_METABOLISM @@ -594,7 +593,6 @@ /datum/reagent/consumable/eggyolk name = "Egg Yolk" - value = 1 description = "It's full of protein." nutriment_factor = 3 * REAGENTS_METABOLISM color = "#FFB500" @@ -602,14 +600,13 @@ /datum/reagent/consumable/corn_starch name = "Corn Starch" - value = 2 description = "A slippery solution." color = "#f7f6e4" taste_description = "slime" /datum/reagent/consumable/corn_syrup name = "Corn Syrup" - value = 1 + value = REAGENT_VALUE_UNCOMMON description = "Decays into sugar." color = "#fff882" metabolization_rate = 3 * REAGENTS_METABOLISM @@ -623,8 +620,8 @@ name = "honey" description = "Sweet sweet honey that decays into sugar. Has antibacterial and natural healing properties." color = "#d3a308" - value = 15 - nutriment_factor = 15 * REAGENTS_METABOLISM + value = REAGENT_VALUE_COMMON + nutriment_factor = 10 * REAGENTS_METABOLISM metabolization_rate = 1 * REAGENTS_METABOLISM taste_description = "sweetness" @@ -651,6 +648,7 @@ color = "#DFDFDF" value = 5 taste_description = "mayonnaise" + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/tearjuice name = "Tear Juice" @@ -658,6 +656,7 @@ color = "#c0c9a0" taste_description = "bitterness" pH = 5 + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/tearjuice/reaction_mob(mob/living/M, method=TOUCH, reac_volume) if(!istype(M)) @@ -694,8 +693,9 @@ name = "Stabilized Nutriment" description = "A bioengineered protien-nutrient structure designed to decompose in high saturation. In layman's terms, it won't get you fat." reagent_state = SOLID - nutriment_factor = 15 * REAGENTS_METABOLISM + nutriment_factor = 12 * REAGENTS_METABOLISM color = "#664330" // rgb: 102, 67, 48 + value = REAGENT_VALUE_RARE /datum/reagent/consumable/nutriment/stabilized/on_mob_life(mob/living/carbon/M) if(M.nutrition > NUTRITION_LEVEL_FULL - 25) @@ -711,6 +711,7 @@ color = "#1d043d" taste_description = "bitter mushroom" pH = 12 + value = REAGENT_VALUE_RARE /datum/reagent/consumable/entpoly/on_mob_life(mob/living/carbon/M) if(current_cycle >= 10) @@ -731,6 +732,7 @@ color = "#b5a213" taste_description = "tingling mushroom" pH = 11.2 + value = REAGENT_VALUE_RARE /datum/reagent/consumable/tinlux/reaction_mob(mob/living/M) M.set_light(2) @@ -745,6 +747,7 @@ nutriment_factor = 3 * REAGENTS_METABOLISM taste_description = "fruity mushroom" pH = 10.4 + value = REAGENT_VALUE_RARE /datum/reagent/consumable/vitfro/on_mob_life(mob/living/carbon/M) if(prob(80)) @@ -805,11 +808,12 @@ /datum/reagent/consumable/caramel name = "Caramel" description = "Who would have guessed that heated sugar could be so delicious?" - nutriment_factor = 10 * REAGENTS_METABOLISM + nutriment_factor = 4 * REAGENTS_METABOLISM color = "#D98736" taste_mult = 2 taste_description = "caramel" reagent_state = SOLID + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/secretsauce name = "secret sauce" @@ -820,6 +824,7 @@ taste_mult = 100 can_synth = FALSE pH = 6.1 + value = REAGENT_VALUE_AMAZING /datum/reagent/consumable/secretsauce/reaction_obj(obj/O, reac_volume) //splashing any amount above or equal to 1u of secret sauce onto a piece of food turns its quality to 100 @@ -840,6 +845,7 @@ taste_mult = 6 taste_description = "smoke" overdose_threshold = 25 + value = REAGENT_VALUE_COMMON /datum/reagent/consumable/char/overdose_process(mob/living/carbon/M) if(prob(10)) @@ -852,3 +858,4 @@ color = "#78280A" // rgb: 120 40, 10 taste_mult = 2.5 //sugar's 1.5, capsacin's 1.5, so a good middle ground. taste_description = "smokey sweetness" + value = REAGENT_VALUE_COMMON diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index ecceb6e8bf..e4973dd2d5 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -7,8 +7,8 @@ /datum/reagent/medicine name = "Medicine" - value = 2 taste_description = "bitterness" + value = REAGENT_VALUE_VERY_COMMON //Low prices, spess medical companies are cheapstakes and products are taxed honk... /datum/reagent/medicine/on_mob_life(mob/living/carbon/M) current_cycle++ @@ -19,6 +19,7 @@ description = "Leporazine will effectively regulate a patient's body temperature, ensuring it never leaves safe levels." pH = 8.4 color = "#82b8aa" + value = REAGENT_VALUE_COMMON /datum/reagent/medicine/leporazine/on_mob_life(mob/living/carbon/M) if(M.bodytemperature > BODYTEMP_NORMAL) @@ -33,6 +34,7 @@ color = "#ffffff" can_synth = FALSE taste_description = "badmins" + value = REAGENT_VALUE_GLORIOUS /datum/reagent/medicine/adminordrazine/on_mob_life(mob/living/carbon/M) M.reagents.remove_all_type(/datum/reagent/toxin, 5*REM, 0, 1) @@ -101,6 +103,7 @@ description = "Reduces drowsiness, hallucinations, and Histamine from body." color = "#EC536D" // rgb: 236, 83, 109 pH = 5.2 + value = REAGENT_VALUE_COMMON /datum/reagent/medicine/synaphydramine/on_mob_life(mob/living/carbon/M) M.drowsyness = max(M.drowsyness-5, 0) @@ -131,6 +134,7 @@ color = "#0000C8" taste_description = "sludge" pH = 11 + value = REAGENT_VALUE_COMMON /datum/reagent/medicine/cryoxadone/on_mob_life(mob/living/carbon/M) var/power = -0.00003 * (M.bodytemperature ** 2) + 3 @@ -152,6 +156,7 @@ taste_description = "muscle" metabolization_rate = 1.5 * REAGENTS_METABOLISM pH = 13 + value = REAGENT_VALUE_COMMON /datum/reagent/medicine/clonexadone/on_mob_life(mob/living/carbon/M) if(M.bodytemperature < T0C) @@ -167,6 +172,7 @@ color = "#f7832a" taste_description = "spicy jelly" pH = 12 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/medicine/pyroxadone/on_mob_life(mob/living/carbon/M) if(M.bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT) @@ -198,7 +204,7 @@ overdose_threshold = 30 taste_description = "fish" pH = 12.2 - value = 20 + value = REAGENT_VALUE_RARE /datum/reagent/medicine/rezadone/on_mob_life(mob/living/carbon/M) M.setCloneLoss(0) //Rezadone is almost never used in favor of cryoxadone. Hopefully this will change that. @@ -239,7 +245,13 @@ color = "#ffeac9" metabolization_rate = 5 * REAGENTS_METABOLISM overdose_threshold = 50 - value = 3 + +/datum/reagent/medicine/silver_sulfadiazine/reaction_obj(obj/O, reac_volume) + if(istype(O, /obj/item/stack/medical/gauze)) + var/obj/item/stack/medical/gauze/G = O + reac_volume = min((reac_volume / 10), G.amount) + new/obj/item/stack/medical/ointment(get_turf(G), reac_volume) + G.use(reac_volume) /datum/reagent/medicine/silver_sulfadiazine/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1) if(iscarbon(M) && M.stat != DEAD) @@ -277,7 +289,7 @@ metabolization_rate = 0.5 * REAGENTS_METABOLISM overdose_threshold = 25 pH = 10.7 - value = 4 + value = REAGENT_VALUE_COMMON /datum/reagent/medicine/oxandrolone/on_mob_life(mob/living/carbon/M) if(M.getFireLoss() > 25) @@ -301,7 +313,6 @@ pH = 6.7 metabolization_rate = 5 * REAGENTS_METABOLISM overdose_threshold = 50 - value = 3 /datum/reagent/medicine/styptic_powder/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1) if(iscarbon(M) && M.stat != DEAD) @@ -317,6 +328,12 @@ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) ..() +/datum/reagent/medicine/styptic_powder/reaction_obj(obj/O, reac_volume) + if(istype(O, /obj/item/stack/medical/gauze)) + var/obj/item/stack/medical/gauze/G = O + reac_volume = min((reac_volume / 10), G.amount) + new/obj/item/stack/medical/bruise_pack(get_turf(G), reac_volume) + G.use(reac_volume) /datum/reagent/medicine/styptic_powder/on_mob_life(mob/living/carbon/M) M.adjustBruteLoss(-2*REM, 0) @@ -343,7 +360,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) var/last_added = 0 var/maximum_reachable = BLOOD_VOLUME_NORMAL - 10 //So that normal blood regeneration can continue with salglu active pH = 5.5 - value = 1 /datum/reagent/medicine/salglu_solution/on_mob_life(mob/living/carbon/M) if((HAS_TRAIT(M, TRAIT_NOMARROW))) @@ -384,6 +400,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) color = "#6D6374" metabolization_rate = 0.4 * REAGENTS_METABOLISM pH = 2.6 + value = REAGENT_VALUE_COMMON /datum/reagent/medicine/mine_salve/on_mob_life(mob/living/carbon/C) C.hal_screwyhud = SCREWYHUD_HEALTHY @@ -424,7 +441,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) pH = 11.5 metabolization_rate = 5 * REAGENTS_METABOLISM overdose_threshold = 40 - value = 6 + value = REAGENT_VALUE_COMMON /datum/reagent/medicine/synthflesh/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1) if(iscarbon(M)) @@ -461,7 +478,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) metabolization_rate = 0.5 * REAGENTS_METABOLISM taste_description = "ash" pH = 5 - value = 1 /datum/reagent/medicine/charcoal/on_mob_life(mob/living/carbon/M) M.adjustToxLoss(-2*REM, 0) @@ -480,7 +496,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) metabolization_rate = 0.25 * REAGENTS_METABOLISM overdose_threshold = 30 pH = 2 - value = 5 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/medicine/omnizine/on_mob_life(mob/living/carbon/M) M.adjustToxLoss(-0.5*REM, 0) @@ -537,6 +553,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) color = "#003153" // RGB 0, 49, 83 metabolization_rate = 0.5 * REAGENTS_METABOLISM pH = 8.9 + value = REAGENT_VALUE_COMMON //uncraftable /datum/reagent/medicine/prussian_blue/on_mob_life(mob/living/carbon/M) if(M.radiation > 0) @@ -550,6 +567,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) color = "#E6FFF0" metabolization_rate = 0.5 * REAGENTS_METABOLISM pH = 1 //One of the best buffers, NEVERMIND! + value = REAGENT_VALUE_UNCOMMON var/healtoxinlover = FALSE /datum/reagent/medicine/pen_acid/on_mob_life(mob/living/carbon/M) @@ -568,6 +586,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) color = "#91D865" healtoxinlover = TRUE pH = 12//invert + value = REAGENT_VALUE_RARE /datum/reagent/medicine/sal_acid name = "Salicyclic Acid" @@ -577,6 +596,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) metabolization_rate = 0.5 * REAGENTS_METABOLISM overdose_threshold = 25 pH = 2.1 + value = REAGENT_VALUE_COMMON /datum/reagent/medicine/sal_acid/on_mob_life(mob/living/carbon/M) @@ -688,6 +708,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) color = "#64FFE6" metabolization_rate = 0.5 * REAGENTS_METABOLISM pH = 11.5 + value = REAGENT_VALUE_COMMON /datum/reagent/medicine/diphenhydramine/on_mob_life(mob/living/carbon/M) if(prob(10)) @@ -708,10 +729,10 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/morphine/on_mob_metabolize(mob/living/L) ..() - L.ignore_slowdown(type) + L.add_movespeed_mod_immunities(type, list(/datum/movespeed_modifier/damage_slowdown, /datum/movespeed_modifier/damage_slowdown_flying, /datum/movespeed_modifier/monkey_health_speedmod)) /datum/reagent/medicine/morphine/on_mob_end_metabolize(mob/living/L) - L.unignore_slowdown(type) + L.remove_movespeed_mod_immunities(type, list(/datum/movespeed_modifier/damage_slowdown, /datum/movespeed_modifier/damage_slowdown_flying, /datum/movespeed_modifier/monkey_health_speedmod)) ..() /datum/reagent/medicine/morphine/on_mob_life(mob/living/carbon/M) @@ -803,6 +824,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) metabolization_rate = 0.25 * REAGENTS_METABOLISM overdose_threshold = 35 pH = 12 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/medicine/atropine/on_mob_life(mob/living/carbon/M) if(M.health < 0) @@ -867,6 +889,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) metabolization_rate = 0.5 * REAGENTS_METABOLISM taste_description = "magnets" pH = 0 + value = REAGENT_VALUE_RARE /datum/reagent/medicine/strange_reagent/reaction_mob(mob/living/M, method=TOUCH, reac_volume) if(M.stat == DEAD) @@ -990,14 +1013,15 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) metabolization_rate = 0.5 * REAGENTS_METABOLISM overdose_threshold = 60 pH = 8.7 + value = REAGENT_VALUE_RARE /datum/reagent/medicine/stimulants/on_mob_metabolize(mob/living/L) ..() - L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-0.5, blacklisted_movetypes=(FLYING|FLOATING)) + L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/stimulants) ADD_TRAIT(L, TRAIT_TASED_RESISTANCE, type) /datum/reagent/medicine/stimulants/on_mob_end_metabolize(mob/living/L) - L.remove_movespeed_modifier(type) + L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/stimulants) REMOVE_TRAIT(L, TRAIT_TASED_RESISTANCE, type) ..() @@ -1154,6 +1178,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) reagent_state = LIQUID color = "#91D865" taste_description = "jelly" + value = REAGENT_VALUE_COMMON /datum/reagent/medicine/regen_jelly/on_mob_life(mob/living/carbon/M) M.adjustBruteLoss(-1.5*REM, FALSE) @@ -1169,6 +1194,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) reagent_state = SOLID color = "#555555" pH = 11 + value = REAGENT_VALUE_EXCEPTIONAL /datum/reagent/medicine/syndicate_nanites/on_mob_life(mob/living/carbon/M) M.adjustBruteLoss(-5*REM, FALSE) //A ton of healing - this is a 50 telecrystal investment. @@ -1189,6 +1215,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) reagent_state = SOLID color = "#555555" pH = 11 + value = REAGENT_VALUE_VERY_RARE /datum/reagent/medicine/lesser_syndicate_nanites/on_mob_life(mob/living/carbon/M) M.adjustBruteLoss(-3*REM, FALSE) // hidden gold shh @@ -1212,6 +1239,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) overdose_threshold = 30 taste_description = "jelly" pH = 11.8 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/medicine/neo_jelly/on_mob_life(mob/living/carbon/M) M.adjustBruteLoss(-1.5*REM, FALSE) @@ -1234,6 +1262,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) color = rgb(255, 175, 0) overdose_threshold = 25 pH = 11 + value = REAGENT_VALUE_COMMON //not any higher. Ambrosia is a milestone for hydroponics already. /datum/reagent/medicine/earthsblood/on_mob_life(mob/living/carbon/M) M.adjustBruteLoss(-3 * REM, FALSE) @@ -1261,6 +1290,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) color = "#27870a" metabolization_rate = 0.4 * REAGENTS_METABOLISM pH = 4.3 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/medicine/haloperidol/on_mob_life(mob/living/carbon/M) for(var/datum/reagent/drug/R in M.reagents.reagent_list) @@ -1283,6 +1313,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) overdose_threshold = 3 //To prevent people stacking massive amounts of a very strong healing reagent can_synth = FALSE pH = 14 + value = REAGENT_VALUE_AMAZING /datum/reagent/medicine/lavaland_extract/on_mob_life(mob/living/carbon/M) M.heal_bodypart_damage(5,5) @@ -1302,6 +1333,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) description = "Reduces the duration of unconciousness, knockdown and stuns. Restores stamina, but deals toxin damage when overdosed." color = "#918e53" overdose_threshold = 30 + value = REAGENT_VALUE_VERY_RARE /datum/reagent/medicine/changelingadrenaline/on_mob_metabolize(mob/living/L) ..() @@ -1329,13 +1361,14 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) description = "Drastically increases movement speed, but deals toxin damage." color = "#669153" metabolization_rate = 1 + value = REAGENT_VALUE_VERY_RARE /datum/reagent/medicine/changelinghaste/on_mob_metabolize(mob/living/L) ..() - L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-2, blacklisted_movetypes=(FLYING|FLOATING)) + L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/changelinghaste) /datum/reagent/medicine/changelinghaste/on_mob_end_metabolize(mob/living/L) - L.remove_movespeed_modifier(type) + L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/changelinghaste) ..() /datum/reagent/medicine/changelinghaste/on_mob_life(mob/living/carbon/M) @@ -1365,14 +1398,15 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/muscle_stimulant name = "Muscle Stimulant" description = "A potent chemical that allows someone under its influence to be at full physical ability even when under massive amounts of pain." + value = REAGENT_VALUE_RARE /datum/reagent/medicine/muscle_stimulant/on_mob_metabolize(mob/living/M) . = ..() - M.ignore_slowdown(type) + M.add_movespeed_mod_immunities(type, list(/datum/movespeed_modifier/damage_slowdown, /datum/movespeed_modifier/damage_slowdown_flying, /datum/movespeed_modifier/monkey_health_speedmod)) /datum/reagent/medicine/muscle_stimulant/on_mob_end_metabolize(mob/living/M) . = ..() - M.unignore_slowdown(type) + M.remove_movespeed_mod_immunities(type, list(/datum/movespeed_modifier/damage_slowdown, /datum/movespeed_modifier/damage_slowdown_flying, /datum/movespeed_modifier/monkey_health_speedmod)) /datum/reagent/medicine/modafinil name = "Modafinil" @@ -1382,6 +1416,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) metabolization_rate = 0.1 * REAGENTS_METABOLISM overdose_threshold = 20 // with the random effects this might be awesome or might kill you at less than 10u (extensively tested) taste_description = "salt" // it actually does taste salty + value = REAGENT_VALUE_RARE var/overdose_progress = 0 // to track overdose progress pH = 7.89 @@ -1448,6 +1483,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) metabolization_rate = 0.25 * REAGENTS_METABOLISM overdose_threshold = 30 pH = 9.12 + value = REAGENT_VALUE_COMMON /datum/reagent/medicine/psicodine/on_mob_add(mob/living/L) ..() @@ -1480,6 +1516,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) reagent_state = SOLID color = "#FFFFD0" metabolization_rate = 1.5 * REAGENTS_METABOLISM + value = REAGENT_VALUE_UNCOMMON /datum/reagent/medicine/silibinin/on_mob_life(mob/living/carbon/M) M.adjustOrganLoss(ORGAN_SLOT_LIVER, -2)//Add a chance to cure liver trauma once implemented. @@ -1494,6 +1531,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) metabolization_rate = 0.25 * REAGENTS_METABOLISM overdose_threshold = 50 taste_description = "numbing bitterness" + value = REAGENT_VALUE_RARE /datum/reagent/medicine/polypyr/on_mob_life(mob/living/carbon/M) //I wanted a collection of small positive effects, this is as hard to obtain as coniine after all. M.adjustOrganLoss(ORGAN_SLOT_LUNGS, -0.25) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index e66ebc5f20..5fb27bd074 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1,7 +1,7 @@ /datum/reagent/blood data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_HUMAN, "blood_type"= null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null,"quirks"=null) name = "Blood" - value = 1 + value = REAGENT_VALUE_UNCOMMON // $$$ blood ""donations"" $$$ color = BLOOD_COLOR_HUMAN // rgb: 200, 0, 0 description = "Blood from some creature." metabolization_rate = 5 //fast rate so it disappears fast. @@ -140,8 +140,9 @@ data = list("donor"=null,"viruses"=null,"blood_DNA"="REPLICATED", "bloodcolor" = BLOOD_COLOR_SYNTHETIC, "blood_type"="SY","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) name = "Synthetic Blood" description = "A synthetically produced imitation of blood." - taste_description = "oily" + taste_description = "oil" color = BLOOD_COLOR_SYNTHETIC // rgb: 11, 7, 48 + value = REAGENT_VALUE_NONE /datum/reagent/blood/jellyblood data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_SLIME, "blood_type"="GEL","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) @@ -158,6 +159,7 @@ description = "This highly resembles blood, but it doesnt actually function like it, resembling more ketchup, with a more blood-like consistency." taste_description = "sap" //Like tree sap? pH = 7.45 + value = REAGENT_VALUE_NONE /datum/reagent/blood/jellyblood/on_mob_life(mob/living/carbon/M) if(prob(10)) @@ -271,9 +273,9 @@ /datum/reagent/water/reaction_obj(obj/O, reac_volume) O.extinguish() O.acid_level = 0 - // Monkey cube - if(istype(O, /obj/item/reagent_containers/food/snacks/monkeycube)) - var/obj/item/reagent_containers/food/snacks/monkeycube/cube = O + // cubes + if(istype(O, /obj/item/reagent_containers/food/snacks/cube)) + var/obj/item/reagent_containers/food/snacks/cube/cube = O cube.Expand() // Dehydrated carp @@ -387,6 +389,7 @@ description = "Something that shouldn't exist on this plane of existence." taste_description = "suffering" pH = 6.5 + value = REAGENT_VALUE_RARE /datum/reagent/fuel/unholywater/reaction_mob(mob/living/M, method=TOUCH, reac_volume) if(method == TOUCH || method == VAPOR) @@ -423,6 +426,7 @@ name = "Hell Water" description = "YOUR FLESH! IT BURNS!" taste_description = "burning" + value = REAGENT_VALUE_VERY_RARE /datum/reagent/hellwater/on_mob_life(mob/living/carbon/M) M.fire_stacks = min(5,M.fire_stacks + 3) @@ -437,6 +441,7 @@ name = "Zelus Oil" description = "Oil blessed by a greater being." taste_description = "metallic oil" + value = REAGENT_VALUE_RARE /datum/reagent/fuel/holyoil/on_mob_life(mob/living/carbon/M) if(is_servant_of_ratvar(M)) @@ -475,6 +480,7 @@ name = "Godblood" description = "Slowly heals all damage types. Has a rather high overdose threshold. Glows with mysterious power." overdose_threshold = 150 + value = REAGENT_VALUE_RARE /datum/reagent/lube name = "Space Lube" @@ -591,6 +597,7 @@ color = "#5EFF3B" //RGB: 94, 255, 59 metabolization_rate = INFINITY //So it instantly removes all of itself taste_description = "slime" + value = REAGENT_VALUE_RARE var/datum/species/race = /datum/species/human var/mutationtext = "The pain subsides. You feel... human." @@ -750,6 +757,7 @@ color = "#5EFF3B" //RGB: 94, 255, 59 taste_description = "slime" metabolization_rate = 0.2 + value = REAGENT_VALUE_RARE /datum/reagent/slime_toxin/on_mob_life(mob/living/carbon/human/H) ..() @@ -786,6 +794,7 @@ color = "#5EFF3B" //RGB: 94, 255, 59 metabolization_rate = INFINITY taste_description = "slime" + value = REAGENT_VALUE_RARE /datum/reagent/mulligan/on_mob_life(mob/living/carbon/human/H) ..() @@ -800,6 +809,7 @@ description = "An advanced corruptive toxin produced by slimes." color = "#13BC5E" // rgb: 19, 188, 94 taste_description = "slime" + value = REAGENT_VALUE_VERY_RARE /datum/reagent/aslimetoxin/reaction_mob(mob/living/L, method=TOUCH, reac_volume) if(method != TOUCH) @@ -811,6 +821,7 @@ color = "#5EFF3B" //RGB: 94, 255, 59 can_synth = FALSE taste_description = "decay" + value = REAGENT_VALUE_GLORIOUS /datum/reagent/gluttonytoxin/reaction_mob(mob/living/L, method=TOUCH, reac_volume) L.ForceContractDisease(new /datum/disease/transformation/morph(), FALSE, TRUE) @@ -1034,6 +1045,14 @@ // +20% success propability on each step, useful while operating in less-than-perfect conditions ..() +/datum/reagent/space_cleaner/sterilizine/reaction_obj(obj/O, reac_volume) + if(istype(O, /obj/item/stack/medical/gauze)) + var/obj/item/stack/medical/gauze/G = O + reac_volume = min((reac_volume / 10), G.amount) + new/obj/item/stack/medical/gauze/adv(get_turf(G), reac_volume) + G.use(reac_volume) + + /datum/reagent/iron name = "Iron" description = "Pure iron is a metal." @@ -1113,6 +1132,7 @@ color = "#0000CC" taste_description = "fizzling blue" pH = 12 + value = REAGENT_VALUE_RARE /datum/reagent/bluespace/reaction_mob(mob/living/M, method=TOUCH, reac_volume) if(method == TOUCH || method == VAPOR) @@ -1239,6 +1259,7 @@ metabolization_rate = 1.5 * REAGENTS_METABOLISM taste_description = "acid" pH = 2 + value = REAGENT_VALUE_RARE /datum/reagent/space_cleaner/ez_clean/on_mob_life(mob/living/carbon/M) M.adjustBruteLoss(3.33) @@ -1290,6 +1311,7 @@ color = "#535E66" // rgb: 83, 94, 102 can_synth = FALSE taste_description = "sludge" + value = REAGENT_VALUE_GLORIOUS /datum/reagent/nanomachines/reaction_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0) if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection)))) @@ -1301,6 +1323,7 @@ color = "#535E66" // rgb: 83, 94, 102 can_synth = FALSE taste_description = "sludge" + value = REAGENT_VALUE_GLORIOUS /datum/reagent/xenomicrobes/reaction_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0) if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection)))) @@ -1313,6 +1336,7 @@ can_synth = FALSE taste_description = "slime" pH = 11 + value = REAGENT_VALUE_GLORIOUS /datum/reagent/fungalspores/reaction_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0) if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection)))) @@ -1340,6 +1364,7 @@ color = "#664B63" // rgb: 102, 75, 99 taste_description = "metal" pH = 11.8 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/ammonia name = "Ammonia" @@ -1417,6 +1442,7 @@ metabolization_rate = 1.5 * REAGENTS_METABOLISM color = "E1A116" taste_description = "sourness" + value = REAGENT_VALUE_EXCEPTIONAL /datum/reagent/stimulum/on_mob_metabolize(mob/living/L) ..() @@ -1442,13 +1468,14 @@ color = "90560B" taste_description = "burning" pH = 2 + value = REAGENT_VALUE_VERY_RARE /datum/reagent/nitryl/on_mob_metabolize(mob/living/L) ..() - L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING)) + L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/nitryl) /datum/reagent/nitryl/on_mob_end_metabolize(mob/living/L) - L.remove_movespeed_modifier(type) + L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/nitryl) ..() /////////////////////////Coloured Crayon Powder//////////////////////////// @@ -1463,6 +1490,7 @@ color = "#FFFFFF" // rgb: 207, 54, 0 taste_description = "the back of class" no_mob_color = TRUE + value = REAGENT_VALUE_NONE /datum/reagent/colorful_reagent/crayonpowder/New() description = "\an [colorname] powder made by grinding down crayons, good for colouring chemical reagents." @@ -1633,6 +1661,7 @@ color = "#FFFF00" var/list/random_color_list = list("#00aedb","#a200ff","#f47835","#d41243","#d11141","#00b159","#00aedb","#f37735","#ffc425","#008744","#0057e7","#d62d20","#ffa700") taste_description = "rainbows" + value = REAGENT_VALUE_RARE var/no_mob_color = FALSE /datum/reagent/colorful_reagent/on_mob_life(mob/living/carbon/M) @@ -1662,6 +1691,7 @@ color = "#ff00dd" var/list/potential_colors = list("0ad","a0f","f73","d14","d14","0b5","0ad","f73","fc2","084","05e","d22","fa0") // fucking hair code taste_description = "sourness" + value = REAGENT_VALUE_RARE /datum/reagent/hair_dye/reaction_mob(mob/living/M, method=TOUCH, reac_volume) if(method == TOUCH || method == VAPOR) @@ -1677,6 +1707,7 @@ reagent_state = LIQUID color = "#fac34b" taste_description = "sourness" + value = REAGENT_VALUE_UNCOMMON /datum/reagent/barbers_aid/reaction_mob(mob/living/M, method=TOUCH, reac_volume) if(method == TOUCH || method == VAPOR) @@ -1694,6 +1725,7 @@ reagent_state = LIQUID color = "#ffaf00" taste_description = "sourness" + value = REAGENT_VALUE_RARE /datum/reagent/concentrated_barbers_aid/reaction_mob(mob/living/M, method=TOUCH, reac_volume) if(method == TOUCH || method == VAPOR) @@ -1726,6 +1758,7 @@ color = "#A70FFF" taste_description = "dryness" pH = 10.7 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/drying_agent/reaction_turf(turf/open/T, reac_volume) if(istype(T)) @@ -1863,6 +1896,7 @@ color = "#00ff80" taste_description = "strange honey" pH = 3 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/royal_bee_jelly/on_mob_life(mob/living/carbon/M) if(prob(2)) @@ -1884,6 +1918,7 @@ can_synth = FALSE taste_description = "brains" pH = 0.5 + value = REAGENT_VALUE_GLORIOUS /datum/reagent/romerol/reaction_mob(mob/living/carbon/human/H, method=TOUCH, reac_volume) // Silently add the zombie infection organ to be activated upon death @@ -1897,6 +1932,7 @@ description = "An experimental serum which causes rapid muscular growth in Hominidae. Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas." reagent_state = LIQUID color = "#00f041" + value = REAGENT_VALUE_EXCEPTIONAL /datum/reagent/magillitis/on_mob_life(mob/living/carbon/M) ..() @@ -1908,6 +1944,7 @@ description = "A commercial chemical designed to help older men in the bedroom."//not really it just makes you a giant color = "#ff0000"//strong red. rgb 255, 0, 0 var/current_size = RESIZE_DEFAULT_SIZE + value = REAGENT_VALUE_COMMON taste_description = "bitterness" // apparently what viagra tastes like /datum/reagent/growthserum/on_mob_life(mob/living/carbon/H) @@ -1978,6 +2015,7 @@ color = "#AAAAAA55" taste_description = "water" metabolization_rate = 0.25 * REAGENTS_METABOLISM + value = REAGENT_VALUE_RARE pH = 15 /datum/reagent/pax/on_mob_metabolize(mob/living/L) @@ -1994,6 +2032,7 @@ color = "#FAFF00" taste_description = "acrid cinnamon" metabolization_rate = 0.2 * REAGENTS_METABOLISM + value = REAGENT_VALUE_UNCOMMON /datum/reagent/bz_metabolites/on_mob_metabolize(mob/living/L) ..() @@ -2014,18 +2053,20 @@ name = "synth-pax" description = "A colorless liquid that suppresses violence on the subjects. Cheaper to synthetize, but wears out faster than normal Pax." metabolization_rate = 1.5 * REAGENTS_METABOLISM + value = REAGENT_VALUE_COMMON /datum/reagent/peaceborg_confuse name = "Dizzying Solution" description = "Makes the target off balance and dizzy" metabolization_rate = 1.5 * REAGENTS_METABOLISM taste_description = "dizziness" + value = REAGENT_VALUE_COMMON /datum/reagent/peaceborg_confuse/on_mob_life(mob/living/carbon/M) if(M.confused < 6) - M.confused = CLAMP(M.confused + 3, 0, 5) + M.confused = clamp(M.confused + 3, 0, 5) if(M.dizziness < 6) - M.dizziness = CLAMP(M.dizziness + 3, 0, 5) + M.dizziness = clamp(M.dizziness + 3, 0, 5) if(prob(20)) to_chat(M, "You feel confused and disorientated.") ..() @@ -2035,6 +2076,7 @@ description = "An extremely weak stamina-toxin that tires out the target. Completely harmless." metabolization_rate = 1.5 * REAGENTS_METABOLISM taste_description = "tiredness" + value = REAGENT_VALUE_COMMON /datum/reagent/peaceborg_tire/on_mob_life(mob/living/carbon/M) var/healthcomp = (100 - M.health) //DOES NOT ACCOUNT FOR ADMINBUS THINGS THAT MAKE YOU HAVE MORE THAN 200/210 HEALTH, OR SOMETHING OTHER THAN A HUMAN PROCESSING THIS. @@ -2050,6 +2092,7 @@ color = "#9A6750" //RGB: 154, 103, 80 taste_description = "inner peace" can_synth = FALSE + value = REAGENT_VALUE_GLORIOUS /datum/reagent/tranquility/reaction_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0) if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection)))) @@ -2060,6 +2103,7 @@ description = "The primary precursor for an ancient feline delicacy known as skooma. While it has no notable effects on it's own, mixing it with morphine in a chilled container may yield interesting results." color = "#FAEAFF" taste_description = "synthetic catnip" + value = REAGENT_VALUE_UNCOMMON /datum/reagent/moonsugar/on_mob_life(mob/living/carbon/M) if(prob(20)) @@ -2076,6 +2120,7 @@ var/datum/dna/original_dna var/reagent_ticks = 0 chemical_flags = REAGENT_INVISIBLE + value = REAGENT_VALUE_GLORIOUS /datum/reagent/changeling_string/on_mob_metabolize(mob/living/carbon/C) if(ishuman(C) && C.dna && data["desired_dna"]) @@ -2111,6 +2156,7 @@ taste_description = "grass" description = "A colorless liquid that makes people more peaceful and felines more happy." metabolization_rate = 1.75 * REAGENTS_METABOLISM + value = REAGENT_VALUE_COMMON /datum/reagent/pax/catnip/on_mob_life(mob/living/carbon/M) if(prob(20)) diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm index 939d5c9707..67ff61610d 100644 --- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm @@ -5,6 +5,7 @@ reagent_state = SOLID color = "#550000" taste_description = "sweet tasting metal" + value = REAGENT_VALUE_COMMON /datum/reagent/thermite/reaction_turf(turf/T, reac_volume) if(reac_volume >= 1) @@ -21,13 +22,14 @@ description = "Nitroglycerin is a heavy, colorless, oily, explosive liquid obtained by nitrating glycerol." color = "#808080" // rgb: 128, 128, 128 taste_description = "oil" + value = REAGENT_VALUE_EXCEPTIONAL /datum/reagent/stabilizing_agent name = "Stabilizing Agent" description = "Keeps unstable chemicals stable. This does not work on everything." reagent_state = LIQUID color = "#FFFF00" - value = 3 + value = REAGENT_VALUE_VERY_COMMON taste_description = "metal" /datum/reagent/clf3 @@ -37,6 +39,7 @@ color = "#FFC8C8" metabolization_rate = 4 taste_description = "burning" + value = REAGENT_VALUE_COMMON /datum/reagent/clf3/on_mob_life(mob/living/carbon/M) M.adjust_fire_stacks(2) @@ -79,13 +82,14 @@ reagent_state = LIQUID color = "#5A64C8" taste_description = "air and bitterness" + value = REAGENT_VALUE_UNCOMMON /datum/reagent/liquid_dark_matter name = "Liquid Dark Matter" description = "Sucks everything into the detonation point." reagent_state = LIQUID color = "#210021" - value = 10 + value = REAGENT_VALUE_UNCOMMON taste_description = "compressed bitterness" /datum/reagent/blackpowder @@ -93,9 +97,9 @@ description = "Explodes. Violently." reagent_state = LIQUID color = "#000000" - value = 5 metabolization_rate = 0.05 taste_description = "salt" + value = REAGENT_VALUE_RARE /datum/reagent/blackpowder/on_mob_life(mob/living/carbon/M) ..() @@ -115,6 +119,7 @@ reagent_state = LIQUID color = "#C8C8C8" taste_description = "salt" + value = REAGENT_VALUE_UNCOMMON /datum/reagent/smoke_powder name = "Smoke Powder" @@ -122,6 +127,7 @@ reagent_state = LIQUID color = "#C8C8C8" taste_description = "smoke" + value = REAGENT_VALUE_COMMON /datum/reagent/sonic_powder name = "Sonic Powder" @@ -129,6 +135,7 @@ reagent_state = LIQUID color = "#C8C8C8" taste_description = "loud noises" + value = REAGENT_VALUE_UNCOMMON /datum/reagent/phlogiston name = "Phlogiston" @@ -136,6 +143,7 @@ reagent_state = LIQUID color = "#FA00AF" taste_description = "burning" + value = REAGENT_VALUE_UNCOMMON /datum/reagent/phlogiston/reaction_mob(mob/living/M, method=TOUCH, reac_volume) M.adjust_fire_stacks(1) @@ -156,8 +164,8 @@ description = "Very flammable." reagent_state = LIQUID color = "#FA00AF" - value = 1 taste_description = "burning" + value = REAGENT_VALUE_COMMON /datum/reagent/napalm/on_mob_life(mob/living/carbon/M) M.adjust_fire_stacks(1) @@ -174,7 +182,7 @@ color = "#0000DC" metabolization_rate = 0.5 * REAGENTS_METABOLISM taste_description = "bitterness" - + value = REAGENT_VALUE_COMMON /datum/reagent/cryostylane/on_mob_life(mob/living/carbon/M) //TODO: code freezing into an ice cube if(M.reagents.has_reagent(/datum/reagent/oxygen)) @@ -193,6 +201,7 @@ color = "#64FAC8" metabolization_rate = 0.5 * REAGENTS_METABOLISM taste_description = "bitterness" + value = REAGENT_VALUE_COMMON /datum/reagent/pyrosium/on_mob_life(mob/living/carbon/M) if(M.reagents.has_reagent(/datum/reagent/oxygen)) @@ -208,6 +217,7 @@ metabolization_rate = 0.5 * REAGENTS_METABOLISM taste_description = "charged metal" var/shock_timer = 0 + value = REAGENT_VALUE_VERY_RARE /datum/reagent/teslium/on_mob_life(mob/living/carbon/M) shock_timer++ @@ -242,6 +252,7 @@ reagent_state = LIQUID color = "#A6FAFF55" taste_description = "the inside of a fire extinguisher" + value = REAGENT_VALUE_UNCOMMON /datum/reagent/firefighting_foam/reaction_turf(turf/open/T, reac_volume) if (!istype(T)) diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index bd79ed5fb8..3169d2d3aa 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -7,6 +7,7 @@ color = "#CF3600" // rgb: 207, 54, 0 taste_description = "bitterness" taste_mult = 1.2 + value = REAGENT_VALUE_COMMON //Encouraging people to mix toxins for reasons beyond harming each other or mixing reagents such as pen acid. var/toxpwr = 1.5 /datum/reagent/toxin/on_mob_life(mob/living/carbon/M) @@ -21,6 +22,7 @@ color = "#792300" // rgb: 121, 35, 0 toxpwr = 2.5 taste_description = "mushroom" + value = REAGENT_VALUE_UNCOMMON pH = 13 /datum/reagent/toxin/mutagen @@ -30,6 +32,7 @@ toxpwr = 0 taste_description = "slime" taste_mult = 0.9 + value = REAGENT_VALUE_VERY_COMMON pH = 2.3 /datum/reagent/toxin/mutagen/reaction_mob(mob/living/carbon/M, method=TOUCH, reac_volume) @@ -60,6 +63,7 @@ color = "#8228A0" toxpwr = 3 pH = 4 + value = REAGENT_VALUE_RARE //sheets are worth more /datum/reagent/toxin/plasma/on_mob_life(mob/living/carbon/C) if(holder.has_reagent(/datum/reagent/medicine/epinephrine)) @@ -92,6 +96,7 @@ toxpwr = 0 taste_description = "acid" pH = 1.2 + value = REAGENT_VALUE_RARE /datum/reagent/toxin/lexorin/on_mob_life(mob/living/carbon/C) . = TRUE @@ -114,6 +119,7 @@ taste_description = "slime" taste_mult = 1.3 pH = 10 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/toxin/slimejelly/on_mob_life(mob/living/carbon/M) if(prob(10)) @@ -132,6 +138,7 @@ toxpwr = 0 taste_description = "mint" pH = 8 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/toxin/minttoxin/on_mob_life(mob/living/carbon/M) if(HAS_TRAIT(M, TRAIT_FAT)) @@ -145,6 +152,7 @@ toxpwr = 2 taste_description = "fish" pH = 12 + value = REAGENT_VALUE_RARE /datum/reagent/toxin/zombiepowder name = "Zombie Powder" @@ -155,6 +163,7 @@ taste_description = "death" var/fakedeath_active = FALSE pH = 13 + value = REAGENT_VALUE_EXCEPTIONAL /datum/reagent/toxin/zombiepowder/on_mob_metabolize(mob/living/L) ..() @@ -193,6 +202,7 @@ toxpwr = 0.8 taste_description = "death" pH = 14.5 + value = REAGENT_VALUE_EXCEPTIONAL /datum/reagent/toxin/ghoulpowder/on_mob_metabolize(mob/living/L) ..() @@ -214,6 +224,7 @@ toxpwr = 0 taste_description = "sourness" pH = 11 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/toxin/mindbreaker/on_mob_life(mob/living/carbon/M) M.hallucination += 5 @@ -226,6 +237,7 @@ toxpwr = 1 taste_mult = 1 pH = 2.7 + value = REAGENT_VALUE_NONE /datum/reagent/toxin/plantbgone/reaction_obj(obj/O, reac_volume) if(istype(O, /obj/structure/alien/weeds)) @@ -250,6 +262,7 @@ description = "A harmful toxic mixture to kill weeds. Do not ingest!" color = "#4B004B" // rgb: 75, 0, 75 pH = 3 + value = REAGENT_VALUE_NONE /datum/reagent/toxin/pestkiller name = "Pest Killer" @@ -257,6 +270,7 @@ color = "#4B004B" // rgb: 75, 0, 75 toxpwr = 1 pH = 3.2 + value = REAGENT_VALUE_NONE /datum/reagent/toxin/pestkiller/reaction_mob(mob/living/M, method=TOUCH, reac_volume) ..() @@ -270,6 +284,7 @@ color = "#9ACD32" toxpwr = 1 pH = 11 + value = REAGENT_VALUE_RARE /datum/reagent/toxin/spore/on_mob_life(mob/living/carbon/C) C.damageoverlaytemp = 60 @@ -284,6 +299,7 @@ toxpwr = 0.5 taste_description = "burning" pH = 13 + value = REAGENT_VALUE_VERY_RARE /datum/reagent/toxin/spore_burning/on_mob_life(mob/living/carbon/M) M.adjust_fire_stacks(2) @@ -323,6 +339,7 @@ glass_name = "glass of beer" glass_desc = "A freezing pint of beer." pH = 2 + value = REAGENT_VALUE_VERY_RARE /datum/reagent/toxin/fakebeer/on_mob_life(mob/living/carbon/M) switch(current_cycle) @@ -340,6 +357,7 @@ color = "#5B2E0D" // rgb: 91, 46, 13 toxpwr = 0.5 pH = 4.2 + value = REAGENT_VALUE_VERY_COMMON /datum/reagent/toxin/teapowder name = "Ground Tea Leaves" @@ -348,6 +366,7 @@ color = "#7F8400" // rgb: 127, 132, 0 toxpwr = 0.5 pH = 4.9 + value = REAGENT_VALUE_VERY_COMMON /datum/reagent/toxin/mutetoxin //the new zombie powder. name = "Mute Toxin" @@ -367,6 +386,7 @@ color = "#6E2828" data = 15 toxpwr = 0 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/toxin/staminatoxin/on_mob_life(mob/living/carbon/M) M.adjustStaminaLoss(REM * data, 0) @@ -381,6 +401,7 @@ color = "#787878" metabolization_rate = 0.125 * REAGENTS_METABOLISM toxpwr = 0 + value = REAGENT_VALUE_VERY_RARE /datum/reagent/toxin/polonium/on_mob_life(mob/living/carbon/M) M.radiation += 4 @@ -394,6 +415,7 @@ metabolization_rate = 0.25 * REAGENTS_METABOLISM overdose_threshold = 30 toxpwr = 0 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/toxin/histamine/on_mob_life(mob/living/carbon/M) if(prob(50)) @@ -441,6 +463,7 @@ color = "#F0FFF0" metabolization_rate = 0.25 * REAGENTS_METABOLISM toxpwr = 0 + value = REAGENT_VALUE_VERY_RARE /datum/reagent/toxin/venom/on_mob_life(mob/living/carbon/M) toxpwr = 0.2*volume @@ -476,6 +499,7 @@ color = "#00B4FF" metabolization_rate = 0.125 * REAGENTS_METABOLISM toxpwr = 1.25 + value = REAGENT_VALUE_UNCOMMON /datum/reagent/toxin/cyanide/on_mob_life(mob/living/carbon/M) if(prob(5)) @@ -494,6 +518,7 @@ metabolization_rate = 0.25 * REAGENTS_METABOLISM toxpwr = 0.5 taste_description = "bad cooking" + value = REAGENT_VALUE_NONE /datum/reagent/toxin/condensed_cooking_oil name = "Condensed Cooking Oil" @@ -504,6 +529,7 @@ toxpwr = 0 taste_mult = -2 taste_description = "awful cooking" + value = REAGENT_VALUE_NONE /datum/reagent/toxin/condensed_cooking_oil/on_mob_life(mob/living/carbon/M) if(prob(5)) @@ -551,6 +577,7 @@ color = "#7F10C0" metabolization_rate = 0.5 * REAGENTS_METABOLISM toxpwr = 2.5 + value = REAGENT_VALUE_EXCEPTIONAL /datum/reagent/toxin/initropidril/on_mob_life(mob/living/carbon/C) if(prob(25)) @@ -582,6 +609,7 @@ metabolization_rate = 0.25 * REAGENTS_METABOLISM toxpwr = 0 taste_mult = 0 // undetectable, I guess? + value = REAGENT_VALUE_VERY_RARE /datum/reagent/toxin/pancuronium/on_mob_life(mob/living/carbon/M) if(current_cycle >= 10) @@ -598,6 +626,7 @@ color = "#6496FA" metabolization_rate = 0.75 * REAGENTS_METABOLISM toxpwr = 0 + value = REAGENT_VALUE_VERY_RARE /datum/reagent/toxin/sodium_thiopental/on_mob_life(mob/living/carbon/M) if(current_cycle >= 10) @@ -626,6 +655,7 @@ color = "#FFFFFF" toxpwr = 0 metabolization_rate = 0.5 * REAGENTS_METABOLISM + value = REAGENT_VALUE_RARE /datum/reagent/toxin/amanitin/on_mob_end_metabolize(mob/living/M) var/toxdamage = current_cycle*3*REM @@ -656,6 +686,7 @@ color = "#7DC3A0" metabolization_rate = 0.06 * REAGENTS_METABOLISM toxpwr = 1.75 + value = REAGENT_VALUE_EXCEPTIONAL /datum/reagent/toxin/coniine/on_mob_life(mob/living/carbon/M) M.losebreath += 5 @@ -670,6 +701,7 @@ overdose_threshold = 29 toxpwr = 0 taste_description = "vomit" + value = REAGENT_VALUE_VERY_RARE /datum/reagent/toxin/spewium/on_mob_life(mob/living/carbon/C) .=..() @@ -693,6 +725,7 @@ color = "#191919" metabolization_rate = 0.125 * REAGENTS_METABOLISM toxpwr = 1 + value = REAGENT_VALUE_VERY_RARE /datum/reagent/toxin/curare/on_mob_life(mob/living/carbon/M) if(current_cycle >= 11) @@ -708,6 +741,7 @@ color = "#C8C8C8" //RGB: 200, 200, 200 metabolization_rate = 0.2 * REAGENTS_METABOLISM toxpwr = 0 + value = REAGENT_VALUE_VERY_RARE /datum/reagent/toxin/heparin/on_mob_life(mob/living/carbon/M) if(ishuman(M)) @@ -726,6 +760,7 @@ metabolization_rate = 0.6 * REAGENTS_METABOLISM toxpwr = 0.5 taste_description = "spinning" + value = REAGENT_VALUE_VERY_RARE /datum/reagent/toxin/rotatium/on_mob_life(mob/living/carbon/M) if(M.hud_used) @@ -752,6 +787,7 @@ metabolization_rate = 0.8 * REAGENTS_METABOLISM toxpwr = 0.25 taste_description = "skewing" + value = REAGENT_VALUE_EXCEPTIONAL /datum/reagent/toxin/skewium/on_mob_life(mob/living/carbon/M) /* @@ -788,6 +824,7 @@ color = "#3C5133" metabolization_rate = 0.08 * REAGENTS_METABOLISM toxpwr = 0.15 + value = REAGENT_VALUE_VERY_RARE /datum/reagent/toxin/anacea/on_mob_life(mob/living/carbon/M) var/remove_amt = 5 @@ -809,6 +846,7 @@ taste_description = "acid" self_consuming = TRUE pH = 2.75 + value = REAGENT_VALUE_NONE /datum/reagent/toxin/acid/reaction_mob(mob/living/carbon/C, method=TOUCH, reac_volume) if(!istype(C)) @@ -840,6 +878,7 @@ color = "#5050FF" toxpwr = 2 acidpwr = 42.0 + value = REAGENT_VALUE_COMMON /datum/reagent/toxin/acid/fluacid/on_mob_life(mob/living/carbon/M) M.adjustFireLoss(current_cycle/10, 0) @@ -853,6 +892,7 @@ metabolization_rate = 0 //stays in the system until active. var/actual_metaboliztion_rate = REAGENTS_METABOLISM toxpwr = 0 + value = REAGENT_VALUE_VERY_RARE var/actual_toxpwr = 5 var/delay = 30 @@ -871,6 +911,7 @@ color = "#F0F8FF" // rgb: 240, 248, 255 toxpwr = 0 taste_description = "stillness" + value = REAGENT_VALUE_RARE /datum/reagent/toxin/mimesbane/on_mob_metabolize(mob/living/L) ADD_TRAIT(L, TRAIT_EMOTEMUTE, type) @@ -885,6 +926,7 @@ toxpwr = 0 taste_description = "bone hurting" overdose_threshold = 20 + value = REAGENT_VALUE_VERY_RARE //because it's very funny. /datum/reagent/toxin/bonehurtingjuice/on_mob_add(mob/living/carbon/M) M.say("oof ouch my bones", forced = /datum/reagent/toxin/bonehurtingjuice) @@ -944,6 +986,7 @@ toxpwr = 0 taste_description = "brain hurting" metabolization_rate = 5 + value = REAGENT_VALUE_EXCEPTIONAL /datum/reagent/toxin/brainhurtingjuice/on_mob_life(mob/living/carbon/M) if(prob(50)) @@ -962,6 +1005,7 @@ metabolization_rate = 0.5 * REAGENTS_METABOLISM toxpwr = 0 taste_description = "tannin" + value = REAGENT_VALUE_RARE /datum/reagent/toxin/bungotoxin/on_mob_life(mob/living/carbon/M) M.adjustOrganLoss(ORGAN_SLOT_HEART, 3) diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm index 0b32952d20..9cf9acb424 100644 --- a/code/modules/reagents/chemistry/recipes/medicine.dm +++ b/code/modules/reagents/chemistry/recipes/medicine.dm @@ -105,7 +105,7 @@ if(St.purity < 1) St.volume *= St.purity St.purity = 1 - var/amount = CLAMP(0.002, 0, N.volume) + var/amount = clamp(0.002, 0, N.volume) N.volume -= amount St.data["grown_volume"] = St.data["grown_volume"] + added_volume St.name = "[initial(St.name)] [round(St.data["grown_volume"], 0.1)]u colony" diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 2c8be10ace..8782d65f76 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -195,7 +195,7 @@ return holder.remove_reagent(/datum/reagent/sorium, multiplier*4) var/turf/T = get_turf(holder.my_atom) - var/range = CLAMP(sqrt(multiplier*4), 1, 6) + var/range = clamp(sqrt(multiplier*4), 1, 6) goonchem_vortex(T, 1, range) /datum/chemical_reaction/sorium_vortex @@ -206,7 +206,7 @@ /datum/chemical_reaction/sorium_vortex/on_reaction(datum/reagents/holder, multiplier) var/turf/T = get_turf(holder.my_atom) - var/range = CLAMP(sqrt(multiplier), 1, 6) + var/range = clamp(sqrt(multiplier), 1, 6) goonchem_vortex(T, 1, range) /datum/chemical_reaction/liquid_dark_matter @@ -220,7 +220,7 @@ return holder.remove_reagent(/datum/reagent/liquid_dark_matter, multiplier*3) var/turf/T = get_turf(holder.my_atom) - var/range = CLAMP(sqrt(multiplier*3), 1, 6) + var/range = clamp(sqrt(multiplier*3), 1, 6) goonchem_vortex(T, 0, range) /datum/chemical_reaction/ldm_vortex @@ -231,7 +231,7 @@ /datum/chemical_reaction/ldm_vortex/on_reaction(datum/reagents/holder, multiplier) var/turf/T = get_turf(holder.my_atom) - var/range = CLAMP(sqrt(multiplier/2), 1, 6) + var/range = clamp(sqrt(multiplier/2), 1, 6) goonchem_vortex(T, 0, range) /datum/chemical_reaction/flash_powder diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index eb473950d5..ead47e2a42 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -42,7 +42,7 @@ /datum/chemical_reaction/slime/slimemonkey/on_reaction(datum/reagents/holder) for(var/i in 1 to 3) - new /obj/item/reagent_containers/food/snacks/monkeycube(get_turf(holder.my_atom)) + new /obj/item/reagent_containers/food/snacks/cube/monkey(get_turf(holder.my_atom)) ..() //Green diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 89de7c409d..f326b94e44 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -185,7 +185,7 @@ START_PROCESSING(SSobj, src) else if((reagents.pH < -3) || (reagents.pH > 17)) visible_message("[icon2html(src, viewers(src))] \The [src] is damaged by the super pH and begins to deform!") - reagents.pH = CLAMP(reagents.pH, -3, 17) + reagents.pH = clamp(reagents.pH, -3, 17) container_HP -= 1 diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 800d66969d..368f476183 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -245,7 +245,6 @@ icon_state = "beakerbluespace" custom_materials = list(/datum/material/glass = 5000, /datum/material/plasma = 3000, /datum/material/diamond = 1000, /datum/material/bluespace = 1000) volume = 300 - material_flags = MATERIAL_NO_EFFECTS amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,20,25,30,50,100,300) container_HP = 5 diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 9555f5b64b..b24e6ab733 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -207,8 +207,8 @@ #define DELUXE_SELF_SPRAY 10 #define DELUXE_SELF_INJECT 10 -#define COMBAT_WAIT_SPRAY 0 -#define COMBAT_WAIT_INJECT 0 +#define COMBAT_WAIT_SPRAY 15 +#define COMBAT_WAIT_INJECT 15 #define COMBAT_SELF_SPRAY 0 #define COMBAT_SELF_INJECT 0 diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 62ca5d658e..7fea8250d9 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -66,7 +66,7 @@ /obj/item/reagent_containers/spray/proc/spray(atom/A) - var/range = CLAMP(get_dist(src, A), 1, current_range) + var/range = clamp(get_dist(src, A), 1, current_range) var/obj/effect/decal/chempuff/D = new /obj/effect/decal/chempuff(get_turf(src)) D.create_reagents(amount_per_transfer_from_this, NONE, NO_REAGENTS_VALUE) var/puff_reagent_left = range //how many turf, mob or dense objet we can react with before we consider the chem puff consumed diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index b8957775b1..1a2742d2a6 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -180,7 +180,7 @@ ///Used by update_icon() and update_overlays() /obj/item/reagent_containers/syringe/proc/get_rounded_vol() if(reagents && reagents.total_volume) - return CLAMP(round((reagents.total_volume / volume * 15),5), 1, 15) + return clamp(round((reagents.total_volume / volume * 15),5), 1, 15) else return 0 diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 1e687816ff..54ec327fdb 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -211,7 +211,6 @@ /obj/structure/reagent_dispensers/keg name = "keg" desc = "A keg." - icon = 'modular_citadel/icons/obj/objects.dmi' icon_state = "keg" /obj/structure/reagent_dispensers/keg/mead diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index d6ad1bf042..b47f0de032 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -57,7 +57,7 @@ return ..() /obj/structure/bigDelivery/relay_container_resist(mob/living/user, obj/O) - if(ismovableatom(loc)) + if(ismovable(loc)) var/atom/movable/AM = loc //can't unwrap the wrapped container if it's inside something. AM.relay_container_resist(user, O) return diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index f3ac118134..cfb6d92723 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -36,6 +36,9 @@ other types of metals and chemistry for reagents). var/dangerous_construction = FALSE //notify and log for admin investigations if this is printed. var/departmental_flags = ALL //bitflags for deplathes. var/list/datum/techweb_node/unlocked_by = list() + ///minimum and security levels the design can be printed on. Currently only available for rnd production machinery and mechfab. + var/min_security_level = SEC_LEVEL_GREEN + var/max_security_level = SEC_LEVEL_DELTA var/research_icon //Replaces the item icon in the research console var/research_icon_state var/icon_cache diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.dm index ee9ee14e4a..f8cf5c1d84 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.dm @@ -112,8 +112,8 @@ /datum/design/rcd_ammo_large name = "Large Compressed Matter Cartridge" id = "rcd_ammo_large" - build_type = AUTOLATHE | PROTOLATHE + build_type = AUTOLATHE | PROTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 48000, /datum/material/glass = 32000) build_path = /obj/item/rcd_ammo/large - category = list("Tool Designs") + category = list("hacked", "Construction", "Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm index 86e11010bc..78b0a365c5 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm @@ -74,3 +74,19 @@ materials = list(/datum/material/glass = 20) build_path = /obj/item/stock_parts/cell/emergency_light category = list("initial", "Electronics") + +/datum/design/electrochromatic_control + name = "Electrochromatic Control Circuit" + id = "electrochromatic_control_circuit" + build_type = AUTOLATHE + materials = list(/datum/material/iron = 100, /datum/material/glass = 100) + build_path = /obj/item/assembly/control/electrochromatic + category = list("initial", "Electronics") + +/datum/design/electrochromatic_kit + name = "Electrochromatic Upgrade Kit" + id = "electrochromatic_kit" + build_type = AUTOLATHE + materials = list(/datum/material/iron = 2010, /datum/material/glass = 5) + build_path = /obj/item/electronics/electrochromatic_kit + category = list("initial", "Electronics") diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm index b62f30e041..76ec6224b8 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm @@ -8,7 +8,7 @@ /datum/design/kitchen_knife name = "Kitchen Knife" id = "kitchen_knife" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 12000) build_path = /obj/item/kitchen/knife category = list("initial","Dinnerware") @@ -140,7 +140,7 @@ /datum/design/healthanalyzer name = "Health Analyzer" id = "healthanalyzer" - build_type = AUTOLATHE | PROTOLATHE + build_type = AUTOLATHE | PROTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 50) build_path = /obj/item/healthanalyzer category = list("initial", "Medical") diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm index 173240e196..20a5370793 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm @@ -36,7 +36,7 @@ /datum/design/large_welding_tool name = "Industrial Welding Tool" id = "large_welding_tool" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 70, /datum/material/glass = 60) build_path = /obj/item/weldingtool/largetank category = list("hacked", "Tools") @@ -44,7 +44,7 @@ /datum/design/flamethrower name = "Flamethrower" id = "flamethrower" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 500) build_path = /obj/item/flamethrower/full category = list("hacked", "Security") @@ -52,7 +52,7 @@ /datum/design/rcd name = "Rapid Construction Device (RCD)" id = "rcd" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 30000) build_path = /obj/item/construction/rcd category = list("hacked", "Construction") @@ -60,7 +60,7 @@ /datum/design/rpd name = "Rapid Pipe Dispenser (RPD)" id = "rpd" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 75000, /datum/material/glass = 37500) build_path = /obj/item/pipe_dispenser category = list("hacked", "Construction") @@ -68,7 +68,7 @@ /datum/design/handcuffs name = "Handcuffs" id = "handcuffs" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 500) build_path = /obj/item/restraints/handcuffs category = list("hacked", "Security") @@ -76,7 +76,7 @@ /datum/design/receiver name = "Modular Receiver" id = "receiver" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 15000) build_path = /obj/item/weaponcrafting/receiver category = list("hacked", "Security") @@ -84,7 +84,7 @@ /datum/design/shotgun_slug name = "Shotgun Slug" id = "shotgun_slug" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 4000) build_path = /obj/item/ammo_casing/shotgun category = list("hacked", "Security") @@ -92,7 +92,7 @@ /datum/design/buckshot_shell name = "Buckshot Shell" id = "buckshot_shell" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 4000) build_path = /obj/item/ammo_casing/shotgun/buckshot category = list("hacked", "Security") @@ -100,7 +100,7 @@ /datum/design/shotgun_dart name = "Shotgun Dart" id = "shotgun_dart" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 4000) build_path = /obj/item/ammo_casing/shotgun/dart category = list("hacked", "Security") @@ -108,7 +108,7 @@ /datum/design/incendiary_slug name = "Incendiary Slug" id = "incendiary_slug" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 4000) build_path = /obj/item/ammo_casing/shotgun/incendiary category = list("hacked", "Security") @@ -116,7 +116,7 @@ /datum/design/riot_dart name = "Foam Riot Dart" id = "riot_dart" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 1125) //Discount for making individually - no box = less metal! build_path = /obj/item/ammo_casing/caseless/foam_dart/riot category = list("hacked", "Security") @@ -124,7 +124,7 @@ /datum/design/riot_darts name = "Foam Riot Dart Box" id = "riot_darts" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 50000) //Comes with 40 darts build_path = /obj/item/ammo_box/foambox/riot category = list("hacked", "Security") @@ -132,7 +132,7 @@ /datum/design/a357 name = "Revolver Bullet (.357)" id = "a357" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 4000) build_path = /obj/item/ammo_casing/a357 category = list("hacked", "Security") @@ -140,7 +140,7 @@ /datum/design/a762 name = "Rifle Bullet (7.62mm)" id = "a762" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 5000) //need seclathe for clips build_path = /obj/item/ammo_casing/a762 category = list("hacked", "Security") @@ -148,7 +148,7 @@ /datum/design/c10mm name = "Ammo Box (10mm)" id = "c10mm" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 30000) build_path = /obj/item/ammo_box/c10mm category = list("hacked", "Security") @@ -156,7 +156,7 @@ /datum/design/c45 name = "Ammo Box (.45)" id = "c45" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 30000) build_path = /obj/item/ammo_box/c45 category = list("hacked", "Security") @@ -164,7 +164,7 @@ /datum/design/c9mm name = "Ammo Box (9mm)" id = "c9mm" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 30000) build_path = /obj/item/ammo_box/c9mm category = list("hacked", "Security") @@ -172,7 +172,7 @@ /datum/design/electropack name = "Electropack" id = "electropack" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 10000, /datum/material/glass = 2500) build_path = /obj/item/electropack category = list("hacked", "Security") @@ -180,7 +180,7 @@ /datum/design/cleaver name = "Butcher's Cleaver" id = "cleaver" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 18000) build_path = /obj/item/kitchen/knife/butcher category = list("hacked", "Dinnerware") diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm index 8288ceff23..f6c31a9808 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm @@ -49,7 +49,7 @@ /datum/design/multitool name = "Multitool" id = "multitool" - build_type = AUTOLATHE | PROTOLATHE + build_type = AUTOLATHE | PROTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 50, /datum/material/glass = 20) build_path = /obj/item/multitool category = list("initial","Tools","Tool Designs") @@ -75,7 +75,7 @@ /datum/design/weldingtool name = "Welding Tool" id = "welding_tool" - build_type = AUTOLATHE + build_type = AUTOLATHE | NO_PUBLIC_LATHE materials = list(/datum/material/iron = 70, /datum/material/glass = 20) build_path = /obj/item/weldingtool category = list("initial","Tools","Tool Designs") @@ -97,6 +97,7 @@ build_path = /obj/item/screwdriver category = list("initial","Tools","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + /datum/design/wirecutters name = "Wirecutters" id = "wirecutters" diff --git a/code/modules/research/designs/autoylathe_designs.dm b/code/modules/research/designs/autoylathe_designs.dm index 7811cfdaad..c2076db121 100644 --- a/code/modules/research/designs/autoylathe_designs.dm +++ b/code/modules/research/designs/autoylathe_designs.dm @@ -1,5 +1,5 @@ /datum/design/autoylathe - build_type = AUTOYLATHE + build_type = TOYLATHE /datum/design/autoylathe/mech category = list("initial", "Figurines") @@ -558,15 +558,16 @@ /datum/design/foam_x9 name = "Foam Force X9 Rifle" id = "foam_x9" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500) build_path = /obj/item/gun/ballistic/automatic/x9/toy category = list("initial", "Rifles") + build_type = TOYLATHE | NO_PUBLIC_LATHE /datum/design/foam_dart name = "Box of Foam Darts" id = "foam_dart" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 500, /datum/material/iron = 100) build_path = /obj/item/ammo_box/foambox category = list("initial", "Misc") @@ -574,7 +575,7 @@ /datum/design/foam_magpistol name = "Foam Force Magpistol" id = "magfoam_launcher" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 2000, /datum/material/iron = 250) build_path = /obj/item/gun/ballistic/shotgun/toy/mag category = list("initial", "Pistols") @@ -582,15 +583,16 @@ /datum/design/foam_magrifle name = "Foam Force MagRifle" id = "foam_magrifle" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500) build_path = /obj/item/gun/ballistic/automatic/toy/magrifle category = list("initial", "Rifles") + build_type = TOYLATHE | NO_PUBLIC_LATHE /datum/design/foam_hyperburst name = "MagTag Hyper Rifle" id = "foam_hyperburst" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 4000, /datum/material/iron = 2000, /datum/material/glass = 1000) build_path = /obj/item/gun/energy/laser/practice/hyperburst category = list("initial", "Rifles") @@ -598,7 +600,7 @@ /datum/design/foam_sp name = "Foam Force Stealth Pistol" id = "foam_sp" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 2000, /datum/material/iron = 1000) build_path = /obj/item/gun/ballistic/automatic/toy/pistol/stealth category = list("initial", "Pistols") @@ -606,7 +608,7 @@ /datum/design/toyray name = "RayTag Gun" id = "toyray" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 2000, /datum/material/iron = 1000, /datum/material/glass = 1000) build_path = /obj/item/gun/energy/laser/practice/raygun category = list("initial", "Pistols") @@ -614,15 +616,16 @@ /datum/design/am4c name = "Foam Force AM4-C Rifle" id = "foam_am4c" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500) build_path = /obj/item/gun/ballistic/automatic/AM4C category = list("initial", "Rifles") + build_type = TOYLATHE | NO_PUBLIC_LATHE /datum/design/foam_f3 name = "Replica F3 Justicar" id = "foam_f3" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 2000, /datum/material/iron = 250) build_path = /obj/item/toy/gun/justicar category = list("initial", "Pistols") @@ -630,7 +633,7 @@ /datum/design/toy_blaster name = "pump-action plastic blaster" id = "toy_blaster" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 2000, /datum/material/iron = 750, /datum/material/glass = 1000) build_path = /obj/item/gun/energy/pumpaction/toy category = list("initial", "Rifles") @@ -638,7 +641,7 @@ /datum/design/capammo name = "Box of Caps" id = "capammo" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/iron = 10, /datum/material/glass = 10) build_path = /obj/item/toy/ammo/gun category = list("initial", "Misc") @@ -646,15 +649,16 @@ /datum/design/foam_smg name = "Foam Force SMG" id = "foam_smg" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 2000, /datum/material/iron = 250) build_path = /obj/item/gun/ballistic/automatic/toy/unrestricted category = list("initial", "Pistols") + build_type = TOYLATHE | NO_PUBLIC_LATHE /datum/design/foam_pistol name = "Foam Force Pistol" id = "foam_pistol" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 2000, /datum/material/iron = 250) build_path = /obj/item/gun/ballistic/automatic/toy/pistol/unrestricted category = list("initial", "Pistols") @@ -662,7 +666,7 @@ /datum/design/foam_shotgun name = "Foam Force Shotgun" id = "foam_shotgun" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500) build_path = /obj/item/gun/ballistic/shotgun/toy/unrestricted category = list("initial", "Rifles") @@ -670,7 +674,7 @@ /datum/design/foam_dartred name = "Box of Lastag Red Foam Darts" id = "redfoam_dart" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 500, /datum/material/iron = 100) build_path = /obj/item/ammo_box/foambox/tag/red category = list("initial", "Misc") @@ -678,7 +682,7 @@ /datum/design/foam_dartblue name = "Box of Lastag Blue Foam Darts" id = "bluefoam_dart" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 500, /datum/material/iron = 100) build_path = /obj/item/ammo_box/foambox/tag/blue category = list("initial", "Misc") @@ -686,7 +690,7 @@ /datum/design/foam_bow name = "Foam Force Crossbow" id = "foam_bow" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 2000, /datum/material/iron = 250) build_path = /obj/item/gun/ballistic/shotgun/toy/crossbow category = list("initial", "Pistols") @@ -694,15 +698,17 @@ /datum/design/foam_c20 name = "Donksoft C20R" id = "foam_c20" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500) build_path = /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted category = list("hacked", "Rifles") + build_type = TOYLATHE | NO_PUBLIC_LATHE /datum/design/foam_l6 name = "Donksoft LMG" id = "foam_LMG" - build_type = AUTOYLATHE + build_type = TOYLATHE materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500) build_path = /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted category = list("hacked", "Rifles") + build_type = TOYLATHE | NO_PUBLIC_LATHE diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm index e82dffbe07..2cf9df6d50 100644 --- a/code/modules/research/designs/biogenerator_designs.dm +++ b/code/modules/research/designs/biogenerator_designs.dm @@ -2,6 +2,9 @@ ///////Biogenerator Designs /////// /////////////////////////////////// +//Please be wary to not add inorganic items to the results such as generic glass bottles and metal. +//as they kind of defeat the design of this feature. + /datum/design/milk name = "10u Milk" id = "milk" @@ -18,22 +21,6 @@ make_reagents = list(/datum/reagent/consumable/cream = 10) category = list("initial","Food") -/datum/design/milk_carton - name = "Milk Carton" - id = "milk_carton" - build_type = BIOGENERATOR - materials = list(/datum/material/biomass = 100) - build_path = /obj/item/reagent_containers/food/condiment/milk - category = list("initial","Food") - -/datum/design/cream_carton - name = "Cream Carton" - id = "cream_carton" - build_type = BIOGENERATOR - materials = list(/datum/material/biomass = 300) - build_path = /obj/item/reagent_containers/food/drinks/bottle/cream - category = list("initial","Food") - /datum/design/black_pepper name = "10u Black Pepper" id = "black_pepper" @@ -42,15 +29,6 @@ make_reagents = list(/datum/reagent/consumable/blackpepper = 10) category = list("initial","Food") -/datum/design/pepper_mill - name = "Pepper Mill" - id = "pepper_mill" - build_type = BIOGENERATOR - materials = list(/datum/material/biomass = 50) - build_path = /obj/item/reagent_containers/food/condiment/peppermill - make_reagents = list() - category = list("initial","Food") - /datum/design/enzyme name = "10u Universal Enzyme" id = "enzyme" @@ -59,20 +37,12 @@ make_reagents = list(/datum/reagent/consumable/enzyme = 10) category = list("initial","Food") -/datum/design/flour_sack - name = "Flour Sack" - id = "flour_sack" - build_type = BIOGENERATOR - materials = list(/datum/material/biomass = 150) - build_path = /obj/item/reagent_containers/food/condiment/flour - category = list("initial","Food") - /datum/design/monkey_cube name = "Monkey Cube" id = "mcube" build_type = BIOGENERATOR materials = list(/datum/material/biomass = 250) - build_path = /obj/item/reagent_containers/food/snacks/monkeycube + build_path = /obj/item/reagent_containers/food/snacks/cube/monkey category = list("initial", "Food") /datum/design/smeat @@ -84,43 +54,43 @@ category = list("initial", "Food") /datum/design/ez_nut - name = "E-Z Nutrient" + name = "10u E-Z Nutrient" id = "ez_nut" build_type = BIOGENERATOR - materials = list(/datum/material/biomass = 10) - build_path = /obj/item/reagent_containers/glass/bottle/nutrient/ez + materials = list(/datum/material/biomass = 2) + make_reagents = list(/datum/reagent/plantnutriment/eznutriment = 10) category = list("initial","Botany Chemicals") /datum/design/l4z_nut - name = "Left 4 Zed" + name = "10u Left 4 Zed" id = "l4z_nut" build_type = BIOGENERATOR - materials = list(/datum/material/biomass = 20) - build_path = /obj/item/reagent_containers/glass/bottle/nutrient/l4z + materials = list(/datum/material/biomass = 4) + make_reagents = list(/datum/reagent/plantnutriment/left4zednutriment = 10) category = list("initial","Botany Chemicals") /datum/design/rh_nut - name = "Robust Harvest" + name = "10u Robust Harvest" id = "rh_nut" build_type = BIOGENERATOR - materials = list(/datum/material/biomass = 25) - build_path = /obj/item/reagent_containers/glass/bottle/nutrient/rh + materials = list(/datum/material/biomass = 5) + make_reagents = list(/datum/reagent/plantnutriment/robustharvestnutriment = 10) category = list("initial","Botany Chemicals") /datum/design/weed_killer name = "Weed Killer" id = "weed_killer" build_type = BIOGENERATOR - materials = list(/datum/material/biomass = 50) - build_path = /obj/item/reagent_containers/glass/bottle/killer/weedkiller + materials = list(/datum/material/biomass = 10) + make_reagents = list(/datum/reagent/toxin/plantbgone/weedkiller = 10) category = list("initial","Botany Chemicals") /datum/design/pest_spray name = "Pest Killer" id = "pest_spray" build_type = BIOGENERATOR - materials = list(/datum/material/biomass = 50) - build_path = /obj/item/reagent_containers/glass/bottle/killer/pestkiller + materials = list(/datum/material/biomass = 10) + make_reagents = list(/datum/reagent/toxin/pestkiller = 10) category = list("initial","Botany Chemicals") /datum/design/ammonia @@ -139,13 +109,13 @@ make_reagents = list(/datum/reagent/saltpetre = 10) category = list("initial","Botany Chemicals") -/datum/design/botany_bottle - name = "Empty Bottle" - id = "botany_bottle" +/datum/design/empty_carton + name = "Small Empty Carton Box" + id = "empty_carton" build_type = BIOGENERATOR - materials = list(/datum/material/biomass = 5) - build_path = /obj/item/reagent_containers/glass/bottle/nutrient/empty - category = list("initial", "Botany Chemicals") + materials = list(/datum/material/biomass = 15) + build_path = /obj/item/reagent_containers/food/drinks/bottle/bio_carton + category = list("initial", "Organic Materials") /datum/design/cloth name = "Roll of Cloth" diff --git a/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm b/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm index 6d63df7d4b..06cdef5ecc 100644 --- a/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm +++ b/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm @@ -111,6 +111,6 @@ name = "Machine Design (Autoylathe)" desc = "The circuit board for an autoylathe." id = "autoylathe" - build_path = /obj/item/circuitboard/machine/autoylathe + build_path = /obj/item/circuitboard/machine/autolathe/toy departmental_flags = DEPARTMENTAL_FLAG_ALL category = list("Misc. Machinery") diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 04b7bbc668..e407277ebf 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -635,3 +635,27 @@ build_path = /obj/item/circuitboard/computer/sat_control category = list("Computer Boards") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + + + +///////////////////////////////////////// +////////////Tackle Gloves//////////////// +///////////////////////////////////////// + +/datum/design/tackle_dolphin + name = "Dolphin Gloves" + id = "tackle_dolphin" + build_type = PROTOLATHE + materials = list(/datum/material/plastic = 2500) + build_path = /obj/item/clothing/gloves/tackler/dolphin + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/tackle_rocket + name = "Rocket Gloves" + id = "tackle_rocket" + build_type = PROTOLATHE + materials = list(/datum/material/plasma = 1000, /datum/material/plastic = 2000) + build_path = /obj/item/clothing/gloves/tackler/rocket + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY diff --git a/code/modules/research/designs/nanite_designs.dm b/code/modules/research/designs/nanite_designs.dm index c72ee4fb8c..b157d0c349 100644 --- a/code/modules/research/designs/nanite_designs.dm +++ b/code/modules/research/designs/nanite_designs.dm @@ -529,7 +529,6 @@ ////////////////////NANITE PROTOCOLS////////////////////////////////////// //Note about the category name: The UI cuts the last 8 characters from the category name to remove the " Nanites" in the other categories //Because of this, Protocols was getting cut down to "P", so i had to add some padding -/* /datum/design/nanites/kickstart name = "Kickstart Protocol" desc = "Replication Protocol: the nanites focus on early growth, heavily boosting replication rate for a few minutes after the initial implantation." @@ -557,4 +556,10 @@ id = "offline_nanites" program_type = /datum/nanite_program/protocol/offline category = list("Protocols_Nanites") -*/ + +/datum/design/nanites/synergy + name = "Synergy Protocol" + desc = "Replication Protocol: the nanites syncronize their tasks and processes within a host, leading to an increase in replication speed proportional to the current nanite volume." + id = "synergy_nanites" + program_type = /datum/nanite_program/protocol/synergy + category = list("Protocols_Nanites") diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 44b71a025f..93168e17c7 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -135,6 +135,15 @@ //Ammo Shells/ ////////////// +/datum/design/shell_clip + name = "stripper clip (shotgun shells)" + id = "sec_shellclip" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 5000) + build_path = /obj/item/ammo_box/shotgun + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + /datum/design/beanbag_slug/sec id = "sec_beanbag" build_type = PROTOLATHE @@ -166,7 +175,7 @@ departmental_flags = DEPARTMENTAL_FLAG_SECURITY /datum/design/incendiary_slug/sec - id = "sec_Islug" + id = "sec_islug" build_type = PROTOLATHE category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index 42b8a4dcbb..cc02e271f9 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -101,7 +101,7 @@ Note: Must be placed within 3 tiles of the R&D Console if(!istype(loaded_item) || !istype(linked_console)) return FALSE - if (id && id != RESEARCH_MATERIAL_RECLAMATION_ID) + if (id && id != RESEARCH_MATERIAL_RECLAMATION_ID && id != RESEARCH_DEEP_SCAN_ID) var/datum/techweb_node/TN = SSresearch.techweb_node_by_id(id) if(!istype(TN)) return FALSE @@ -125,7 +125,7 @@ Note: Must be placed within 3 tiles of the R&D Console if(destroy_item(loaded_item)) linked_console.stored_research.boost_with_path(SSresearch.techweb_node_by_id(TN.id), dpath) - else + else if(id == RESEARCH_MATERIAL_RECLAMATION_ID) var/list/point_value = techweb_item_point_check(loaded_item) if(linked_console.stored_research.deconstructed_items[loaded_item.type]) point_value = list() @@ -143,6 +143,15 @@ Note: Must be placed within 3 tiles of the R&D Console if(destroy_item(loaded_item)) linked_console.stored_research.add_point_list(point_value) linked_console.stored_research.deconstructed_items[loaded_type] = point_value + else if(id == RESEARCH_DEEP_SCAN_ID) + var/list/return_list = list() + . = SEND_SIGNAL(loaded_item, COMSIG_ITEM_DECONSTRUCTOR_DEEPSCAN, src, user, return_list) + flick("d_analyzer_process", src) + if(. & COMPONENT_DEEPSCAN_UNCOVERED_INFORMATION) + say("New information uncovered from item deep scan[length(return_list)? ": [english_list(return_list)]" : ""].") + else + say("Item deep scan uncovered no new information.") + return TRUE /obj/machinery/rnd/destructive_analyzer/proc/unload_item() diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index 41ed6a556e..a5df3f4d12 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -3,7 +3,8 @@ desc = "Makes researched and prototype items with materials and energy." layer = BELOW_OBJ_LAYER var/consoleless_interface = TRUE //Whether it can be used without a console. - var/efficiency_coeff = 1 //Materials needed / coeff = actual. + var/offstation_security_levels = TRUE + var/print_cost_coeff = 1 //Materials needed * coeff = actual. var/list/categories = list() var/datum/component/remote_materials/materials var/allowed_department_flags = ALL @@ -60,7 +61,8 @@ popup.open() /obj/machinery/rnd/production/proc/calculate_efficiency() - efficiency_coeff = 1 + var/total_manip_rating = 0 + var/manips = 0 if(reagents) //If reagents/materials aren't initialized, don't bother, we'll be doing this again after reagents init anyways. reagents.maximum_volume = 0 for(var/obj/item/reagent_containers/glass/G in component_parts) @@ -71,17 +73,16 @@ for(var/obj/item/stock_parts/matter_bin/M in component_parts) total_storage += M.rating * 75000 materials.set_local_size(total_storage) - var/total_rating = 0 for(var/obj/item/stock_parts/manipulator/M in component_parts) - total_rating += M.rating - total_rating = max(1, total_rating) - efficiency_coeff = total_rating + total_manip_rating += M.rating + manips++ + print_cost_coeff = STANDARD_PART_LEVEL_LATHE_COEFFICIENT(total_manip_rating / (manips? manips : 1)) /obj/machinery/rnd/production/examine(mob/user) . = ..() var/datum/component/remote_materials/materials = GetComponent(/datum/component/remote_materials) if(in_range(user, src) || isobserver(user)) - . += "The status display reads: Storing up to [materials.local_size] material units locally.
    Material usage efficiency at [efficiency_coeff*100]%.
    " + . += "The status display reads: Storing up to [materials.local_size] material units locally.
    Material usage cost at [print_cost_coeff*100]%.
    " //we eject the materials upon deconstruction. /obj/machinery/rnd/production/on_deconstruction() @@ -94,10 +95,9 @@ message_admins("[ADMIN_LOOKUPFLW(user)] has built [amount] of [path] at a [src]([type]).") for(var/i in 1 to amount) var/obj/O = new path(get_turf(src)) - if(efficient_with(O.type) && isitem(O)) - var/obj/item/I = O - I.material_flags |= MATERIAL_NO_EFFECTS //Find a better way to do this. - I.set_custom_materials(matlist.Copy()) + if(efficient_with(O.type)) + O.set_custom_materials(matlist.Copy()) + O.rnd_crafted(src) SSblackbox.record_feedback("nested tally", "item_printed", amount, list("[type]", "[path]")) investigate_log("[key_name(user)] built [amount] of [path] at [src]([type]).", INVESTIGATE_RESEARCH) @@ -112,8 +112,8 @@ // these types don't have their .materials set in do_print, so don't allow // them to be constructed efficiently - var/ef = efficient_with(being_built.build_path) ? efficiency_coeff : 1 - return round(A / max(1, all_materials[mat] / ef)) + var/ef = efficient_with(being_built.build_path) ? print_cost_coeff : 1 + return round(A / max(1, all_materials[mat] * ef)) /obj/machinery/rnd/production/proc/efficient_with(path) return !ispath(path, /obj/item/stack/sheet) && !ispath(path, /obj/item/stack/ore/bluespace_crystal) @@ -134,6 +134,12 @@ if(D.build_type && !(D.build_type & allowed_buildtypes)) say("This machine does not have the necessary manipulation systems for this design. Please contact Nanotrasen Support!") return FALSE + if(!(obj_flags & EMAGGED) && (offstation_security_levels || is_station_level(z))) + if(GLOB.security_level < D.min_security_level) + say("Minimum security alert level required to print this design not met, please contact the command staff.") + return FALSE + if(GLOB.security_level > D.max_security_level) + say("Exceeded maximum security alert level required to print this design, please contact the command staff.") if(!materials.mat_container) say("No connection to material storage, please contact the quartermaster.") return FALSE @@ -141,32 +147,32 @@ say("Mineral access is on hold, please contact the quartermaster.") return FALSE var/power = 1000 - amount = CLAMP(amount, 1, 50) + amount = clamp(amount, 1, 50) for(var/M in D.materials) power += round(D.materials[M] * amount / 35) power = min(3000, power) use_power(power) - var/coeff = efficient_with(D.build_path) ? efficiency_coeff : 1 + var/coeff = efficient_with(D.build_path) ? print_cost_coeff : 1 var/list/efficient_mats = list() for(var/MAT in D.materials) - efficient_mats[MAT] = D.materials[MAT]/coeff + efficient_mats[MAT] = D.materials[MAT] * coeff if(!materials.mat_container.has_materials(efficient_mats, amount)) say("Not enough materials to complete prototype[amount > 1? "s" : ""].") return FALSE for(var/R in D.reagents_list) - if(!reagents.has_reagent(R, D.reagents_list[R]*amount/coeff)) + if(!reagents.has_reagent(R, D.reagents_list[R] * amount * coeff)) say("Not enough reagents to complete prototype[amount > 1? "s" : ""].") return FALSE materials.mat_container.use_materials(efficient_mats, amount) materials.silo_log(src, "built", -amount, "[D.name]", efficient_mats) for(var/R in D.reagents_list) - reagents.remove_reagent(R, D.reagents_list[R]*amount/coeff) + reagents.remove_reagent(R, D.reagents_list[R] * amount * coeff) busy = TRUE if(production_animation) flick(production_animation, src) - var/timecoeff = D.lathe_time_factor / efficiency_coeff - addtimer(CALLBACK(src, .proc/reset_busy), (30 * timecoeff * amount) ** 0.5) - addtimer(CALLBACK(src, .proc/do_print, D.build_path, amount, efficient_mats, D.dangerous_construction, usr), (32 * timecoeff * amount) ** 0.8) + var/timecoeff = D.lathe_time_factor * print_cost_coeff + addtimer(CALLBACK(src, .proc/reset_busy), (20 * timecoeff * amount) ** 0.5) + addtimer(CALLBACK(src, .proc/do_print, D.build_path, amount, efficient_mats, D.dangerous_construction, usr), (20 * timecoeff * amount) ** 0.5) return TRUE /obj/machinery/rnd/production/proc/search(string) @@ -241,7 +247,7 @@ /obj/machinery/rnd/production/proc/ui_screen_search() var/list/l = list() - var/coeff = efficiency_coeff + var/coeff = print_cost_coeff l += "

    Search Results:

    " l += "
    \ \ @@ -258,7 +264,7 @@ if(!istype(D)) return if(!coeff) - coeff = efficiency_coeff + coeff = print_cost_coeff if(!efficient_with(D.build_path)) coeff = 1 var/list/l = list() @@ -270,20 +276,31 @@ t = check_mat(D, M) temp_material += " | " if (t < 1) - temp_material += "[all_materials[M]/coeff] [CallMaterialName(M)]" + temp_material += "[all_materials[M] * coeff] [CallMaterialName(M)]" else - temp_material += " [all_materials[M]/coeff] [CallMaterialName(M)]" + temp_material += " [all_materials[M] * coeff] [CallMaterialName(M)]" c = min(c,t) - if (c >= 1) + var/clearance = !(obj_flags & EMAGGED) && (offstation_security_levels || is_station_level(z)) + var/sec_text = "" + if(clearance && (D.min_security_level > SEC_LEVEL_GREEN || D.max_security_level < SEC_LEVEL_DELTA)) + sec_text = " (Allowed security levels: " + for(var/n in D.min_security_level to D.max_security_level) + sec_text += NUM2SECLEVEL(n) + if(n + 1 <= D.max_security_level) + sec_text += ", " + sec_text += ")" + + clearance = !clearance || ISINRANGE(GLOB.security_level, D.min_security_level, D.max_security_level) + if (c >= 1 && clearance) l += "[D.name][RDSCREEN_NOBREAK]" if(c >= 5) l += "x5[RDSCREEN_NOBREAK]" if(c >= 10) l += "x10[RDSCREEN_NOBREAK]" - l += "[temp_material][RDSCREEN_NOBREAK]" + l += "[temp_material][sec_text][RDSCREEN_NOBREAK]" else - l += "[D.name][temp_material][RDSCREEN_NOBREAK]" + l += "[D.name][temp_material][sec_text][RDSCREEN_NOBREAK]" l += "" return l @@ -349,7 +366,7 @@ return ui_screen_main() var/list/l = list() l += "

    Browsing [selected_category]:

    " - var/coeff = efficiency_coeff + var/coeff = print_cost_coeff for(var/v in stored_research.researched_designs) var/datum/design/D = SSresearch.techweb_design_by_id(v) if(!(selected_category in D.category)|| !(D.build_type & allowed_buildtypes)) diff --git a/code/modules/research/machinery/circuit_imprinter.dm b/code/modules/research/machinery/circuit_imprinter.dm index 948dad61db..b80e96a1e9 100644 --- a/code/modules/research/machinery/circuit_imprinter.dm +++ b/code/modules/research/machinery/circuit_imprinter.dm @@ -25,8 +25,9 @@ /obj/machinery/rnd/production/circuit_imprinter/calculate_efficiency() . = ..() - var/total_rating = 0 - for(var/obj/item/stock_parts/manipulator/M in component_parts) - total_rating += M.rating * 2 //There is only one. - total_rating = max(1, total_rating) - efficiency_coeff = total_rating + var/obj/item/circuitboard/machine/circuit_imprinter/C = circuit + offstation_security_levels = C.offstation_security_levels + +/obj/machinery/rnd/production/circuit_imprinter/offstation + offstation_security_levels = FALSE + circuit = /obj/item/circuitboard/machine/circuit_imprinter/offstation diff --git a/code/modules/research/machinery/protolathe.dm b/code/modules/research/machinery/protolathe.dm index 684f27ccad..b1b31a279c 100644 --- a/code/modules/research/machinery/protolathe.dm +++ b/code/modules/research/machinery/protolathe.dm @@ -23,3 +23,12 @@ /obj/machinery/rnd/production/protolathe/disconnect_console() linked_console.linked_lathe = null ..() + +/obj/machinery/rnd/production/protolathe/calculate_efficiency() + . = ..() + var/obj/item/circuitboard/machine/protolathe/C = circuit + offstation_security_levels = C.offstation_security_levels + +/obj/machinery/rnd/production/protolathe/offstation + offstation_security_levels = FALSE + circuit = /obj/item/circuitboard/machine/protolathe/offstation diff --git a/code/modules/research/nanites/extra_settings/number.dm b/code/modules/research/nanites/extra_settings/number.dm index 6e63ae067e..75489635f5 100644 --- a/code/modules/research/nanites/extra_settings/number.dm +++ b/code/modules/research/nanites/extra_settings/number.dm @@ -16,7 +16,7 @@ value = text2num(value) if(!value || !isnum(value)) return - src.value = CLAMP(value, min, max) + src.value = clamp(value, min, max) /datum/nanite_extra_setting/number/get_copy() return new /datum/nanite_extra_setting/number(value, min, max, unit) diff --git a/code/modules/research/nanites/nanite_cloud_controller.dm b/code/modules/research/nanites/nanite_cloud_controller.dm index c688260329..ef0fc33bd7 100644 --- a/code/modules/research/nanites/nanite_cloud_controller.dm +++ b/code/modules/research/nanites/nanite_cloud_controller.dm @@ -174,7 +174,7 @@ var/cloud_id = new_backup_id if(!isnull(cloud_id)) playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) - cloud_id = CLAMP(round(cloud_id, 1),1,100) + cloud_id = clamp(round(cloud_id, 1),1,100) generate_backup(cloud_id, usr) . = TRUE if("delete_backup") diff --git a/code/modules/research/nanites/nanite_program_hub.dm b/code/modules/research/nanites/nanite_program_hub.dm index abec47813d..3f62a11f89 100644 --- a/code/modules/research/nanites/nanite_program_hub.dm +++ b/code/modules/research/nanites/nanite_program_hub.dm @@ -21,7 +21,7 @@ list(name = "Augmentation Nanites"), list(name = "Suppression Nanites"), list(name = "Weaponized Nanites"), - //list(name = "Protocols") B.E.P.I.S Content, which we dont have + list(name = "Protocols") //Moved to default techweb from B.E.P.I.S. research, for now ) /obj/machinery/nanite_program_hub/Initialize() diff --git a/code/modules/research/nanites/nanite_programmer.dm b/code/modules/research/nanites/nanite_programmer.dm index 89614f428d..3de2a974e2 100644 --- a/code/modules/research/nanites/nanite_programmer.dm +++ b/code/modules/research/nanites/nanite_programmer.dm @@ -86,13 +86,13 @@ var/target_code = params["target_code"] switch(target_code) if("activation") - program.activation_code = CLAMP(round(new_code, 1),0,9999) + program.activation_code = clamp(round(new_code, 1),0,9999) if("deactivation") - program.deactivation_code = CLAMP(round(new_code, 1),0,9999) + program.deactivation_code = clamp(round(new_code, 1),0,9999) if("kill") - program.kill_code = CLAMP(round(new_code, 1),0,9999) + program.kill_code = clamp(round(new_code, 1),0,9999) if("trigger") - program.trigger_code = CLAMP(round(new_code, 1),0,9999) + program.trigger_code = clamp(round(new_code, 1),0,9999) . = TRUE if("set_extra_setting") program.set_extra_setting(params["target_setting"], params["value"]) @@ -102,7 +102,7 @@ var/timer = text2num(params["delay"]) if(!isnull(timer)) playsound(src, "terminal_type", 25, FALSE) - timer = CLAMP(round(timer, 1), 0, 3600) + timer = clamp(round(timer, 1), 0, 3600) timer *= 10 //convert to deciseconds program.timer_restart = timer . = TRUE @@ -110,7 +110,7 @@ var/timer = text2num(params["delay"]) if(!isnull(timer)) playsound(src, "terminal_type", 25, FALSE) - timer = CLAMP(round(timer, 1), 0, 3600) + timer = clamp(round(timer, 1), 0, 3600) timer *= 10 //convert to deciseconds program.timer_shutdown = timer . = TRUE @@ -118,7 +118,7 @@ var/timer = text2num(params["delay"]) if(!isnull(timer)) playsound(src, "terminal_type", 25, FALSE) - timer = CLAMP(round(timer, 1), 0, 3600) + timer = clamp(round(timer, 1), 0, 3600) timer *= 10 //convert to deciseconds program.timer_trigger = timer . = TRUE @@ -126,7 +126,7 @@ var/timer = text2num(params["delay"]) if(!isnull(timer)) playsound(src, "terminal_type", 25, FALSE) - timer = CLAMP(round(timer, 1), 0, 3600) + timer = clamp(round(timer, 1), 0, 3600) timer *= 10 //convert to deciseconds program.timer_trigger_delay = timer . = TRUE diff --git a/code/modules/research/nanites/nanite_programs.dm b/code/modules/research/nanites/nanite_programs.dm index 72f969a77e..faa81be0a5 100644 --- a/code/modules/research/nanites/nanite_programs.dm +++ b/code/modules/research/nanites/nanite_programs.dm @@ -290,7 +290,7 @@ qdel(src) ///A nanite program containing a behaviour protocol. Only one protocol of each class can be active at once. -//Currently unused due to us lacking the B.E.P.I.S +//Moved to being 'normally' researched due to lack of B.E.P.I.S. /datum/nanite_program/protocol name = "Nanite Protocol" var/protocol_class = NONE diff --git a/code/modules/research/nanites/nanite_programs/healing.dm b/code/modules/research/nanites/nanite_programs/healing.dm index 70a1412b11..18307ce2c5 100644 --- a/code/modules/research/nanites/nanite_programs/healing.dm +++ b/code/modules/research/nanites/nanite_programs/healing.dm @@ -76,7 +76,8 @@ var/problems = FALSE if(iscarbon(host_mob)) var/mob/living/carbon/C = host_mob - if(length(C.get_traumas())) + var/obj/item/organ/brain/B = C.getorganslot(ORGAN_SLOT_BRAIN) + if(length(B?.get_traumas_type(TRAUMA_RESILIENCE_BASIC))) problems = TRUE if(host_mob.getOrganLoss(ORGAN_SLOT_BRAIN) > 0) problems = TRUE @@ -198,7 +199,8 @@ var/problems = FALSE if(iscarbon(host_mob)) var/mob/living/carbon/C = host_mob - if(length(C.get_traumas())) + var/obj/item/organ/brain/B = C.getorganslot(ORGAN_SLOT_BRAIN) + if(length(B?.get_traumas_type(TRAUMA_RESILIENCE_SURGERY))) problems = TRUE if(host_mob.getOrganLoss(ORGAN_SLOT_BRAIN) > 0) problems = TRUE @@ -208,7 +210,7 @@ host_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -2) if(iscarbon(host_mob) && prob(10)) var/mob/living/carbon/C = host_mob - C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_LOBOTOMY) + C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_SURGERY) /datum/nanite_program/defib name = "Defibrillation" diff --git a/code/modules/research/nanites/nanite_programs/protocols.dm b/code/modules/research/nanites/nanite_programs/protocols.dm index 73976abe09..3830e7c8ba 100644 --- a/code/modules/research/nanites/nanite_programs/protocols.dm +++ b/code/modules/research/nanites/nanite_programs/protocols.dm @@ -105,3 +105,14 @@ /datum/nanite_program/protocol/offline/active_effect() nanites.adjust_nanites(null, boost) + +/datum/nanite_program/protocol/synergy + name = "Synergy Protocol" + desc = "Replication Protocol: the nanites syncronize their tasks and processes within a host, leading to an increase in replication speed proportional to the current nanite volume." + use_rate = 0 + rogue_types = list(/datum/nanite_program/necrotic) + protocol_class = NANITE_PROTOCOL_REPLICATION + var/max_boost = 2 //The maximum boost this program applies to the nanite replication, multiplied with the current nanite 'saturation' percentage + +/datum/nanite_program/protocol/synergy/active_effect() + nanites.adjust_nanites(null, round(max_boost * (nanites.nanite_volume / nanites.max_nanites), 0.1)) diff --git a/code/modules/research/nanites/nanite_programs/utility.dm b/code/modules/research/nanites/nanite_programs/utility.dm index 6352f50b8b..71aa5bf09a 100644 --- a/code/modules/research/nanites/nanite_programs/utility.dm +++ b/code/modules/research/nanites/nanite_programs/utility.dm @@ -160,7 +160,7 @@ if(!host_mob.client) //less brainpower points *= 0.25 SSresearch.science_tech.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = points)) - + /datum/nanite_program/researchplus name = "Neural Network" desc = "The nanites link the host's brains together forming a neural research network, that becomes more efficient with the amount of total hosts." @@ -184,7 +184,7 @@ SSnanites.neural_network_count-- else SSnanites.neural_network_count -= 0.25 - + /datum/nanite_program/researchplus/active_effect() if(!iscarbon(host_mob)) return @@ -234,7 +234,7 @@ var/spread_cooldown = 0 /datum/nanite_program/spreading/active_effect() - if(spread_cooldown < world.time) + if(world.time < spread_cooldown) return spread_cooldown = world.time + 50 var/list/mob/living/target_hosts = list() diff --git a/code/modules/research/nanites/nanite_programs/weapon.dm b/code/modules/research/nanites/nanite_programs/weapon.dm index bd2b9618de..ae0d8d35aa 100644 --- a/code/modules/research/nanites/nanite_programs/weapon.dm +++ b/code/modules/research/nanites/nanite_programs/weapon.dm @@ -84,7 +84,7 @@ /datum/nanite_program/explosive/on_trigger(comm_message) host_mob.visible_message("[host_mob] starts emitting a high-pitched buzzing, and [host_mob.p_their()] skin begins to glow...",\ "You start emitting a high-pitched buzzing, and your skin begins to glow...") - addtimer(CALLBACK(src, .proc/boom), CLAMP((nanites.nanite_volume * 0.35), 25, 150)) + addtimer(CALLBACK(src, .proc/boom), clamp((nanites.nanite_volume * 0.35), 25, 150)) /datum/nanite_program/explosive/proc/boom() var/nanite_amount = nanites.nanite_volume diff --git a/code/modules/research/nanites/nanite_remote.dm b/code/modules/research/nanites/nanite_remote.dm index 3ca49f6d67..b222b2ad35 100644 --- a/code/modules/research/nanites/nanite_remote.dm +++ b/code/modules/research/nanites/nanite_remote.dm @@ -106,7 +106,7 @@ return var/new_code = text2num(params["code"]) if(!isnull(new_code)) - new_code = CLAMP(round(new_code, 1),0,9999) + new_code = clamp(round(new_code, 1),0,9999) code = new_code . = TRUE if("set_relay_code") @@ -114,7 +114,7 @@ return var/new_code = text2num(params["code"]) if(!isnull(new_code)) - new_code = CLAMP(round(new_code, 1),0,9999) + new_code = clamp(round(new_code, 1),0,9999) relay_code = new_code . = TRUE if("update_name") diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index be1b9460b0..d543468c48 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -47,6 +47,9 @@ Nothing else in the console has ID requirements. var/research_control = TRUE + /// Long action cooldown to prevent spam + var/last_long_action = 0 + /obj/machinery/computer/rdconsole/production circuit = /obj/item/circuitboard/computer/rdconsole/production research_control = FALSE @@ -287,7 +290,7 @@ Nothing else in the console has ID requirements. continue var/temp_material var/c = 50 - var/coeff = linked_lathe.efficiency_coeff + var/coeff = linked_lathe.print_cost_coeff if(!linked_lathe.efficient_with(D.build_path)) coeff = 1 @@ -296,20 +299,31 @@ Nothing else in the console has ID requirements. var/t = linked_lathe.check_mat(D, M) temp_material += " | " if (t < 1) - temp_material += "[all_materials[M]/coeff] [CallMaterialName(M)]" + temp_material += "[all_materials[M] * coeff] [CallMaterialName(M)]" else - temp_material += " [all_materials[M]/coeff] [CallMaterialName(M)]" + temp_material += " [all_materials[M] * coeff] [CallMaterialName(M)]" c = min(c,t) - if (c >= 1) + var/clearance = !(linked_lathe.obj_flags & EMAGGED) && (linked_lathe.offstation_security_levels || is_station_level(linked_lathe.z)) + var/sec_text = "" + if(clearance && (D.min_security_level > SEC_LEVEL_GREEN || D.max_security_level < SEC_LEVEL_DELTA)) + sec_text = " (Allowed security levels: " + for(var/n in D.min_security_level to D.max_security_level) + sec_text += NUM2SECLEVEL(n) + if(n + 1 <= D.max_security_level) + sec_text += ", " + sec_text += ")" + + clearance = !clearance || ISINRANGE(GLOB.security_level, D.min_security_level, D.max_security_level) + if (c >= 1 && clearance) l += "[D.name][RDSCREEN_NOBREAK]" if(c >= 5) l += "x5[RDSCREEN_NOBREAK]" if(c >= 10) l += "x10[RDSCREEN_NOBREAK]" - l += "[temp_material][RDSCREEN_NOBREAK]" + l += "[temp_material][sec_text][RDSCREEN_NOBREAK]" else - l += "[D.name][temp_material][RDSCREEN_NOBREAK]" + l += "[D.name][temp_material][sec_text][RDSCREEN_NOBREAK]" l += "" l += "
    " return l @@ -342,16 +356,16 @@ Nothing else in the console has ID requirements. var/temp_material var/c = 50 var/all_materials = D.materials + D.reagents_list - var/coeff = linked_lathe.efficiency_coeff + var/coeff = linked_lathe.print_cost_coeff if(!linked_lathe.efficient_with(D.build_path)) coeff = 1 for(var/M in all_materials) var/t = linked_lathe.check_mat(D, M) temp_material += " | " if (t < 1) - temp_material += "[all_materials[M]/coeff] [CallMaterialName(M)]" + temp_material += "[all_materials[M] * coeff] [CallMaterialName(M)]" else - temp_material += " [all_materials[M]/coeff] [CallMaterialName(M)]" + temp_material += " [all_materials[M] * coeff] [CallMaterialName(M)]" c = min(c,t) if (c >= 1) @@ -443,7 +457,7 @@ Nothing else in the console has ID requirements. var/check_materials = TRUE var/all_materials = D.materials + D.reagents_list - var/coeff = linked_imprinter.efficiency_coeff + var/coeff = linked_imprinter.print_cost_coeff if(!linked_imprinter.efficient_with(D.build_path)) coeff = 1 @@ -451,9 +465,9 @@ Nothing else in the console has ID requirements. temp_materials += " | " if (!linked_imprinter.check_mat(D, M)) check_materials = FALSE - temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]" + temp_materials += " [all_materials[M] * coeff] [CallMaterialName(M)]" else - temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]" + temp_materials += " [all_materials[M] * coeff] [CallMaterialName(M)]" if (check_materials) l += "[D.name][temp_materials]" else @@ -474,16 +488,16 @@ Nothing else in the console has ID requirements. var/temp_materials var/check_materials = TRUE var/all_materials = D.materials + D.reagents_list - var/coeff = linked_imprinter.efficiency_coeff + var/coeff = linked_imprinter.print_cost_coeff if(!linked_imprinter.efficient_with(D.build_path)) coeff = 1 for(var/M in all_materials) temp_materials += " | " if (!linked_imprinter.check_mat(D, M)) check_materials = FALSE - temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]" + temp_materials += " [all_materials[M] * coeff] [CallMaterialName(M)]" else - temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]" + temp_materials += " [all_materials[M] * coeff] [CallMaterialName(M)]" if (check_materials) l += "[D.name][temp_materials]" else @@ -572,10 +586,8 @@ Nothing else in the console has ID requirements. l += "
    [icon2html(linked_destroy.loaded_item, usr)][linked_destroy.loaded_item.name] Eject
    [RDSCREEN_NOBREAK]" l += "Select a node to boost by deconstructing this item. This item can boost:" - var/anything = FALSE var/list/boostable_nodes = techweb_item_boost_check(linked_destroy.loaded_item) for(var/id in boostable_nodes) - anything = TRUE var/list/worth = boostable_nodes[id] var/datum/techweb_node/N = SSresearch.techweb_node_by_id(id) @@ -609,7 +621,6 @@ Nothing else in the console has ID requirements. // point deconstruction and material reclamation use the same ID to prevent accidentally missing the points var/list/point_values = techweb_item_point_check(linked_destroy.loaded_item) if(point_values) - anything = TRUE l += "
    [RDSCREEN_NOBREAK]" if (stored_research.deconstructed_items[linked_destroy.loaded_item.type]) l += "Point Deconstruction" @@ -625,10 +636,8 @@ Nothing else in the console has ID requirements. for (var/M in materials) l += "* [CallMaterialName(M)] x [materials[M]]" l += "
    [RDSCREEN_NOBREAK]" - anything = TRUE - if (!anything) - l += "Nothing!" + l += "" l += "" return l @@ -915,6 +924,9 @@ Nothing else in the console has ID requirements. screen = RDSCREEN_MENU say("Ejecting Technology Disk") if(ls["deconstruct"]) + if((last_long_action + 1 SECONDS) > world.time) + return + last_long_action = world.time if(QDELETED(linked_destroy)) say("No Destructive Analyzer Linked!") return @@ -1026,7 +1038,7 @@ Nothing else in the console has ID requirements. autolathe_friendly = FALSE D.category -= "Imported" - if(D.build_type & (AUTOLATHE|PROTOLATHE|CRAFTLATHE)) // Specifically excludes circuit imprinter and mechfab + if(D.build_type & (AUTOLATHE|PROTOLATHE|TOYLATHE)) // Specifically excludes circuit imprinter and mechfab D.build_type = autolathe_friendly ? (D.build_type | AUTOLATHE) : D.build_type D.category |= "Imported" d_disk.blueprints[slot] = D diff --git a/code/modules/research/techweb/_techweb.dm b/code/modules/research/techweb/_techweb.dm index 388fa3785c..ddf6edc9f9 100644 --- a/code/modules/research/techweb/_techweb.dm +++ b/code/modules/research/techweb/_techweb.dm @@ -344,6 +344,7 @@ /datum/techweb/specialized/autounlocking var/design_autounlock_buildtypes = NONE + var/design_autounlock_skip_types = NONE var/design_autounlock_categories = list("initial") //if a design has a buildtype that matches the abovea and either has a category in this or this is null, unlock it. var/node_autounlock_ids = list() //autounlock nodes of this type. @@ -356,7 +357,7 @@ research_node_id(id, TRUE, FALSE) for(var/id in SSresearch.techweb_designs) var/datum/design/D = SSresearch.techweb_design_by_id(id) - if(D.build_type & design_autounlock_buildtypes) + if(D.build_type & (design_autounlock_buildtypes & allowed_buildtypes) && !(D.build_type & design_autounlock_skip_types)) for(var/i in D.category) if(i in design_autounlock_categories) add_design_by_id(D.id) @@ -364,7 +365,16 @@ /datum/techweb/specialized/autounlocking/autolathe design_autounlock_buildtypes = AUTOLATHE - allowed_buildtypes = AUTOLATHE + allowed_buildtypes = AUTOLATHE|TOYLATHE + +/datum/techweb/specialized/autounlocking/autolathe/public + design_autounlock_skip_types = NO_PUBLIC_LATHE + +/datum/techweb/specialized/autounlocking/autolathe/toy + design_autounlock_buildtypes = TOYLATHE + +/datum/techweb/specialized/autounlocking/autolathe/toy/public + design_autounlock_skip_types = NO_PUBLIC_LATHE /datum/techweb/specialized/autounlocking/limbgrower design_autounlock_buildtypes = LIMBGROWER @@ -381,10 +391,6 @@ /datum/techweb/specialized/autounlocking/exofab allowed_buildtypes = MECHFAB -/datum/techweb/specialized/autounlocking/autoylathe - design_autounlock_buildtypes = AUTOYLATHE - allowed_buildtypes = AUTOYLATHE - /datum/techweb/specialized/autounlocking/autobottler design_autounlock_buildtypes = AUTOBOTTLER allowed_buildtypes = AUTOBOTTLER \ No newline at end of file diff --git a/code/modules/research/techweb/_techweb_node.dm b/code/modules/research/techweb/_techweb_node.dm index fff3f42b9f..33147aa717 100644 --- a/code/modules/research/techweb/_techweb_node.dm +++ b/code/modules/research/techweb/_techweb_node.dm @@ -91,4 +91,17 @@ actual_costs[i] -= L[i] return actual_costs else - return research_costs \ No newline at end of file + return research_costs + +//Base Nodes, everything starts from here. + +/datum/techweb_node/base + id = "base" + starting_node = TRUE + display_name = "Basic Research Technology" + description = "NT default research technologies." + // Default research tech, prevents bricking + design_ids = list("basic_matter_bin", "basic_cell", "basic_scanning", "basic_capacitor", "basic_micro_laser", "micro_mani", "desttagger", "handlabel", "packagewrap", + "destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab", + "space_heater", "beaker", "large_beaker", "bucket", "xlarge_beaker", "sec_shellclip", "sec_beanbag", "sec_rshot", "sec_bshot", "sec_slug", "sec_islug", "sec_dart", "sec_38", "sec_38lethal", + "rglass","plasteel","plastitanium","plasmaglass","plasmareinforcedglass","titaniumglass","plastitaniumglass") diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm deleted file mode 100644 index 24b9ccf81c..0000000000 --- a/code/modules/research/techweb/all_nodes.dm +++ /dev/null @@ -1,1044 +0,0 @@ - -//Current rate: 132500 research points in 90 minutes - -//Base Nodes -/datum/techweb_node/base - id = "base" - starting_node = TRUE - display_name = "Basic Research Technology" - description = "NT default research technologies." - // Default research tech, prevents bricking - design_ids = list("basic_matter_bin", "basic_cell", "basic_scanning", "basic_capacitor", "basic_micro_laser", "micro_mani", "desttagger", "handlabel", "packagewrap", - "destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab", - "space_heater", "beaker", "large_beaker", "bucket", "xlarge_beaker", "sec_beanbag", "sec_rshot", "sec_bshot", "sec_slug", "sec_Islug", "sec_dart", "sec_38", "sec_38lethal", - "rglass","plasteel","plastitanium","plasmaglass","plasmareinforcedglass","titaniumglass","plastitaniumglass") - -/datum/techweb_node/mmi - id = "mmi" - starting_node = TRUE - display_name = "Man Machine Interface" - description = "A slightly Frankensteinian device that allows human brains to interface natively with software APIs." - design_ids = list("mmi") - -/datum/techweb_node/cyborg - id = "cyborg" - starting_node = TRUE - display_name = "Cyborg Construction" - description = "Sapient robots with preloaded tool modules and programmable laws." - design_ids = list("robocontrol", "sflash", "borg_suit", "borg_head", "borg_chest", "borg_r_arm", "borg_l_arm", "borg_r_leg", "borg_l_leg", "borgupload", - "cyborgrecharger", "borg_upgrade_restart", "borg_upgrade_rename") - -/datum/techweb_node/mech - id = "mecha" - starting_node = TRUE - display_name = "Mechanical Exosuits" - description = "Mechanized exosuits that are several magnitudes stronger and more powerful than the average human." - design_ids = list("mecha_tracking", "mechacontrol", "mechapower", "mech_recharger", "ripley_chassis", "firefighter_chassis", "ripley_torso", "ripley_left_arm", "ripley_right_arm", "ripley_left_leg", "ripley_right_leg", - "ripley_main", "ripley_peri", "mech_hydraulic_clamp") - -/datum/techweb_node/mech_tools - id = "mech_tools" - starting_node = TRUE - display_name = "Basic Exosuit Equipment" - description = "Various tools fit for basic mech units" - design_ids = list("mech_drill", "mech_mscanner", "mech_extinguisher", "mech_cable_layer") - -/datum/techweb_node/surplus_lims - id = "surplus_lims" - display_name = "Basic Prosthetics" - description = "Basic fragile lims for the impaired." - starting_node = TRUE - prereq_ids = list("biotech") - design_ids = list("basic_l_arm", "basic_r_arm", "basic_r_leg", "basic_l_leg") - -/datum/techweb_node/blueprinted_bottles - id = "blueprinted_bottles" - display_name = "License Bottling" - description = "Some Branded bottles to print and export." - starting_node = TRUE - design_ids = list("gin", "wine", "whiskey", "vodka", "tequila", "patron", "rum", "kahlua", "vermouth", "goldschlager", "hcider", "cognac", "absinthe", "grappa", "sake", "fernet", "applejack", "champagne", "blazaam", "trappist", "grenadine", "autobottler") - -/datum/techweb_node/blueprinted_exports - id = "blueprinted_exports" - display_name = "License Exports" - description = "Some Branded bottles to print and export." - starting_node = TRUE - design_ids = list("gin_export", "wine_export", "whiskey_export", "vodka_export", "tequila_export", "patron_export", "rum_export", "kahlua_export", "vermouth_export", "goldschlager_export", "hcider_export", "cognac_export", "absinthe_export", "grappa_export", "sake_export", "fernet_export", "applejack_export", "champagne_export", "blazaam_export", "trappist_export", "grenadine_export") - -/////////////////////////Biotech///////////////////////// -/datum/techweb_node/biotech - id = "biotech" - display_name = "Biological Technology" - description = "What makes us tick." //the MC, silly! - prereq_ids = list("base") - design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibrillator", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen", "telescopiciv", "medspray","genescanner") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/adv_biotech - id = "adv_biotech" - display_name = "Advanced Biotechnology" - description = "Advanced Biotechnology" - prereq_ids = list("biotech") - design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "meta_beaker", "healthanalyzer_advanced", "harvester", "holobarrier_med", "defibrillator_compact", "smartdartgun", "medicinalsmartdart", "pHmeter", "containmentbodybag") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/bio_process - id = "bio_process" - display_name = "Biological Processing" - description = "From slimes to kitchens." - prereq_ids = list("biotech") - design_ids = list("smartfridge", "gibber", "deepfryer", "monkey_recycler", "processor", "gibber", "microwave", "reagentgrinder", "dish_drive") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/bottle_exports - id = "bottle_exports" - display_name = "Legal Bottling" - prereq_ids = list("blueprinted_bottles") - description = "New bottles for printing and selling." - design_ids = list("minikeg", "blooddrop", "slim_gold", "white_bloodmoon", "greenroad") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 250) - -/datum/techweb_node/advance_lims - id = "advance_lims" - display_name = "Upgraded Prosthetics" - description = "Reinforced prosthetics for the impaired." - prereq_ids = list("adv_biotech", "surplus_lims") - design_ids = list("adv_l_arm", "adv_r_arm", "adv_r_leg", "adv_l_leg") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1250) - -/datum/techweb_node/advance_surgerytools - id = "advance_surgerytools" - display_name = "Advanced Surgery Tools" - description = "Refined and improved redesigns for the run-of-the-mill medical utensils." - prereq_ids = list("adv_biotech", "adv_surgery") - design_ids = list("drapes", "retractor_adv", "surgicaldrill_adv", "scalpel_adv") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/adv_defibrillator_tec - id = "adv_defibrillator_tec" - display_name = "Defibrillator Upgrades" - description = "More ways to bring back the newly dead." - prereq_ids = list("adv_biotech", "exp_surgery", "adv_engi", "adv_power") - design_ids = list("defib_decay", "defib_shock", "defib_heal", "defib_speed") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/////////////////////////Advanced Surgery///////////////////////// -/datum/techweb_node/imp_wt_surgery - id = "imp_wt_surgery" - display_name = "Improved Wound-Tending Surgery" - description = "Who would have known being more gentle with a hemostat decreases patient pain?" - prereq_ids = list("biotech") - design_ids = list("surgery_heal_brute_upgrade","surgery_heal_burn_upgrade") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) - -/datum/techweb_node/adv_surgery - id = "adv_surgery" - display_name = "Advanced Surgery" - description = "When simple medicine doesn't cut it." - prereq_ids = list("imp_wt_surgery") - design_ids = list("surgery_revival", "surgery_lobotomy", "surgery_heal_brute_upgrade_femto","surgery_heal_burn_upgrade_femto", "surgery_heal_combo", "surgery_toxinhealing", "organbox", "surgery_adv_dissection") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/exp_surgery - id = "exp_surgery" - display_name = "Experimental Surgery" - description = "When evolution isn't fast enough." - prereq_ids = list("adv_surgery") - design_ids = list("surgery_pacify","surgery_vein_thread","surgery_muscled_veins","surgery_nerve_splice","surgery_nerve_ground","surgery_ligament_hook","surgery_ligament_reinforcement","surgery_viral_bond", "surgery_exp_dissection", "surgery_heal_combo_upgrade") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - -/datum/techweb_node/alien_surgery - id = "alien_surgery" - display_name = "Alien Surgery" - description = "Abductors did nothing wrong." - prereq_ids = list("exp_surgery", "alientech") - design_ids = list("surgery_brainwashing","surgery_zombie", "surgery_ext_dissection", "surgery_heal_combo_upgrade_femto") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) - -/////////////////////////data theory tech///////////////////////// -/datum/techweb_node/datatheory //Computer science - id = "datatheory" - display_name = "Data Theory" - description = "Big Data, in space!" - prereq_ids = list("base") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - -/datum/techweb_node/adv_datatheory - id = "adv_datatheory" - display_name = "Advanced Data Theory" - description = "Better insight into programming and data." - prereq_ids = list("datatheory") - design_ids = list("icprinter", "icupgadv", "icupgclo") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) - -/////////////////////////engineering tech///////////////////////// -/datum/techweb_node/engineering - id = "engineering" - display_name = "Industrial Engineering" - description = "A refresher course on modern engineering technology." - prereq_ids = list("base") - design_ids = list("solarcontrol", "recharger", "powermonitor", "rped", "pacman", "adv_capacitor", "adv_scanning", "emitter", "high_cell", "adv_matter_bin", - "atmosalerts", "atmos_control", "recycler", "autolathe", "autolathe_secure", "high_micro_laser", "nano_mani", "mesons", "thermomachine", "rad_collector", "tesla_coil", "grounding_rod", - "apc_control", "power control", "airlock_board", "firelock_board", "airalarm_electronics", "firealarm_electronics", "cell_charger", "stack_console", "stack_machine", "rcd_ammo") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 6000) - -/datum/techweb_node/adv_engi - id = "adv_engi" - display_name = "Advanced Engineering" - description = "Pushing the boundaries of physics, one chainsaw-fist at a time." - prereq_ids = list("engineering", "emp_basic") - design_ids = list("engine_goggles", "magboots", "forcefield_projector", "weldingmask" , "rcd_loaded", "rpd", "tray_goggles_prescription", "engine_goggles_prescription", "mesons_prescription", "rcd_upgrade_frames", "rcd_upgrade_simple_circuits", "rcd_ammo_large") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000) - -/datum/techweb_node/anomaly - id = "anomaly_research" - display_name = "Anomaly Research" - description = "Unlock the potential of the mysterious anomalies that appear on station." - prereq_ids = list("adv_engi", "practical_bluespace") - design_ids = list("reactive_armour", "anomaly_neutralizer") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) - -/datum/techweb_node/high_efficiency - id = "high_efficiency" - display_name = "High Efficiency Parts" - description = "Finely-tooled manufacturing techniques allowing for picometer-perfect precision levels." - prereq_ids = list("engineering", "datatheory") - design_ids = list("pico_mani", "super_matter_bin") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - -/datum/techweb_node/adv_power - id = "adv_power" - display_name = "Advanced Power Manipulation" - description = "How to get more zap." - prereq_ids = list("engineering") - design_ids = list("smes", "super_cell", "hyper_cell", "super_capacitor", "superpacman", "mrspacman", "power_turbine", "power_turbine_console", "power_compressor", "circulator", "teg") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) - -/* -/datum/techweb_node/basic_meteor_defense - id = "basic_meteor_defense" - display_name = "Meteor Defense Research" - description = "Unlock the potential of the mysterious of why CC decided to not build these around the station themselves." - prereq_ids = list("adv_engi", "high_efficiency") - design_ids = list("meteor_defence", "meteor_console") - -/datum/techweb_node/adv_meteor_defense - id = "adv_meteor_defense" - display_name = "Meteor Defense Research" - description = "New and improved coding and lock on tech for meteor defence!" - prereq_ids = list("basic_meteor_defense", "adv_datatheory", "emp_adv") - design_ids = list("meteor_disk") -*/ - -/datum/techweb_node/computer_board_gaming - id = "computer_board_gaming" - display_name = "Games and Toys" - description = "For the slackers on the station." - prereq_ids = list("comptech") - design_ids = list("arcade_battle", "arcade_orion", "arcade_minesweeper", "slotmachine", "autoylathe") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) - -/////////////////////////Bluespace tech///////////////////////// -/datum/techweb_node/bluespace_basic //Bluespace-memery - id = "bluespace_basic" - display_name = "Basic Bluespace Theory" - description = "Basic studies into the mysterious alternate dimension known as bluespace." - prereq_ids = list("base", "datatheory") - design_ids = list("beacon", "xenobioconsole", "telesci_gps", "xenobio_monkeys") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/practical_bluespace - id = "practical_bluespace" - display_name = "Applied Bluespace Research" - description = "Using bluespace to make things faster and better." - prereq_ids = list("bluespace_basic", "engineering") - design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "xenobio_slimebasic") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - -/datum/techweb_node/adv_bluespace - id = "adv_bluespace" - display_name = "Advanced Bluespace Research" - description = "Deeper understanding of how the Bluespace dimension works" - prereq_ids = list("practical_bluespace", "high_efficiency") - design_ids = list("bluespace_matter_bin", "femto_mani", "triphasic_scanning", "bluespace_crystal", "xenobio_slimeadv") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) - -/datum/techweb_node/bluespace_power - id = "bluespace_power" - display_name = "Bluespace Power Technology" - description = "Even more powerful.. power!" - prereq_ids = list("adv_power", "adv_bluespace") - design_ids = list("bluespace_cell", "quadratic_capacitor") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/bluespace_holding - id = "bluespace_holding" - display_name = "Bluespace Pockets" - description = "Studies into the mysterious alternate dimension known as bluespace and how to place items in the threads of reality." - prereq_ids = list("adv_power", "adv_bluespace", "adv_biotech", "adv_plasma") - design_ids = list( "bluespacebodybag","bag_holding", "bluespace_pod", "borg_upgrade_trashofholding", "blutrash", "satchel_holding", "bsblood_bag", "duffelbag_holding") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5500) - -/datum/techweb_node/bluespace_portal - id = "bluespace_portal" - display_name = "Bluespace Portals" - description = "Allows for Bluespace Tech to be used tandem with Wormhole tech." - prereq_ids = list("adv_weaponry", "adv_bluespace") - design_ids = list("wormholeprojector") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/bluespace_warping - id = "bluespace_warping" - display_name = "Bluespace Travel" - description = "Application of Bluespace for static teleportation technology." - prereq_ids = list("adv_power", "adv_bluespace") - design_ids = list("tele_station", "tele_hub", "quantumpad", "quantum_keycard", "launchpad", "launchpad_console", "teleconsole", "roastingstick") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/unregulated_bluespace - id = "unregulated_bluespace" - display_name = "Unregulated Bluespace Research" - description = "Bluespace technology using unstable or unbalanced procedures, prone to damaging the fabric of bluespace. Outlawed by galactic conventions." - prereq_ids = list("bluespace_warping", "syndicate_basic") - design_ids = list("desynchronizer") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/////////////////////////plasma tech///////////////////////// -/datum/techweb_node/basic_plasma - id = "basic_plasma" - display_name = "Basic Plasma Research" - description = "Research into the mysterious and dangerous substance, plasma." - prereq_ids = list("engineering") - design_ids = list("mech_generator") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - -/datum/techweb_node/adv_plasma - id = "adv_plasma" - display_name = "Advanced Plasma Research" - description = "Research on how to fully exploit the power of plasma." - prereq_ids = list("basic_plasma") - design_ids = list("mech_plasma_cutter") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) - -/////////////////////////robotics tech///////////////////////// -/datum/techweb_node/robotics - id = "robotics" - display_name = "Basic Robotics Research" - description = "Programmable machines that make our lives lazier." - prereq_ids = list("base") - design_ids = list("paicard", "drone_shell") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - -/datum/techweb_node/adv_robotics - id = "adv_robotics" - display_name = "Advanced Robotics Research" - description = "It can even do the dishes!" - prereq_ids = list("robotics") - design_ids = list("borg_upgrade_diamonddrill", "borg_upgrade_advancedmop", "borg_upgrade_advcutter") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) - -/datum/techweb_node/neural_programming - id = "neural_programming" - display_name = "Neural Programming" - description = "Study into networks of processing units that mimic our brains." - prereq_ids = list("biotech", "datatheory") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/posibrain - id = "posibrain" - display_name = "Positronic Brain" - description = "Applied usage of neural technology allowing for autonomous AI units based on special metallic cubes with conductive and processing circuits." - prereq_ids = list("neural_programming") - design_ids = list("mmi_posi") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/cyborg_upg_util - id = "cyborg_upg_util" - display_name = "Cyborg Upgrades: Utility" - description = "Utility upgrades for cyborgs." - prereq_ids = list("engineering", "robotics") - design_ids = list("borg_upgrade_lavaproof", "borg_upgrade_thrusters", "borg_upgrade_selfrepair", "borg_upgrade_expand", "borg_upgrade_rped") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - -/datum/techweb_node/cyborg_upg_med - id = "cyborg_upg_med" - display_name = "Cyborg Upgrades: Medical" - description = "Medical upgrades for cyborgs." - prereq_ids = list("adv_biotech", "robotics") - design_ids = list("borg_upgrade_advhealth", "borg_upgrade_piercinghypospray", "borg_upgrade_highstrengthsynthesiser", "borg_upgrade_expandedsynthesiser", "borg_upgrade_pinpointer", "borg_upgrade_surgicalprocessor") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - -/datum/techweb_node/cyborg_upg_combat - id = "cyborg_upg_combat" - display_name = "Cyborg Upgrades: Combat" - description = "Military grade upgrades for cyborgs." - prereq_ids = list("adv_robotics", "adv_engi" , "weaponry") - design_ids = list("borg_upgrade_vtec", "borg_upgrade_disablercooler") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - -/datum/techweb_node/ai - id = "ai" - display_name = "Artificial Intelligence" - description = "AI unit research." - prereq_ids = list("robotics", "posibrain") - design_ids = list("aifixer", "aicore", "safeguard_module", "onehuman_module", "protectstation_module", "quarantine_module", "oxygen_module", "freeform_module", - "reset_module", "purge_module", "remove_module", "freeformcore_module", "asimov_module", "paladin_module", "tyrant_module", "corporate_module", - "default_module", "borg_ai_control", "mecha_tracking_ai_control", "aiupload", "intellicard") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/////////////////////////EMP tech///////////////////////// -/datum/techweb_node/emp_basic //EMP tech for some reason - id = "emp_basic" - display_name = "Electromagnetic Theory" - description = "Study into usage of frequencies in the electromagnetic spectrum." - prereq_ids = list("base") - design_ids = list("holosign", "holosignsec", "holosignengi", "holosignatmos", "holosignfirelock", "inducer", "tray_goggles", "holopad") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/emp_adv - id = "emp_adv" - display_name = "Advanced Electromagnetic Theory" - description = "Determining whether reversing the polarity will actually help in a given situation." - prereq_ids = list("emp_basic") - design_ids = list("ultra_micro_laser") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) - -/datum/techweb_node/emp_super - id = "emp_super" - display_name = "Quantum Electromagnetic Technology" //bs - description = "Even better electromagnetic technology." - prereq_ids = list("emp_adv") - design_ids = list("quadultra_micro_laser") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) - -/////////////////////////Clown tech///////////////////////// -/datum/techweb_node/clown - id = "clown" - display_name = "Clown Technology" - description = "Honk?!" - prereq_ids = list("base") - design_ids = list("air_horn", "honker_main", "honker_peri", "honker_targ", "honk_chassis", "honk_head", "honk_torso", "honk_left_arm", "honk_right_arm", - "honk_left_leg", "honk_right_leg", "mech_banana_mortar", "mech_mousetrap_mortar", "mech_honker", "mech_punching_face", "implant_trombone", "borg_transform_clown") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -////////////////////////Computer tech//////////////////////// -/datum/techweb_node/comptech - id = "comptech" - display_name = "Computer Consoles" - description = "Computers and how they work." - prereq_ids = list("datatheory") - design_ids = list("cargo", "cargorequest", "libraryconsole", "mining", "miningshuttle", "crewconsole", "rdcamera", "comconsole", "idcardconsole", "seccamera") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - -/datum/techweb_node/computer_hardware_basic //Modular computers are shitty and nearly useless so until someone makes them actually useful this can be easy to get. - id = "computer_hardware_basic" - display_name = "Computer Hardware" - description = "How computer hardware are made." - prereq_ids = list("comptech") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1250) //they are really kinda shitty - design_ids = list("hdd_basic", "hdd_advanced", "hdd_super", "hdd_cluster", "ssd_small", "ssd_micro", "netcard_basic", "netcard_advanced", "netcard_wired", - "portadrive_basic", "portadrive_advanced", "portadrive_super", "cardslot", "aislot", "miniprinter", "APClink", "bat_control", "bat_normal", "bat_advanced", - "bat_super", "bat_micro", "bat_nano", "cpu_normal", "pcpu_normal", "cpu_small", "pcpu_small") - -/datum/techweb_node/comp_recordkeeping - id = "comp_recordkeeping" - display_name = "Computerized Recordkeeping" - description = "Organized record databases and how they're used." - prereq_ids = list("comptech") - design_ids = list("secdata", "med_data", "prisonmanage", "vendor", "automated_announcement") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1250) - -/datum/techweb_node/telecomms - id = "telecomms" - display_name = "Telecommunications Technology" - description = "Subspace transmission technology for near-instant communications devices." - prereq_ids = list("comptech", "bluespace_basic") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) - design_ids = list("s-receiver", "s-bus", "s-broadcaster", "s-processor", "s-hub", "s-server", "s-relay", "comm_monitor", "comm_server", - "s-ansible", "s-filter", "s-amplifier", "ntnet_relay", "s-treatment", "s-analyzer", "s-crystal", "s-transmitter", "message_monitor") - -/datum/techweb_node/integrated_HUDs - id = "integrated_HUDs" - display_name = "Integrated HUDs" - description = "The usefulness of computerized records, projected straight onto your eyepiece!" - prereq_ids = list("comp_recordkeeping", "emp_basic") - design_ids = list("health_hud", "security_hud", "diagnostic_hud", "scigoggles", "health_hud_prescription", "security_hud_prescription", "diagnostic_hud_prescription") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) - -/datum/techweb_node/NVGtech - id = "NVGtech" - display_name = "Night Vision Technology" - description = "Allows seeing in the dark without actual light!" - prereq_ids = list("integrated_HUDs", "adv_engi", "emp_adv") - design_ids = list("health_hud_night", "security_hud_night", "diagnostic_hud_night", "night_visision_goggles", "nvgmesons", "night_visision_goggles_glasses") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - -////////////////////////Medical//////////////////////// -/datum/techweb_node/cloning - id = "cloning" - display_name = "Genetic Engineering" - description = "We have the technology to make him." - prereq_ids = list("biotech") - design_ids = list("clonecontrol", "clonepod", "clonescanner", "scan_console", "cloning_disk") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - -/datum/techweb_node/cryotech - id = "cryotech" - display_name = "Cryostasis Technology" - description = "Smart freezing of objects to preserve them!" - prereq_ids = list("adv_engi", "biotech") - design_ids = list("splitbeaker", "noreactsyringe", "cryotube", "cryo_Grenade") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - -/datum/techweb_node/subdermal_implants - id = "subdermal_implants" - display_name = "Subdermal Implants" - description = "Electronic implants buried beneath the skin." - prereq_ids = list("biotech", "datatheory") - design_ids = list("implanter", "implantcase", "implant_chem", "implant_tracking", "locator", "c38_trac") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/cyber_organs - id = "cyber_organs" - display_name = "Cybernetic Organs" - description = "We have the technology to rebuild him." - prereq_ids = list("adv_biotech") - design_ids = list("cybernetic_ears", "cybernetic_heart", "cybernetic_liver", "cybernetic_lungs", "cybernetic_tongue") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) - -/datum/techweb_node/cyber_organs_upgraded - id = "cyber_organs_upgraded" - display_name = "Upgraded Cybernetic Organs" - description = "We have the technology to upgrade him." - prereq_ids = list("cyber_organs") - design_ids = list("cybernetic_ears_u", "cybernetic_heart_u", "cybernetic_liver_u", "cybernetic_lungs_u") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) - -/datum/techweb_node/cyber_implants - id = "cyber_implants" - display_name = "Cybernetic Implants" - description = "Electronic implants that improve humans." - prereq_ids = list("adv_biotech", "adv_datatheory") - design_ids = list("ci-nutriment", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud", "ci-service") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/adv_cyber_implants - id = "adv_cyber_implants" - display_name = "Advanced Cybernetic Implants" - description = "Upgraded and more powerful cybernetic implants." - prereq_ids = list("neural_programming", "cyber_implants","integrated_HUDs") - design_ids = list("ci-toolset", "ci-surgery", "ci-reviver", "ci-nutrimentplus") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/combat_cyber_implants - id = "combat_cyber_implants" - display_name = "Combat Cybernetic Implants" - description = "Military grade combat implants to improve performance." - prereq_ids = list("adv_cyber_implants","weaponry","NVGtech","high_efficiency") - design_ids = list("ci-xray", "ci-thermals", "ci-antidrop", "ci-antistun", "ci-thrusters", "ci-shield") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -////////////////////////Tools//////////////////////// -/datum/techweb_node/basic_tools - id = "basic_tools" - display_name = "Basic Tools" - description = "Basic mechanical, electronic, surgical and botanical tools." - prereq_ids = list("base") - design_ids = list("screwdriver", "wrench", "wirecutters", "crowbar", "multitool", "welding_tool", "tscanner", "analyzer", "cable_coil", "pipe_painter", "airlock_painter", "scalpel", "circular_saw", "surgicaldrill", "retractor", "cautery", "hemostat", "cultivator", "plant_analyzer", "shovel", "spade", "hatchet", "mop", "broom", "normtrash") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500) - -/datum/techweb_node/basic_mining - id = "basic_mining" - display_name = "Mining Technology" - description = "Better than Efficiency V." - prereq_ids = list("engineering", "basic_plasma") - design_ids = list("drill", "superresonator", "triggermod", "damagemod", "cooldownmod", "rangemod", "ore_redemption", "mining_equipment_vendor", "cargoexpress", "plasmacutter")//e a r l y g a m e) - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/adv_mining - id = "adv_mining" - display_name = "Advanced Mining Technology" - description = "Efficiency Level 127" //dumb mc references - prereq_ids = list("basic_mining", "adv_engi", "adv_power", "adv_plasma") - design_ids = list("drill_diamond", "jackhammer", "hypermod", "plasmacutter_adv", "ore_silo", "plasteel_pick", "titanium_pick") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/janitor - id = "janitor" - display_name = "Advanced Sanitation Technology" - description = "Clean things better, faster, stronger, and harder!" - prereq_ids = list("adv_engi") - design_ids = list("advmop", "buffer", "light_replacer", "spraybottle", "beartrap", "ci-janitor", "paint_remover") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1750) // No longer has its bag - -/datum/techweb_node/botany - id = "botany" - display_name = "Botanical Engineering" - description = "Botanical tools." - prereq_ids = list("adv_engi", "biotech") - design_ids = list("diskplantgene", "portaseeder", "plantgenes", "flora_gun", "hydro_tray", "biogenerator", "seed_extractor") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) - -/datum/techweb_node/exp_tools - id = "exp_tools" - display_name = "Experimental Tools" - description = "Highly advanced construction tools." - design_ids = list("exwelder", "jawsoflife", "handdrill", "holosigncombifan") - prereq_ids = list("adv_engi") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) - -/datum/techweb_node/sec_basic - id = "sec_basic" - display_name = "Basic Security Equipment" - description = "Standard equipment used by security." - design_ids = list("seclite", "pepperspray", "bola_energy", "zipties", "evidencebag") - prereq_ids = list("base") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 750) - -/////////////////////////weaponry tech///////////////////////// -/datum/techweb_node/weaponry - id = "weaponry" - display_name = "Weapon Development Technology" - description = "Our researchers have found new to weaponize just about everything now." - prereq_ids = list("engineering") - design_ids = list("pin_testing", "tele_shield", "lasercarbine", "pin_away") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) - -/datum/techweb_node/adv_weaponry - id = "adv_weaponry" - display_name = "Advanced Weapon Development Technology" - description = "Our weapons are breaking the rules of reality by now." - prereq_ids = list("adv_engi", "weaponry") - design_ids = list("pin_loyalty", "laser_shield", "bullet_shield") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) - -/datum/techweb_node/electric_weapons - id = "electronic_weapons" - display_name = "Electric Weapons" - description = "Weapons using electric technology" - prereq_ids = list("weaponry", "adv_power" , "emp_basic") - design_ids = list("stunrevolver", "stunshell", "ioncarbine") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) - -/datum/techweb_node/radioactive_weapons - id = "radioactive_weapons" - display_name = "Radioactive Weaponry" - description = "Weapons using radioactive technology." - prereq_ids = list("adv_engi", "adv_weaponry") - design_ids = list("nuclear_gun") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/magnetic_weapons - id = "magnetic_weapons" - display_name = "Magnetic Weapons" - description = "Weapons using magnetic technology" - prereq_ids = list("weaponry", "adv_weaponry", "emp_adv") - design_ids = list("magrifle", "magpistol", "mag_magrifle", "mag_magrifle_nl", "mag_magpistol", "mag_magpistol_nl") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/medical_weapons - id = "medical_weapons" - display_name = "Medical Weaponry" - description = "Weapons using medical technology." - prereq_ids = list("adv_biotech", "adv_weaponry") - design_ids = list("rapidsyringe", "shotgundartcryostatis") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - -/datum/techweb_node/beam_weapons - id = "beam_weapons" - display_name = "Beam Weaponry" - description = "Various basic beam weapons" - prereq_ids = list("adv_weaponry") - design_ids = list("temp_gun", "xray_laser") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/adv_beam_weapons - id = "adv_beam_weapons" - display_name = "Advanced Beam Weaponry" - description = "Various advanced beam weapons" - prereq_ids = list("beam_weapons") - design_ids = list("beamrifle") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3250) // Sniper - -/datum/techweb_node/explosive_weapons - id = "explosive_weapons" - display_name = "Explosive & Pyrotechnical Weaponry" - description = "If the light stuff just won't do it." - prereq_ids = list("adv_weaponry") - design_ids = list("large_Grenade", "pyro_Grenade", "adv_Grenade") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) - -/datum/techweb_node/ballistic_weapons - id = "ballistic_weapons" - display_name = "Ballistic Weaponry" - description = "This isn't research.. This is reverse-engineering!" - prereq_ids = list("weaponry") - design_ids = list("mag_oldsmg", "mag_oldsmg_ap", "mag_oldsmg_ic", "mag_oldsmg_rubber", "mag_oldsmg_tx") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) - -/datum/techweb_node/exotic_ammo - id = "exotic_ammo" - display_name = "Exotic Ammunition" - description = "They won't know what hit em." - prereq_ids = list("weaponry", "ballistic_weapons") - design_ids = list("techshotshell", "c38_hotshot", "c38_iceblox") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) - -/datum/techweb_node/gravity_gun - id = "gravity_gun" - display_name = "One-point Bluespace-gravitational Manipulator" - description = "Fancy wording for gravity gun." - prereq_ids = list("adv_weaponry", "adv_bluespace") - design_ids = list("gravitygun", "mech_gravcatapult") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -////////////////////////mech technology//////////////////////// -/datum/techweb_node/adv_mecha - id = "adv_mecha" - display_name = "Advanced Exosuits" - description = "For when you just aren't Gundam enough." - prereq_ids = list("adv_robotics") - design_ids = list("mech_repair_droid") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/odysseus - id = "mecha_odysseus" - display_name = "EXOSUIT: Odysseus" - description = "Odysseus exosuit designs" - prereq_ids = list("base") - design_ids = list("odysseus_chassis", "odysseus_torso", "odysseus_head", "odysseus_left_arm", "odysseus_right_arm" ,"odysseus_left_leg", "odysseus_right_leg", - "odysseus_main", "odysseus_peri") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/gygax - id = "mech_gygax" - display_name = "EXOSUIT: Gygax" - description = "Gygax exosuit designs" - prereq_ids = list("adv_mecha", "weaponry") - design_ids = list("gygax_chassis", "gygax_torso", "gygax_head", "gygax_left_arm", "gygax_right_arm", "gygax_left_leg", "gygax_right_leg", "gygax_main", - "gygax_peri", "gygax_targ", "gygax_armor") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/durand - id = "mech_durand" - display_name = "EXOSUIT: Durand" - description = "Durand exosuit designs" - prereq_ids = list("adv_mecha", "adv_weaponry") - design_ids = list("durand_chassis", "durand_torso", "durand_head", "durand_left_arm", "durand_right_arm", "durand_left_leg", "durand_right_leg", "durand_main", - "durand_peri", "durand_targ", "durand_armor") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) - -/datum/techweb_node/phazon - id = "mecha_phazon" - display_name = "EXOSUIT: Phazon" - description = "Phazon exosuit designs" - prereq_ids = list("adv_mecha", "weaponry" , "adv_bluespace") - design_ids = list("phazon_chassis", "phazon_torso", "phazon_head", "phazon_left_arm", "phazon_right_arm", "phazon_left_leg", "phazon_right_leg", "phazon_main", - "phazon_peri", "phazon_targ", "phazon_armor") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) - -/datum/techweb_node/adv_mecha_tools - id = "adv_mecha_tools" - display_name = "Advanced Exosuit Equipment" - description = "Tools for high level mech suits" - prereq_ids = list("adv_mecha") - design_ids = list("mech_rcd") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/med_mech_tools - id = "med_mech_tools" - display_name = "Medical Exosuit Equipment" - description = "Tools for high level mech suits" - prereq_ids = list("adv_biotech") - design_ids = list("mech_sleeper", "mech_syringe_gun", "mech_medi_beam") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - -/datum/techweb_node/mech_modules - id = "adv_mecha_modules" - display_name = "Simple Exosuit Modules" - description = "An advanced piece of mech weaponry" - prereq_ids = list("adv_mecha", "bluespace_power") - design_ids = list("mech_energy_relay", "mech_ccw_armor", "mech_proj_armor", "mech_generator_nuclear") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/mech_scattershot - id = "mecha_tools" - display_name = "Exosuit Weapon (LBX AC 10 \"Scattershot\")" - description = "An advanced piece of mech weaponry" - prereq_ids = list("ballistic_weapons") - design_ids = list("mech_scattershot", "mech_scattershot_ammo") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/mech_seedscatter - id = "mech_seedscatter" - display_name = "Exosuit Weapon (Melon Seed \"Scattershot\")" - description = "An advanced piece of mech weaponry" - prereq_ids = list("ballistic_weapons") - design_ids = list("mech_seedscatter") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/mech_carbine - id = "mech_carbine" - display_name = "Exosuit Weapon (FNX-99 \"Hades\" Carbine)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("ballistic_weapons") - design_ids = list("mech_carbine", "mech_carbine_ammo") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/mech_ion - id = "mmech_ion" - display_name = "Exosuit Weapon (MKIV Ion Heavy Cannon)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("electronic_weapons", "emp_adv") - design_ids = list("mech_ion") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/mech_tesla - id = "mech_tesla" - display_name = "Exosuit Weapon (MKI Tesla Cannon)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("electronic_weapons", "adv_power") - design_ids = list("mech_tesla") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/mech_laser - id = "mech_laser" - display_name = "Exosuit Weapon (CH-PS \"Immolator\" Laser)" - description = "A basic piece of mech weaponry" - prereq_ids = list("beam_weapons") - design_ids = list("mech_laser") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/mech_laser_heavy - id = "mech_laser_heavy" - display_name = "Exosuit Weapon (CH-LC \"Solaris\" Laser Cannon)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("adv_beam_weapons") - design_ids = list("mech_laser_heavy") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/mech_grenade_launcher - id = "mech_grenade_launcher" - display_name = "Exosuit Weapon (SGL-6 Grenade Launcher)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("explosive_weapons") - design_ids = list("mech_grenade_launcher", "mech_grenade_launcher_ammo") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/mech_missile_rack - id = "mech_missile_rack" - display_name = "Exosuit Weapon (BRM-6 Missile Rack)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("explosive_weapons") - design_ids = list("mech_missile_rack", "mech_missile_rack_ammo") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/clusterbang_launcher - id = "clusterbang_launcher" - display_name = "Exosuit Module (SOB-3 Clusterbang Launcher)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("explosive_weapons") - design_ids = list("clusterbang_launcher", "clusterbang_launcher_ammo") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/mech_teleporter - id = "mech_teleporter" - display_name = "Exosuit Module (Teleporter Module)" - description = "An advanced piece of mech Equipment" - prereq_ids = list("adv_bluespace") - design_ids = list("mech_teleporter") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/mech_wormhole_gen - id = "mech_wormhole_gen" - display_name = "Exosuit Module (Localized Wormhole Generator)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("adv_bluespace") - design_ids = list("mech_wormhole_gen") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/mech_taser - id = "mech_taser" - display_name = "Exosuit Weapon (PBT \"Pacifier\" Mounted Taser)" - description = "A basic piece of mech weaponry" - prereq_ids = list("electronic_weapons") - design_ids = list("mech_taser") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/mech_lmg - id = "mech_lmg" - display_name = "Exosuit Weapon (\"Ultra AC 2\" LMG)" - description = "An advanced piece of mech weaponry" - prereq_ids = list("ballistic_weapons") - design_ids = list("mech_lmg", "mech_lmg_ammo") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/mech_diamond_drill - id = "mech_diamond_drill" - display_name = "Exosuit Diamond Drill" - description = "A diamond drill fit for a large exosuit" - prereq_ids = list("adv_mining") - design_ids = list("mech_diamond_drill") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/////////////////////////Nanites///////////////////////// -/datum/techweb_node/nanite_base - id = "nanite_base" - display_name = "Basic Nanite Programming" - description = "The basics of nanite construction and programming." - prereq_ids = list("datatheory","robotics") - design_ids = list("nanite_disk","nanite_remote","nanite_comm_remote","nanite_scanner",\ - "nanite_chamber","public_nanite_chamber","nanite_chamber_control","nanite_programmer","nanite_program_hub","nanite_cloud_control",\ - "relay_nanites", "monitoring_nanites", "access_nanites", "repairing_nanites","sensor_nanite_volume", "repeater_nanites", "relay_repeater_nanites","red_diag_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/nanite_smart - id = "nanite_smart" - display_name = "Smart Nanite Programming" - description = "Nanite programs that require nanites to perform complex actions, act independently, roam or seek targets." - prereq_ids = list("nanite_base","adv_robotics") - design_ids = list("purging_nanites", "research_nanites", "metabolic_nanites", "stealth_nanites", "memleak_nanites","sensor_voice_nanites", "voice_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) - -/datum/techweb_node/nanite_mesh - id = "nanite_mesh" - display_name = "Mesh Nanite Programming" - description = "Nanite programs that require static structures and membranes." - prereq_ids = list("nanite_base","engineering") - design_ids = list("hardening_nanites", "dermal_button_nanites", "refractive_nanites", "cryo_nanites", "conductive_nanites", "shock_nanites", "emp_nanites", "temperature_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/nanite_bio - id = "nanite_bio" - display_name = "Biological Nanite Programming" - description = "Nanite programs that require complex biological interaction." - prereq_ids = list("nanite_base","biotech") - design_ids = list("regenerative_nanites", "bloodheal_nanites", "coagulating_nanites","poison_nanites","flesheating_nanites",\ - "sensor_crit_nanites","sensor_death_nanites", "sensor_health_nanites", "sensor_damage_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/nanite_neural - id = "nanite_neural" - display_name = "Neural Nanite Programming" - description = "Nanite programs affecting nerves and brain matter." - prereq_ids = list("nanite_bio") - design_ids = list("nervous_nanites", "brainheal_nanites", "paralyzing_nanites", "stun_nanites", "selfscan_nanites","good_mood_nanites","bad_mood_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/nanite_synaptic - id = "nanite_synaptic" - display_name = "Synaptic Nanite Programming" - description = "Nanite programs affecting mind and thoughts." - prereq_ids = list("nanite_neural","neural_programming") - design_ids = list("mindshield_nanites", "pacifying_nanites", "blinding_nanites", "sleep_nanites", "mute_nanites", "speech_nanites","hallucination_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - -/datum/techweb_node/nanite_harmonic - id = "nanite_harmonic" - display_name = "Harmonic Nanite Programming" - description = "Nanite programs that require seamless integration between nanites and biology." - prereq_ids = list("nanite_bio","nanite_smart","nanite_mesh") - design_ids = list("fakedeath_nanites","researchplus_nanites","aggressive_nanites","defib_nanites","regenerative_plus_nanites","brainheal_plus_nanites","purging_plus_nanites","adrenaline_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000) - -/datum/techweb_node/nanite_combat - id = "nanite_military" - display_name = "Military Nanite Programming" - description = "Nanite programs that perform military-grade functions." - prereq_ids = list("nanite_harmonic", "syndicate_basic") - design_ids = list("explosive_nanites","pyro_nanites","meltdown_nanites","viral_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) - -/datum/techweb_node/nanite_hazard - id = "nanite_hazard" - display_name = "Hazard Nanite Programs" - description = "Extremely advanced Nanite programs with the potential of being extremely dangerous." - prereq_ids = list("nanite_harmonic", "alientech") - design_ids = list("spreading_nanites","mindcontrol_nanites","mitosis_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) - -////////////////////////Alien technology//////////////////////// -/datum/techweb_node/alientech //AYYYYYYYYLMAOO tech - id = "alientech" - display_name = "Alien Technology" - description = "Things used by the greys." - prereq_ids = list("biotech","engineering") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - hidden = TRUE - design_ids = list("alienalloy") - -/datum/techweb_node/alientech/New() - . = ..() - boost_item_paths = typesof(/obj/item/gun/energy/alien, /obj/item/scalpel/alien, /obj/item/hemostat/alien, - /obj/item/retractor/alien, /obj/item/circular_saw/alien, /obj/item/cautery/alien, - /obj/item/surgicaldrill/alien, /obj/item/screwdriver/abductor, /obj/item/wrench/abductor, - /obj/item/crowbar/abductor, /obj/item/multitool/abductor, - /obj/item/stock_parts/cell/infinite/abductor, /obj/item/weldingtool/abductor, - /obj/item/wirecutters/abductor, /obj/item/circuitboard/machine/abductor, - /obj/item/abductor, /obj/item/stack/sheet/mineral/abductor) - -/datum/techweb_node/alien_bio - id = "alien_bio" - display_name = "Alien Biological Tools" - description = "Advanced biological tools." - prereq_ids = list("alientech", "advance_surgerytools") - design_ids = list("alien_scalpel", "alien_hemostat", "alien_retractor", "alien_saw", "alien_drill", "alien_cautery", "ayyplantgenes") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - -/datum/techweb_node/alien_engi - id = "alien_engi" - display_name = "Alien Engineering" - description = "Alien engineering tools." - prereq_ids = list("alientech", "exp_tools") - design_ids = list("alien_wrench", "alien_wirecutters", "alien_screwdriver", "alien_crowbar", "alien_welder", "alien_multitool") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - -/datum/techweb_node/syndicate_basic - id = "syndicate_basic" - display_name = "Illegal Technology" - description = "Dangerous research used to create dangerous objects." - prereq_ids = list("adv_engi", "adv_weaponry", "explosive_weapons") - design_ids = list("decloner", "borg_syndicate_module", "suppressor", "largecrossbow", "donksofttoyvendor", "donksoft_refill", "syndiesleeper") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) - hidden = TRUE - -/datum/techweb_node/syndicate_basic/New() //Crappy way of making syndicate gear decon supported until there's another way. - . = ..() - boost_item_paths = list() - for(var/path in GLOB.uplink_items) - var/datum/uplink_item/UI = new path - if(!UI.item || !UI.illegal_tech) - continue - boost_item_paths |= UI.item //allows deconning to unlock. - -/datum/techweb_node/advanced_illegal_ballistics - id = "advanced_illegal_ballistics" - display_name = "Advanced Non-Standard Ballistics" - description = "Ballistic ammunition for non-standard firearms. Usually the ones you don't have nor want to be involved with." - design_ids = list("10mm","10mmap","10mminc","10mmhp","sl357","sl357ap","pistolm9mm","m45","bolt_clip") - prereq_ids = list("ballistic_weapons","syndicate_basic","explosive_weapons") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 25000) //This gives sec lethal mags/clips for guns from traitors, space, or anything in between. - -//Helpers for debugging/balancing the techweb in its entirety! - -/proc/total_techweb_points() - var/list/datum/techweb_node/processing = list() - for(var/i in subtypesof(/datum/techweb_node)) - processing += new i - var/datum/techweb/TW = new - TW.research_points = list() - for(var/i in processing) - var/datum/techweb_node/TN = i - TW.add_point_list(TN.research_costs) - return TW.research_points - -/proc/total_techweb_points_printout() - var/list/datum/techweb_node/processing = list() - for(var/i in subtypesof(/datum/techweb_node)) - processing += new i - var/datum/techweb/TW = new - TW.research_points = list() - for(var/i in processing) - var/datum/techweb_node/TN = i - TW.add_point_list(TN.research_costs) - return TW.printout_points() diff --git a/code/modules/research/techweb/nodes/alien_nodes.dm b/code/modules/research/techweb/nodes/alien_nodes.dm new file mode 100644 index 0000000000..567a5dbded --- /dev/null +++ b/code/modules/research/techweb/nodes/alien_nodes.dm @@ -0,0 +1,36 @@ + +////////////////////////Alien technology//////////////////////// +/datum/techweb_node/alientech //AYYYYYYYYLMAOO tech + id = "alientech" + display_name = "Alien Technology" + description = "Things used by the greys." + prereq_ids = list("biotech","engineering") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + hidden = TRUE + design_ids = list("alienalloy") + +/datum/techweb_node/alientech/New() + . = ..() + boost_item_paths = typesof(/obj/item/gun/energy/alien, /obj/item/scalpel/alien, /obj/item/hemostat/alien, + /obj/item/retractor/alien, /obj/item/circular_saw/alien, /obj/item/cautery/alien, + /obj/item/surgicaldrill/alien, /obj/item/screwdriver/abductor, /obj/item/wrench/abductor, + /obj/item/crowbar/abductor, /obj/item/multitool/abductor, + /obj/item/stock_parts/cell/infinite/abductor, /obj/item/weldingtool/abductor, + /obj/item/wirecutters/abductor, /obj/item/circuitboard/machine/abductor, + /obj/item/abductor, /obj/item/stack/sheet/mineral/abductor) + +/datum/techweb_node/alien_bio + id = "alien_bio" + display_name = "Alien Biological Tools" + description = "Advanced biological tools." + prereq_ids = list("alientech", "advance_surgerytools") + design_ids = list("alien_scalpel", "alien_hemostat", "alien_retractor", "alien_saw", "alien_drill", "alien_cautery", "ayyplantgenes") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + +/datum/techweb_node/alien_engi + id = "alien_engi" + display_name = "Alien Engineering" + description = "Alien engineering tools." + prereq_ids = list("alientech", "exp_tools") + design_ids = list("alien_wrench", "alien_wirecutters", "alien_screwdriver", "alien_crowbar", "alien_welder", "alien_multitool") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) diff --git a/code/modules/research/techweb/nodes/biotech_nodes.dm b/code/modules/research/techweb/nodes/biotech_nodes.dm new file mode 100644 index 0000000000..8f7d978a99 --- /dev/null +++ b/code/modules/research/techweb/nodes/biotech_nodes.dm @@ -0,0 +1,25 @@ + +/////////////////////////Biotech///////////////////////// +/datum/techweb_node/biotech + id = "biotech" + display_name = "Biological Technology" + description = "What makes us tick." //the MC, silly! + prereq_ids = list("base") + design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibrillator", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen", "telescopiciv", "medspray","genescanner") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/adv_biotech + id = "adv_biotech" + display_name = "Advanced Biotechnology" + description = "Advanced Biotechnology" + prereq_ids = list("biotech") + design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "meta_beaker", "healthanalyzer_advanced", "harvester", "holobarrier_med", "defibrillator_compact", "smartdartgun", "medicinalsmartdart", "pHmeter", "containmentbodybag") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/bio_process + id = "bio_process" + display_name = "Biological Processing" + description = "From slimes to kitchens." + prereq_ids = list("biotech") + design_ids = list("smartfridge", "gibber", "deepfryer", "monkey_recycler", "processor", "gibber", "microwave", "reagentgrinder", "dish_drive") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) diff --git a/code/modules/research/techweb/nodes/bluespace_nodes.dm b/code/modules/research/techweb/nodes/bluespace_nodes.dm new file mode 100644 index 0000000000..85142cd9b8 --- /dev/null +++ b/code/modules/research/techweb/nodes/bluespace_nodes.dm @@ -0,0 +1,65 @@ + +/////////////////////////Bluespace tech///////////////////////// +/datum/techweb_node/bluespace_basic //Bluespace-memery + id = "bluespace_basic" + display_name = "Basic Bluespace Theory" + description = "Basic studies into the mysterious alternate dimension known as bluespace." + prereq_ids = list("base", "datatheory") + design_ids = list("beacon", "xenobioconsole", "telesci_gps", "xenobio_monkeys") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/practical_bluespace + id = "practical_bluespace" + display_name = "Applied Bluespace Research" + description = "Using bluespace to make things faster and better." + prereq_ids = list("bluespace_basic", "engineering") + design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "xenobio_slimebasic") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + +/datum/techweb_node/adv_bluespace + id = "adv_bluespace" + display_name = "Advanced Bluespace Research" + description = "Deeper understanding of how the Bluespace dimension works" + prereq_ids = list("practical_bluespace", "high_efficiency") + design_ids = list("bluespace_matter_bin", "femto_mani", "triphasic_scanning", "bluespace_crystal", "xenobio_slimeadv") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) + +/datum/techweb_node/bluespace_power + id = "bluespace_power" + display_name = "Bluespace Power Technology" + description = "Even more powerful.. power!" + prereq_ids = list("adv_power", "adv_bluespace") + design_ids = list("bluespace_cell", "quadratic_capacitor") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/bluespace_holding + id = "bluespace_holding" + display_name = "Bluespace Pockets" + description = "Studies into the mysterious alternate dimension known as bluespace and how to place items in the threads of reality." + prereq_ids = list("adv_power", "adv_bluespace", "adv_biotech", "adv_plasma") + design_ids = list( "bluespacebodybag","bag_holding", "bluespace_pod", "borg_upgrade_trashofholding", "blutrash", "satchel_holding", "bsblood_bag", "duffelbag_holding") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5500) + +/datum/techweb_node/bluespace_portal + id = "bluespace_portal" + display_name = "Bluespace Portals" + description = "Allows for Bluespace Tech to be used tandem with Wormhole tech." + prereq_ids = list("adv_weaponry", "adv_bluespace") + design_ids = list("wormholeprojector") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/bluespace_warping + id = "bluespace_warping" + display_name = "Bluespace Travel" + description = "Application of Bluespace for static teleportation technology." + prereq_ids = list("adv_power", "adv_bluespace") + design_ids = list("tele_station", "tele_hub", "quantumpad", "quantum_keycard", "launchpad", "launchpad_console", "teleconsole", "roastingstick") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/unregulated_bluespace + id = "unregulated_bluespace" + display_name = "Unregulated Bluespace Research" + description = "Bluespace technology using unstable or unbalanced procedures, prone to damaging the fabric of bluespace. Outlawed by galactic conventions." + prereq_ids = list("bluespace_warping", "syndicate_basic") + design_ids = list("desynchronizer") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) diff --git a/code/modules/research/techweb/nodes/computer_hud_nodes.dm b/code/modules/research/techweb/nodes/computer_hud_nodes.dm new file mode 100644 index 0000000000..2835edc52b --- /dev/null +++ b/code/modules/research/techweb/nodes/computer_hud_nodes.dm @@ -0,0 +1,60 @@ + +////////////////////////Computer tech//////////////////////// +/datum/techweb_node/comptech + id = "comptech" + display_name = "Computer Consoles" + description = "Computers and how they work." + prereq_ids = list("datatheory") + design_ids = list("cargo", "cargorequest", "libraryconsole", "mining", "miningshuttle", "crewconsole", "rdcamera", "comconsole", "idcardconsole", "seccamera") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + +/datum/techweb_node/computer_hardware_basic //Modular computers are shitty and nearly useless so until someone makes them actually useful this can be easy to get. + id = "computer_hardware_basic" + display_name = "Computer Hardware" + description = "How computer hardware are made." + prereq_ids = list("comptech") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1250) //they are really kinda shitty + design_ids = list("hdd_basic", "hdd_advanced", "hdd_super", "hdd_cluster", "ssd_small", "ssd_micro", "netcard_basic", "netcard_advanced", "netcard_wired", + "portadrive_basic", "portadrive_advanced", "portadrive_super", "cardslot", "aislot", "miniprinter", "APClink", "bat_control", "bat_normal", "bat_advanced", + "bat_super", "bat_micro", "bat_nano", "cpu_normal", "pcpu_normal", "cpu_small", "pcpu_small") + +/datum/techweb_node/comp_recordkeeping + id = "comp_recordkeeping" + display_name = "Computerized Recordkeeping" + description = "Organized record databases and how they're used." + prereq_ids = list("comptech") + design_ids = list("secdata", "med_data", "prisonmanage", "vendor", "automated_announcement") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1250) + +/datum/techweb_node/telecomms + id = "telecomms" + display_name = "Telecommunications Technology" + description = "Subspace transmission technology for near-instant communications devices." + prereq_ids = list("comptech", "bluespace_basic") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) + design_ids = list("s-receiver", "s-bus", "s-broadcaster", "s-processor", "s-hub", "s-server", "s-relay", "comm_monitor", "comm_server", + "s-ansible", "s-filter", "s-amplifier", "ntnet_relay", "s-treatment", "s-analyzer", "s-crystal", "s-transmitter", "message_monitor") + +/datum/techweb_node/integrated_HUDs + id = "integrated_HUDs" + display_name = "Integrated HUDs" + description = "The usefulness of computerized records, projected straight onto your eyepiece!" + prereq_ids = list("comp_recordkeeping", "emp_basic") + design_ids = list("health_hud", "security_hud", "diagnostic_hud", "scigoggles", "health_hud_prescription", "security_hud_prescription", "diagnostic_hud_prescription") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) + +/datum/techweb_node/NVGtech + id = "NVGtech" + display_name = "Night Vision Technology" + description = "Allows seeing in the dark without actual light!" + prereq_ids = list("integrated_HUDs", "adv_engi", "emp_adv") + design_ids = list("health_hud_night", "security_hud_night", "diagnostic_hud_night", "night_visision_goggles", "nvgmesons", "night_visision_goggles_glasses") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + +/datum/techweb_node/computer_board_gaming + id = "computer_board_gaming" + display_name = "Games and Toys" + description = "For the slackers on the station." + prereq_ids = list("comptech") + design_ids = list("arcade_battle", "arcade_orion", "arcade_minesweeper", "slotmachine", "autoylathe") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) diff --git a/code/modules/research/techweb/nodes/engineering_nodes.dm b/code/modules/research/techweb/nodes/engineering_nodes.dm new file mode 100644 index 0000000000..2ab5458028 --- /dev/null +++ b/code/modules/research/techweb/nodes/engineering_nodes.dm @@ -0,0 +1,59 @@ + +/////////////////////////engineering tech///////////////////////// +/datum/techweb_node/engineering + id = "engineering" + display_name = "Industrial Engineering" + description = "A refresher course on modern engineering technology." + prereq_ids = list("base") + design_ids = list("solarcontrol", "recharger", "powermonitor", "rped", "pacman", "adv_capacitor", "adv_scanning", "emitter", "high_cell", "adv_matter_bin", + "atmosalerts", "atmos_control", "recycler", "autolathe", "autolathe_secure", "high_micro_laser", "nano_mani", "mesons", "thermomachine", "rad_collector", "tesla_coil", "grounding_rod", + "apc_control", "power control", "airlock_board", "firelock_board", "airalarm_electronics", "firealarm_electronics", "cell_charger", "stack_console", "stack_machine", "rcd_ammo") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 6000) + +/datum/techweb_node/adv_engi + id = "adv_engi" + display_name = "Advanced Engineering" + description = "Pushing the boundaries of physics, one chainsaw-fist at a time." + prereq_ids = list("engineering", "emp_basic") + design_ids = list("engine_goggles", "magboots", "forcefield_projector", "weldingmask" , "rcd_loaded", "rpd", "tray_goggles_prescription", "engine_goggles_prescription", "mesons_prescription", "rcd_upgrade_frames", "rcd_upgrade_simple_circuits", "rcd_ammo_large") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000) + +/datum/techweb_node/anomaly + id = "anomaly_research" + display_name = "Anomaly Research" + description = "Unlock the potential of the mysterious anomalies that appear on station." + prereq_ids = list("adv_engi", "practical_bluespace") + design_ids = list("reactive_armour", "anomaly_neutralizer") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) + +/datum/techweb_node/high_efficiency + id = "high_efficiency" + display_name = "High Efficiency Parts" + description = "Finely-tooled manufacturing techniques allowing for picometer-perfect precision levels." + prereq_ids = list("engineering", "datatheory") + design_ids = list("pico_mani", "super_matter_bin") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + +/datum/techweb_node/adv_power + id = "adv_power" + display_name = "Advanced Power Manipulation" + description = "How to get more zap." + prereq_ids = list("engineering") + design_ids = list("smes", "super_cell", "hyper_cell", "super_capacitor", "superpacman", "mrspacman", "power_turbine", "power_turbine_console", "power_compressor", "circulator", "teg") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) + +/* +/datum/techweb_node/basic_meteor_defense + id = "basic_meteor_defense" + display_name = "Meteor Defense Research" + description = "Unlock the potential of the mysterious of why CC decided to not build these around the station themselves." + prereq_ids = list("adv_engi", "high_efficiency") + design_ids = list("meteor_defence", "meteor_console") + +/datum/techweb_node/adv_meteor_defense + id = "adv_meteor_defense" + display_name = "Meteor Defense Research" + description = "New and improved coding and lock on tech for meteor defence!" + prereq_ids = list("basic_meteor_defense", "adv_datatheory", "emp_adv") + design_ids = list("meteor_disk") +*/ diff --git a/code/modules/research/techweb/nodes/export_nodes.dm b/code/modules/research/techweb/nodes/export_nodes.dm new file mode 100644 index 0000000000..cbdedef113 --- /dev/null +++ b/code/modules/research/techweb/nodes/export_nodes.dm @@ -0,0 +1,21 @@ +/datum/techweb_node/blueprinted_bottles + id = "blueprinted_bottles" + display_name = "License Bottling" + description = "Some Branded bottles to print and export." + starting_node = TRUE + design_ids = list("gin", "wine", "whiskey", "vodka", "tequila", "patron", "rum", "kahlua", "vermouth", "goldschlager", "hcider", "cognac", "absinthe", "grappa", "sake", "fernet", "applejack", "champagne", "blazaam", "trappist", "grenadine", "autobottler") + +/datum/techweb_node/blueprinted_exports + id = "blueprinted_exports" + display_name = "License Exports" + description = "Some Branded bottles to print and export." + starting_node = TRUE + design_ids = list("gin_export", "wine_export", "whiskey_export", "vodka_export", "tequila_export", "patron_export", "rum_export", "kahlua_export", "vermouth_export", "goldschlager_export", "hcider_export", "cognac_export", "absinthe_export", "grappa_export", "sake_export", "fernet_export", "applejack_export", "champagne_export", "blazaam_export", "trappist_export", "grenadine_export") + +/datum/techweb_node/bottle_exports + id = "bottle_exports" + display_name = "Legal Bottling" + prereq_ids = list("blueprinted_bottles") + description = "New bottles for printing and selling." + design_ids = list("minikeg", "blooddrop", "slim_gold", "white_bloodmoon", "greenroad") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 250) diff --git a/code/modules/research/techweb/nodes/mecha_nodes.dm b/code/modules/research/techweb/nodes/mecha_nodes.dm new file mode 100644 index 0000000000..4d1b703cae --- /dev/null +++ b/code/modules/research/techweb/nodes/mecha_nodes.dm @@ -0,0 +1,205 @@ + +////////////////////////mech technology//////////////////////// + +/datum/techweb_node/mech + id = "mecha" + starting_node = TRUE + display_name = "Mechanical Exosuits" + description = "Mechanized exosuits that are several magnitudes stronger and more powerful than the average human." + design_ids = list("mecha_tracking", "mechacontrol", "mechapower", "mech_recharger", "ripley_chassis", "firefighter_chassis", "ripley_torso", "ripley_left_arm", "ripley_right_arm", "ripley_left_leg", "ripley_right_leg", + "ripley_main", "ripley_peri", "mech_hydraulic_clamp") + +/datum/techweb_node/mech_tools + id = "mech_tools" + starting_node = TRUE + display_name = "Basic Exosuit Equipment" + description = "Various tools fit for basic mech units" + design_ids = list("mech_drill", "mech_mscanner", "mech_extinguisher", "mech_cable_layer") + +/datum/techweb_node/adv_mecha + id = "adv_mecha" + display_name = "Advanced Exosuits" + description = "For when you just aren't Gundam enough." + prereq_ids = list("adv_robotics") + design_ids = list("mech_repair_droid") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/odysseus + id = "mecha_odysseus" + display_name = "EXOSUIT: Odysseus" + description = "Odysseus exosuit designs" + prereq_ids = list("base") + design_ids = list("odysseus_chassis", "odysseus_torso", "odysseus_head", "odysseus_left_arm", "odysseus_right_arm" ,"odysseus_left_leg", "odysseus_right_leg", + "odysseus_main", "odysseus_peri") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/gygax + id = "mech_gygax" + display_name = "EXOSUIT: Gygax" + description = "Gygax exosuit designs" + prereq_ids = list("adv_mecha", "weaponry") + design_ids = list("gygax_chassis", "gygax_torso", "gygax_head", "gygax_left_arm", "gygax_right_arm", "gygax_left_leg", "gygax_right_leg", "gygax_main", + "gygax_peri", "gygax_targ", "gygax_armor") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/durand + id = "mech_durand" + display_name = "EXOSUIT: Durand" + description = "Durand exosuit designs" + prereq_ids = list("adv_mecha", "adv_weaponry") + design_ids = list("durand_chassis", "durand_torso", "durand_head", "durand_left_arm", "durand_right_arm", "durand_left_leg", "durand_right_leg", "durand_main", + "durand_peri", "durand_targ", "durand_armor") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) + +/datum/techweb_node/phazon + id = "mecha_phazon" + display_name = "EXOSUIT: Phazon" + description = "Phazon exosuit designs" + prereq_ids = list("adv_mecha", "weaponry" , "adv_bluespace") + design_ids = list("phazon_chassis", "phazon_torso", "phazon_head", "phazon_left_arm", "phazon_right_arm", "phazon_left_leg", "phazon_right_leg", "phazon_main", + "phazon_peri", "phazon_targ", "phazon_armor") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) + +/datum/techweb_node/adv_mecha_tools + id = "adv_mecha_tools" + display_name = "Advanced Exosuit Equipment" + description = "Tools for high level mech suits" + prereq_ids = list("adv_mecha") + design_ids = list("mech_rcd") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/med_mech_tools + id = "med_mech_tools" + display_name = "Medical Exosuit Equipment" + description = "Tools for high level mech suits" + prereq_ids = list("adv_biotech") + design_ids = list("mech_sleeper", "mech_syringe_gun", "mech_medi_beam") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + +/datum/techweb_node/mech_modules + id = "adv_mecha_modules" + display_name = "Simple Exosuit Modules" + description = "An advanced piece of mech weaponry" + prereq_ids = list("adv_mecha", "bluespace_power") + design_ids = list("mech_energy_relay", "mech_ccw_armor", "mech_proj_armor", "mech_generator_nuclear") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/mech_scattershot + id = "mecha_tools" + display_name = "Exosuit Weapon (LBX AC 10 \"Scattershot\")" + description = "An advanced piece of mech weaponry" + prereq_ids = list("ballistic_weapons") + design_ids = list("mech_scattershot", "mech_scattershot_ammo") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/mech_seedscatter + id = "mech_seedscatter" + display_name = "Exosuit Weapon (Melon Seed \"Scattershot\")" + description = "An advanced piece of mech weaponry" + prereq_ids = list("ballistic_weapons") + design_ids = list("mech_seedscatter") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/mech_carbine + id = "mech_carbine" + display_name = "Exosuit Weapon (FNX-99 \"Hades\" Carbine)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("ballistic_weapons") + design_ids = list("mech_carbine", "mech_carbine_ammo") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/mech_ion + id = "mmech_ion" + display_name = "Exosuit Weapon (MKIV Ion Heavy Cannon)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("electronic_weapons", "emp_adv") + design_ids = list("mech_ion") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/mech_tesla + id = "mech_tesla" + display_name = "Exosuit Weapon (MKI Tesla Cannon)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("electronic_weapons", "adv_power") + design_ids = list("mech_tesla") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/mech_laser + id = "mech_laser" + display_name = "Exosuit Weapon (CH-PS \"Immolator\" Laser)" + description = "A basic piece of mech weaponry" + prereq_ids = list("beam_weapons") + design_ids = list("mech_laser") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/mech_laser_heavy + id = "mech_laser_heavy" + display_name = "Exosuit Weapon (CH-LC \"Solaris\" Laser Cannon)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("adv_beam_weapons") + design_ids = list("mech_laser_heavy") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/mech_grenade_launcher + id = "mech_grenade_launcher" + display_name = "Exosuit Weapon (SGL-6 Grenade Launcher)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("explosive_weapons") + design_ids = list("mech_grenade_launcher", "mech_grenade_launcher_ammo") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/mech_missile_rack + id = "mech_missile_rack" + display_name = "Exosuit Weapon (BRM-6 Missile Rack)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("explosive_weapons") + design_ids = list("mech_missile_rack", "mech_missile_rack_ammo") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/clusterbang_launcher + id = "clusterbang_launcher" + display_name = "Exosuit Module (SOB-3 Clusterbang Launcher)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("explosive_weapons") + design_ids = list("clusterbang_launcher", "clusterbang_launcher_ammo") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/mech_teleporter + id = "mech_teleporter" + display_name = "Exosuit Module (Teleporter Module)" + description = "An advanced piece of mech Equipment" + prereq_ids = list("adv_bluespace") + design_ids = list("mech_teleporter") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/mech_wormhole_gen + id = "mech_wormhole_gen" + display_name = "Exosuit Module (Localized Wormhole Generator)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("adv_bluespace") + design_ids = list("mech_wormhole_gen") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/mech_taser + id = "mech_taser" + display_name = "Exosuit Weapon (PBT \"Pacifier\" Mounted Taser)" + description = "A basic piece of mech weaponry" + prereq_ids = list("electronic_weapons") + design_ids = list("mech_taser") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/mech_lmg + id = "mech_lmg" + display_name = "Exosuit Weapon (\"Ultra AC 2\" LMG)" + description = "An advanced piece of mech weaponry" + prereq_ids = list("ballistic_weapons") + design_ids = list("mech_lmg", "mech_lmg_ammo") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/mech_diamond_drill + id = "mech_diamond_drill" + display_name = "Exosuit Diamond Drill" + description = "A diamond drill fit for a large exosuit" + prereq_ids = list("adv_mining") + design_ids = list("mech_diamond_drill") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) diff --git a/code/modules/research/techweb/nodes/medical_nodes.dm b/code/modules/research/techweb/nodes/medical_nodes.dm new file mode 100644 index 0000000000..71dd7c943c --- /dev/null +++ b/code/modules/research/techweb/nodes/medical_nodes.dm @@ -0,0 +1,132 @@ + +////////////////////////Medical//////////////////////// +/datum/techweb_node/cloning + id = "cloning" + display_name = "Genetic Engineering" + description = "We have the technology to make him." + prereq_ids = list("biotech") + design_ids = list("clonecontrol", "clonepod", "clonescanner", "scan_console", "cloning_disk") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + +/datum/techweb_node/cryotech + id = "cryotech" + display_name = "Cryostasis Technology" + description = "Smart freezing of objects to preserve them!" + prereq_ids = list("adv_engi", "biotech") + design_ids = list("splitbeaker", "noreactsyringe", "cryotube", "cryo_Grenade") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + +/datum/techweb_node/adv_defibrillator_tec + id = "adv_defibrillator_tec" + display_name = "Defibrillator Upgrades" + description = "More ways to bring back the newly dead." + prereq_ids = list("adv_biotech", "exp_surgery", "adv_engi", "adv_power") + design_ids = list("defib_decay", "defib_shock", "defib_heal", "defib_speed") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +//////////////////////Cybernetics///////////////////// + +/datum/techweb_node/surplus_limbs + id = "surplus_limbs" + display_name = "Basic Prosthetics" + description = "Basic fragile prosthetics for the impaired." + starting_node = TRUE + prereq_ids = list("biotech") + design_ids = list("basic_l_arm", "basic_r_arm", "basic_r_leg", "basic_l_leg") + +/datum/techweb_node/advance_limbs + id = "advance_limbs" + display_name = "Upgraded Prosthetics" + description = "Reinforced prosthetics for the impaired." + prereq_ids = list("adv_biotech", "surplus_limbs") + design_ids = list("adv_l_arm", "adv_r_arm", "adv_r_leg", "adv_l_leg") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1250) + +/datum/techweb_node/subdermal_implants + id = "subdermal_implants" + display_name = "Subdermal Implants" + description = "Electronic implants buried beneath the skin." + prereq_ids = list("biotech", "datatheory") + design_ids = list("implanter", "implantcase", "implant_chem", "implant_tracking", "locator", "c38_trac") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/cyber_organs + id = "cyber_organs" + display_name = "Cybernetic Organs" + description = "We have the technology to rebuild him." + prereq_ids = list("adv_biotech") + design_ids = list("cybernetic_ears", "cybernetic_heart", "cybernetic_liver", "cybernetic_lungs", "cybernetic_tongue") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) + +/datum/techweb_node/cyber_organs_upgraded + id = "cyber_organs_upgraded" + display_name = "Upgraded Cybernetic Organs" + description = "We have the technology to upgrade him." + prereq_ids = list("cyber_organs") + design_ids = list("cybernetic_ears_u", "cybernetic_heart_u", "cybernetic_liver_u", "cybernetic_lungs_u") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) + +/datum/techweb_node/cyber_implants + id = "cyber_implants" + display_name = "Cybernetic Implants" + description = "Electronic implants that improve humans." + prereq_ids = list("adv_biotech", "adv_datatheory") + design_ids = list("ci-nutriment", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud", "ci-service") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/adv_cyber_implants + id = "adv_cyber_implants" + display_name = "Advanced Cybernetic Implants" + description = "Upgraded and more powerful cybernetic implants." + prereq_ids = list("neural_programming", "cyber_implants","integrated_HUDs") + design_ids = list("ci-toolset", "ci-surgery", "ci-reviver", "ci-nutrimentplus") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/combat_cyber_implants + id = "combat_cyber_implants" + display_name = "Combat Cybernetic Implants" + description = "Military grade combat implants to improve performance." + prereq_ids = list("adv_cyber_implants","weaponry","NVGtech","high_efficiency") + design_ids = list("ci-xray", "ci-thermals", "ci-antidrop", "ci-antistun", "ci-thrusters", "ci-shield") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/////////////////////////Advanced Surgery///////////////////////// +/datum/techweb_node/imp_wt_surgery + id = "imp_wt_surgery" + display_name = "Improved Wound-Tending Surgery" + description = "Who would have known being more gentle with a hemostat decreases patient pain?" + prereq_ids = list("biotech") + design_ids = list("surgery_heal_brute_upgrade","surgery_heal_burn_upgrade") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) + +/datum/techweb_node/advance_surgerytools + id = "advance_surgerytools" + display_name = "Advanced Surgery Tools" + description = "Refined and improved redesigns for the run-of-the-mill medical utensils." + prereq_ids = list("adv_biotech", "adv_surgery") + design_ids = list("drapes", "retractor_adv", "surgicaldrill_adv", "scalpel_adv") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/adv_surgery + id = "adv_surgery" + display_name = "Advanced Surgery" + description = "When simple medicine doesn't cut it." + prereq_ids = list("imp_wt_surgery") + design_ids = list("surgery_revival", "surgery_lobotomy", "surgery_heal_brute_upgrade_femto","surgery_heal_burn_upgrade_femto", "surgery_heal_combo", "surgery_toxinhealing", "organbox", "surgery_adv_dissection") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/exp_surgery + id = "exp_surgery" + display_name = "Experimental Surgery" + description = "When evolution isn't fast enough." + prereq_ids = list("adv_surgery") + design_ids = list("surgery_pacify","surgery_vein_thread","surgery_muscled_veins","surgery_nerve_splice","surgery_nerve_ground","surgery_ligament_hook","surgery_ligament_reinforcement","surgery_viral_bond", "surgery_exp_dissection", "surgery_heal_combo_upgrade") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + +/datum/techweb_node/alien_surgery + id = "alien_surgery" + display_name = "Alien Surgery" + description = "Abductors did nothing wrong." + prereq_ids = list("exp_surgery", "alientech") + design_ids = list("surgery_brainwashing","surgery_zombie", "surgery_ext_dissection", "surgery_heal_combo_upgrade_femto") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) diff --git a/code/modules/research/techweb/nodes/misc_nodes.dm b/code/modules/research/techweb/nodes/misc_nodes.dm new file mode 100644 index 0000000000..d34afca90a --- /dev/null +++ b/code/modules/research/techweb/nodes/misc_nodes.dm @@ -0,0 +1,68 @@ + +/////////////////////////data theory tech///////////////////////// +/datum/techweb_node/datatheory //Computer science + id = "datatheory" + display_name = "Data Theory" + description = "Big Data, in space!" + prereq_ids = list("base") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + +/datum/techweb_node/adv_datatheory + id = "adv_datatheory" + display_name = "Advanced Data Theory" + description = "Better insight into programming and data." + prereq_ids = list("datatheory") + design_ids = list("icprinter", "icupgadv", "icupgclo") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) + +/////////////////////////plasma tech///////////////////////// +/datum/techweb_node/basic_plasma + id = "basic_plasma" + display_name = "Basic Plasma Research" + description = "Research into the mysterious and dangerous substance, plasma." + prereq_ids = list("engineering") + design_ids = list("mech_generator") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + +/datum/techweb_node/adv_plasma + id = "adv_plasma" + display_name = "Advanced Plasma Research" + description = "Research on how to fully exploit the power of plasma." + prereq_ids = list("basic_plasma") + design_ids = list("mech_plasma_cutter") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) + +/////////////////////////EMP tech///////////////////////// +/datum/techweb_node/emp_basic //EMP tech for some reason + id = "emp_basic" + display_name = "Electromagnetic Theory" + description = "Study into usage of frequencies in the electromagnetic spectrum." + prereq_ids = list("base") + design_ids = list("holosign", "holosignsec", "holosignengi", "holosignatmos", "holosignfirelock", "inducer", "tray_goggles", "holopad") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/emp_adv + id = "emp_adv" + display_name = "Advanced Electromagnetic Theory" + description = "Determining whether reversing the polarity will actually help in a given situation." + prereq_ids = list("emp_basic") + design_ids = list("ultra_micro_laser") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) + +/datum/techweb_node/emp_super + id = "emp_super" + display_name = "Quantum Electromagnetic Technology" //bs + description = "Even better electromagnetic technology." + prereq_ids = list("emp_adv") + design_ids = list("quadultra_micro_laser") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) + +/////////////////////////Clown tech///////////////////////// +/datum/techweb_node/clown + id = "clown" + display_name = "Clown Technology" + description = "Honk?!" + prereq_ids = list("base") + design_ids = list("air_horn", "honker_main", "honker_peri", "honker_targ", "honk_chassis", "honk_head", "honk_torso", "honk_left_arm", "honk_right_arm", + "honk_left_leg", "honk_right_leg", "mech_banana_mortar", "mech_mousetrap_mortar", "mech_honker", "mech_punching_face", "implant_trombone", "borg_transform_clown") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) diff --git a/code/modules/research/techweb/nodes/nanites_nodes.dm b/code/modules/research/techweb/nodes/nanites_nodes.dm new file mode 100644 index 0000000000..5fc707d77a --- /dev/null +++ b/code/modules/research/techweb/nodes/nanites_nodes.dm @@ -0,0 +1,84 @@ + +/////////////////////////Nanites///////////////////////// +/datum/techweb_node/nanite_base + id = "nanite_base" + display_name = "Basic Nanite Programming" + description = "The basics of nanite construction and programming." + prereq_ids = list("datatheory","robotics") + design_ids = list("nanite_disk","nanite_remote","nanite_comm_remote","nanite_scanner",\ + "nanite_chamber","public_nanite_chamber","nanite_chamber_control","nanite_programmer","nanite_program_hub","nanite_cloud_control",\ + "relay_nanites", "monitoring_nanites", "access_nanites", "repairing_nanites","sensor_nanite_volume", "repeater_nanites", "relay_repeater_nanites","red_diag_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/nanite_smart + id = "nanite_smart" + display_name = "Smart Nanite Programming" + description = "Nanite programs that require nanites to perform complex actions, act independently, roam or seek targets." + prereq_ids = list("nanite_base","adv_robotics") + design_ids = list("purging_nanites", "research_nanites", "metabolic_nanites", "stealth_nanites", "memleak_nanites","sensor_voice_nanites", "voice_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + +/datum/techweb_node/nanite_mesh + id = "nanite_mesh" + display_name = "Mesh Nanite Programming" + description = "Nanite programs that require static structures and membranes." + prereq_ids = list("nanite_base","engineering") + design_ids = list("hardening_nanites", "dermal_button_nanites", "refractive_nanites", "cryo_nanites", "conductive_nanites", "shock_nanites", "emp_nanites", "temperature_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/nanite_bio + id = "nanite_bio" + display_name = "Biological Nanite Programming" + description = "Nanite programs that require complex biological interaction." + prereq_ids = list("nanite_base","biotech") + design_ids = list("regenerative_nanites", "bloodheal_nanites", "coagulating_nanites","poison_nanites","flesheating_nanites",\ + "sensor_crit_nanites","sensor_death_nanites", "sensor_health_nanites", "sensor_damage_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/nanite_neural + id = "nanite_neural" + display_name = "Neural Nanite Programming" + description = "Nanite programs affecting nerves and brain matter." + prereq_ids = list("nanite_bio") + design_ids = list("nervous_nanites", "brainheal_nanites", "paralyzing_nanites", "stun_nanites", "selfscan_nanites","good_mood_nanites","bad_mood_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/nanite_synaptic + id = "nanite_synaptic" + display_name = "Synaptic Nanite Programming" + description = "Nanite programs affecting mind and thoughts." + prereq_ids = list("nanite_neural","neural_programming") + design_ids = list("mindshield_nanites", "pacifying_nanites", "blinding_nanites", "sleep_nanites", "mute_nanites", "speech_nanites","hallucination_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/nanite_harmonic + id = "nanite_harmonic" + display_name = "Harmonic Nanite Programming" + description = "Nanite programs that require seamless integration between nanites and biology." + prereq_ids = list("nanite_bio","nanite_smart","nanite_mesh") + design_ids = list("fakedeath_nanites","researchplus_nanites","aggressive_nanites","defib_nanites","regenerative_plus_nanites","brainheal_plus_nanites","purging_plus_nanites","adrenaline_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000) + +/datum/techweb_node/nanite_combat + id = "nanite_military" + display_name = "Military Nanite Programming" + description = "Nanite programs that perform military-grade functions." + prereq_ids = list("nanite_harmonic", "syndicate_basic") + design_ids = list("explosive_nanites","pyro_nanites","meltdown_nanites","viral_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) + +/datum/techweb_node/nanite_hazard + id = "nanite_hazard" + display_name = "Hazard Nanite Programs" + description = "Extremely advanced Nanite programs with the potential of being extremely dangerous." + prereq_ids = list("nanite_harmonic", "alientech") + design_ids = list("spreading_nanites","mindcontrol_nanites","mitosis_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) + +/datum/techweb_node/nanite_replication_protocols + id = "nanite_replication_protocols" + display_name = "Nanite Replication Protocols" + description = "Advanced behaviours that allow nanites to exploit certain circumstances to replicate faster." + prereq_ids = list("nanite_smart") + design_ids = list("kickstart_nanites","factory_nanites","tinker_nanites","offline_nanites","synergy_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) diff --git a/code/modules/research/techweb/nodes/robotics_nodes.dm b/code/modules/research/techweb/nodes/robotics_nodes.dm new file mode 100644 index 0000000000..6248cd99aa --- /dev/null +++ b/code/modules/research/techweb/nodes/robotics_nodes.dm @@ -0,0 +1,81 @@ + +/////////////////////////robotics tech///////////////////////// +/datum/techweb_node/robotics + id = "robotics" + display_name = "Basic Robotics Research" + description = "Programmable machines that make our lives lazier." + prereq_ids = list("base") + design_ids = list("paicard", "drone_shell") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + +/datum/techweb_node/mmi + id = "mmi" + starting_node = TRUE + display_name = "Man Machine Interface" + description = "A slightly Frankensteinian device that allows human brains to interface natively with software APIs." + design_ids = list("mmi") + +/datum/techweb_node/cyborg + id = "cyborg" + starting_node = TRUE + display_name = "Cyborg Construction" + description = "Sapient robots with preloaded tool modules and programmable laws." + design_ids = list("robocontrol", "sflash", "borg_suit", "borg_head", "borg_chest", "borg_r_arm", "borg_l_arm", "borg_r_leg", "borg_l_leg", "borgupload", + "cyborgrecharger", "borg_upgrade_restart", "borg_upgrade_rename") + +/datum/techweb_node/adv_robotics + id = "adv_robotics" + display_name = "Advanced Robotics Research" + description = "It can even do the dishes!" + prereq_ids = list("robotics") + design_ids = list("borg_upgrade_diamonddrill", "borg_upgrade_advancedmop", "borg_upgrade_advcutter") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) + +/datum/techweb_node/neural_programming + id = "neural_programming" + display_name = "Neural Programming" + description = "Study into networks of processing units that mimic our brains." + prereq_ids = list("biotech", "datatheory") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/posibrain + id = "posibrain" + display_name = "Positronic Brain" + description = "Applied usage of neural technology allowing for autonomous AI units based on special metallic cubes with conductive and processing circuits." + prereq_ids = list("neural_programming") + design_ids = list("mmi_posi") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/cyborg_upg_util + id = "cyborg_upg_util" + display_name = "Cyborg Upgrades: Utility" + description = "Utility upgrades for cyborgs." + prereq_ids = list("engineering", "robotics") + design_ids = list("borg_upgrade_lavaproof", "borg_upgrade_thrusters", "borg_upgrade_selfrepair", "borg_upgrade_expand", "borg_upgrade_rped") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + +/datum/techweb_node/cyborg_upg_med + id = "cyborg_upg_med" + display_name = "Cyborg Upgrades: Medical" + description = "Medical upgrades for cyborgs." + prereq_ids = list("adv_biotech", "robotics") + design_ids = list("borg_upgrade_advhealth", "borg_upgrade_piercinghypospray", "borg_upgrade_highstrengthsynthesiser", "borg_upgrade_expandedsynthesiser", "borg_upgrade_pinpointer", "borg_upgrade_surgicalprocessor") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + +/datum/techweb_node/cyborg_upg_combat + id = "cyborg_upg_combat" + display_name = "Cyborg Upgrades: Combat" + description = "Military grade upgrades for cyborgs." + prereq_ids = list("adv_robotics", "adv_engi" , "weaponry") + design_ids = list("borg_upgrade_vtec", "borg_upgrade_disablercooler") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + +/datum/techweb_node/ai + id = "ai" + display_name = "Artificial Intelligence" + description = "AI unit research." + prereq_ids = list("robotics", "posibrain") + design_ids = list("aifixer", "aicore", "safeguard_module", "onehuman_module", "protectstation_module", "quarantine_module", "oxygen_module", "freeform_module", + "reset_module", "purge_module", "remove_module", "freeformcore_module", "asimov_module", "paladin_module", "tyrant_module", "corporate_module", + "default_module", "borg_ai_control", "mecha_tracking_ai_control", "aiupload", "intellicard") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) diff --git a/code/modules/research/techweb/nodes/syndicate_nodes.dm b/code/modules/research/techweb/nodes/syndicate_nodes.dm new file mode 100644 index 0000000000..193ed8653b --- /dev/null +++ b/code/modules/research/techweb/nodes/syndicate_nodes.dm @@ -0,0 +1,50 @@ + +/datum/techweb_node/syndicate_basic + id = "syndicate_basic" + display_name = "Illegal Technology" + description = "Dangerous research used to create dangerous objects." + prereq_ids = list("adv_engi", "adv_weaponry", "explosive_weapons") + design_ids = list("decloner", "borg_syndicate_module", "suppressor", "largecrossbow", "donksofttoyvendor", "donksoft_refill", "syndiesleeper") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) + hidden = TRUE + +/datum/techweb_node/syndicate_basic/New() //Crappy way of making syndicate gear decon supported until there's another way. + . = ..() + boost_item_paths = list() + for(var/path in GLOB.uplink_items) + var/datum/uplink_item/UI = new path + if(!UI.item || !UI.illegal_tech) + continue + boost_item_paths |= UI.item //allows deconning to unlock. + +/datum/techweb_node/advanced_illegal_ballistics + id = "advanced_illegal_ballistics" + display_name = "Advanced Non-Standard Ballistics" + description = "Ballistic ammunition for non-standard firearms. Usually the ones you don't have nor want to be involved with." + design_ids = list("10mm","10mmap","10mminc","10mmhp","sl357","sl357ap","pistolm9mm","m45","bolt_clip") + prereq_ids = list("ballistic_weapons","syndicate_basic","explosive_weapons") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 25000) //This gives sec lethal mags/clips for guns from traitors, space, or anything in between. + +//Helpers for debugging/balancing the techweb in its entirety! + +/proc/total_techweb_points() + var/list/datum/techweb_node/processing = list() + for(var/i in subtypesof(/datum/techweb_node)) + processing += new i + var/datum/techweb/TW = new + TW.research_points = list() + for(var/i in processing) + var/datum/techweb_node/TN = i + TW.add_point_list(TN.research_costs) + return TW.research_points + +/proc/total_techweb_points_printout() + var/list/datum/techweb_node/processing = list() + for(var/i in subtypesof(/datum/techweb_node)) + processing += new i + var/datum/techweb/TW = new + TW.research_points = list() + for(var/i in processing) + var/datum/techweb_node/TN = i + TW.add_point_list(TN.research_costs) + return TW.printout_points() diff --git a/code/modules/research/techweb/nodes/tools_nodes.dm b/code/modules/research/techweb/nodes/tools_nodes.dm new file mode 100644 index 0000000000..5d8d40f10d --- /dev/null +++ b/code/modules/research/techweb/nodes/tools_nodes.dm @@ -0,0 +1,57 @@ + +////////////////////////Tools//////////////////////// +/datum/techweb_node/basic_tools + id = "basic_tools" + display_name = "Basic Tools" + description = "Basic mechanical, electronic, surgical and botanical tools." + prereq_ids = list("base") + design_ids = list("screwdriver", "wrench", "wirecutters", "crowbar", "multitool", "welding_tool", "tscanner", "analyzer", "cable_coil", "pipe_painter", "airlock_painter", "scalpel", "circular_saw", "surgicaldrill", "retractor", "cautery", "hemostat", "cultivator", "plant_analyzer", "shovel", "spade", "hatchet", "mop", "broom", "normtrash") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500) + +/datum/techweb_node/basic_mining + id = "basic_mining" + display_name = "Mining Technology" + description = "Better than Efficiency V." + prereq_ids = list("engineering", "basic_plasma") + design_ids = list("drill", "superresonator", "triggermod", "damagemod", "cooldownmod", "rangemod", "ore_redemption", "mining_equipment_vendor", "cargoexpress", "plasmacutter")//e a r l y g a m e) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/adv_mining + id = "adv_mining" + display_name = "Advanced Mining Technology" + description = "Efficiency Level 127" //dumb mc references + prereq_ids = list("basic_mining", "adv_engi", "adv_power", "adv_plasma") + design_ids = list("drill_diamond", "jackhammer", "hypermod", "plasmacutter_adv", "ore_silo", "plasteel_pick", "titanium_pick") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/janitor + id = "janitor" + display_name = "Advanced Sanitation Technology" + description = "Clean things better, faster, stronger, and harder!" + prereq_ids = list("adv_engi") + design_ids = list("advmop", "buffer", "light_replacer", "spraybottle", "beartrap", "ci-janitor", "paint_remover") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1750) // No longer has its bag + +/datum/techweb_node/botany + id = "botany" + display_name = "Botanical Engineering" + description = "Botanical tools." + prereq_ids = list("adv_engi", "biotech") + design_ids = list("diskplantgene", "portaseeder", "plantgenes", "flora_gun", "hydro_tray", "biogenerator", "seed_extractor") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) + +/datum/techweb_node/exp_tools + id = "exp_tools" + display_name = "Experimental Tools" + description = "Highly advanced construction tools." + design_ids = list("exwelder", "jawsoflife", "handdrill", "holosigncombifan") + prereq_ids = list("adv_engi") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) + +/datum/techweb_node/sec_basic + id = "sec_basic" + display_name = "Basic Security Equipment" + description = "Standard equipment used by security." + design_ids = list("seclite", "pepperspray", "bola_energy", "zipties", "evidencebag") + prereq_ids = list("base") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 750) diff --git a/code/modules/research/techweb/nodes/weaponry_nodes.dm b/code/modules/research/techweb/nodes/weaponry_nodes.dm new file mode 100644 index 0000000000..064f88077a --- /dev/null +++ b/code/modules/research/techweb/nodes/weaponry_nodes.dm @@ -0,0 +1,97 @@ + +/////////////////////////weaponry tech///////////////////////// +/datum/techweb_node/weaponry + id = "weaponry" + display_name = "Weapon Development Technology" + description = "Our researchers have found new to weaponize just about everything now." + prereq_ids = list("engineering") + design_ids = list("pin_testing", "tele_shield", "lasercarbine", "pin_away") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) + +/datum/techweb_node/adv_weaponry + id = "adv_weaponry" + display_name = "Advanced Weapon Development Technology" + description = "Our weapons are breaking the rules of reality by now." + prereq_ids = list("adv_engi", "weaponry") + design_ids = list("pin_loyalty", "laser_shield", "bullet_shield") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) + +/datum/techweb_node/electric_weapons + id = "electronic_weapons" + display_name = "Electric Weapons" + description = "Weapons using electric technology" + prereq_ids = list("weaponry", "adv_power" , "emp_basic") + design_ids = list("stunrevolver", "stunshell", "ioncarbine") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) + +/datum/techweb_node/radioactive_weapons + id = "radioactive_weapons" + display_name = "Radioactive Weaponry" + description = "Weapons using radioactive technology." + prereq_ids = list("adv_engi", "adv_weaponry") + design_ids = list("nuclear_gun") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/magnetic_weapons + id = "magnetic_weapons" + display_name = "Magnetic Weapons" + description = "Weapons using magnetic technology" + prereq_ids = list("weaponry", "adv_weaponry", "emp_adv") + design_ids = list("magrifle", "magpistol", "mag_magrifle", "mag_magrifle_nl", "mag_magpistol", "mag_magpistol_nl") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/medical_weapons + id = "medical_weapons" + display_name = "Medical Weaponry" + description = "Weapons using medical technology." + prereq_ids = list("adv_biotech", "adv_weaponry") + design_ids = list("rapidsyringe", "shotgundartcryostatis") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) + +/datum/techweb_node/beam_weapons + id = "beam_weapons" + display_name = "Beam Weaponry" + description = "Various basic beam weapons" + prereq_ids = list("adv_weaponry") + design_ids = list("temp_gun", "xray_laser") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/adv_beam_weapons + id = "adv_beam_weapons" + display_name = "Advanced Beam Weaponry" + description = "Various advanced beam weapons" + prereq_ids = list("beam_weapons") + design_ids = list("beamrifle") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3250) // Sniper + +/datum/techweb_node/explosive_weapons + id = "explosive_weapons" + display_name = "Explosive & Pyrotechnical Weaponry" + description = "If the light stuff just won't do it." + prereq_ids = list("adv_weaponry") + design_ids = list("large_Grenade", "pyro_Grenade", "adv_Grenade") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) + +/datum/techweb_node/ballistic_weapons + id = "ballistic_weapons" + display_name = "Ballistic Weaponry" + description = "This isn't research.. This is reverse-engineering!" + prereq_ids = list("weaponry") + design_ids = list("mag_oldsmg", "mag_oldsmg_ap", "mag_oldsmg_ic", "mag_oldsmg_rubber", "mag_oldsmg_tx") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) + +/datum/techweb_node/exotic_ammo + id = "exotic_ammo" + display_name = "Exotic Ammunition" + description = "They won't know what hit em." + prereq_ids = list("weaponry", "ballistic_weapons") + design_ids = list("techshotshell", "c38_hotshot", "c38_iceblox") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) + +/datum/techweb_node/gravity_gun + id = "gravity_gun" + display_name = "One-point Bluespace-gravitational Manipulator" + description = "Fancy wording for gravity gun." + prereq_ids = list("adv_weaponry", "adv_bluespace") + design_ids = list("gravitygun", "mech_gravcatapult") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index 95d6c49529..16263928c4 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -191,7 +191,7 @@ alert_type = /obj/screen/alert/status_effect/bloodchill /datum/status_effect/bloodchill/on_apply() - owner.add_movespeed_modifier("bloodchilled", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = 3) + owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/bloodchill) return ..() /datum/status_effect/bloodchill/tick() @@ -199,7 +199,7 @@ owner.adjustFireLoss(2) /datum/status_effect/bloodchill/on_remove() - owner.remove_movespeed_modifier("bloodchilled") + owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/bloodchill) return ..() /obj/screen/alert/status_effect/bloodchill @@ -213,7 +213,7 @@ alert_type = /obj/screen/alert/status_effect/bonechill /datum/status_effect/bonechill/on_apply() - owner.add_movespeed_modifier("bonechilled", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = 3) + owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/bonechill) return ..() /datum/status_effect/bonechill/tick() @@ -223,7 +223,7 @@ owner.adjust_bodytemperature(-10) /datum/status_effect/bonechill/on_remove() - owner.remove_movespeed_modifier("bonechilled") + owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/bonechill) return ..() /obj/screen/alert/status_effect/bonechill @@ -385,11 +385,11 @@ datum/status_effect/rebreathing/tick() duration = 30 /datum/status_effect/tarfoot/on_apply() - owner.add_movespeed_modifier(MOVESPEED_ID_TARFOOT, update=TRUE, priority=100, multiplicative_slowdown=0.5, blacklisted_movetypes=(FLYING|FLOATING)) + owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/tarfoot) return ..() /datum/status_effect/tarfoot/on_remove() - owner.remove_movespeed_modifier(MOVESPEED_ID_TARFOOT) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/tarfoot) return ..() /datum/status_effect/spookcookie @@ -624,9 +624,9 @@ datum/status_effect/stabilized/blue/on_remove() O.extinguish() //All shamelessly copied from water's reaction_obj, since I didn't seem to be able to get it here for some reason. O.acid_level = 0 // Monkey cube - if(istype(O, /obj/item/reagent_containers/food/snacks/monkeycube)) + if(istype(O, /obj/item/reagent_containers/food/snacks/cube)) to_chat(owner, "[linked_extract] kept your hands wet! It makes [O] expand!") - var/obj/item/reagent_containers/food/snacks/monkeycube/cube = O + var/obj/item/reagent_containers/food/snacks/cube/cube = O cube.Expand() // Dehydrated carp @@ -707,15 +707,15 @@ datum/status_effect/stabilized/blue/on_remove() /datum/status_effect/stabilized/sepia/tick() if(prob(50) && mod > -1) mod-- - owner.add_movespeed_modifier(MOVESPEED_ID_SEPIA, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING)) + owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia, multiplicative_slowdown = 1) else if(mod < 1) mod++ // yeah a value of 0 does nothing but replacing the trait in place is cheaper than removing and adding repeatedly - owner.add_movespeed_modifier(MOVESPEED_ID_SEPIA, update=TRUE, priority=100, multiplicative_slowdown=0, blacklisted_movetypes=(FLYING|FLOATING)) + owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia, multiplicative_slowdown = 0) return ..() /datum/status_effect/stabilized/sepia/on_remove() - owner.remove_movespeed_modifier(MOVESPEED_ID_SEPIA) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia) return ..() /datum/status_effect/stabilized/cerulean @@ -777,11 +777,11 @@ datum/status_effect/stabilized/blue/on_remove() colour = "red" /datum/status_effect/stabilized/red/on_apply() - owner.ignore_slowdown("slimestatus") - return ..() + . = ..() + owner.add_movespeed_mod_immunities(type, /datum/movespeed_modifier/equipment_speedmod) /datum/status_effect/stabilized/red/on_remove() - owner.unignore_slowdown("slimestatus") + owner.remove_movespeed_mod_immunities(type, /datum/movespeed_modifier/equipment_speedmod) return ..() /datum/status_effect/stabilized/green @@ -959,9 +959,10 @@ datum/status_effect/stabilized/blue/on_remove() familiar = new linked.mob_type(get_turf(owner.loc)) familiar.name = linked.mob_name familiar.del_on_death = TRUE - familiar.copy_known_languages_from(owner, FALSE) + familiar.copy_languages(owner, LANGUAGE_MASTER) if(linked.saved_mind) linked.saved_mind.transfer_to(familiar) + familiar.update_atom_languages() familiar.ckey = linked.saved_mind.key else if(familiar.mind) diff --git a/code/modules/research/xenobiology/crossbreeding/industrial.dm b/code/modules/research/xenobiology/crossbreeding/industrial.dm index bec2c2c1ae..ac9d2e58c5 100644 --- a/code/modules/research/xenobiology/crossbreeding/industrial.dm +++ b/code/modules/research/xenobiology/crossbreeding/industrial.dm @@ -53,7 +53,7 @@ Industrial extracts: /obj/item/slimecross/industrial/grey colour = "grey" - itempath = /obj/item/reagent_containers/food/snacks/monkeycube + itempath = /obj/item/reagent_containers/food/snacks/cube/monkey itemamount = 5 /obj/item/slimecross/industrial/orange diff --git a/code/modules/research/xenobiology/crossbreeding/reproductive.dm b/code/modules/research/xenobiology/crossbreeding/reproductive.dm index 2f6ca9555a..3662f45355 100644 --- a/code/modules/research/xenobiology/crossbreeding/reproductive.dm +++ b/code/modules/research/xenobiology/crossbreeding/reproductive.dm @@ -19,14 +19,14 @@ Reproductive extracts: return if(istype(O, /obj/item/storage/bag/bio)) var/list/inserted = list() - SEND_SIGNAL(O, COMSIG_TRY_STORAGE_TAKE_TYPE, /obj/item/reagent_containers/food/snacks/monkeycube, src, 1, null, null, user, inserted) + SEND_SIGNAL(O, COMSIG_TRY_STORAGE_TAKE_TYPE, /obj/item/reagent_containers/food/snacks/cube/monkey, src, 1, null, null, user, inserted) if(inserted.len) - var/obj/item/reagent_containers/food/snacks/monkeycube/M = inserted[1] + var/obj/item/reagent_containers/food/snacks/cube/monkey/M = inserted[1] if(istype(M)) eat_cube(M, user) else to_chat(user, "There are no monkey cubes in the bio bag!") - if(istype(O,/obj/item/reagent_containers/food/snacks/monkeycube)) + if(istype(O,/obj/item/reagent_containers/food/snacks/cube/monkey)) eat_cube(O, user) if(cubes_eaten >= 3) var/cores = rand(1,4) diff --git a/code/modules/research/xenobiology/crossbreeding/stabilized.dm b/code/modules/research/xenobiology/crossbreeding/stabilized.dm index 1912ca6476..8fbe841828 100644 --- a/code/modules/research/xenobiology/crossbreeding/stabilized.dm +++ b/code/modules/research/xenobiology/crossbreeding/stabilized.dm @@ -158,7 +158,7 @@ Stabilized extracts: /obj/item/slimecross/stabilized/rainbow/attackby(obj/item/O, mob/user) var/obj/item/slimecross/regenerative/regen = O - if(istype(O) && !regencore) + if(istype(regen) && !regencore) to_chat(user, "You place the [O] in the [src], prepping the extract for automatic application!") regencore = regen regen.forceMove(src) diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 5492e9bc38..ef9c751d57 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -146,7 +146,7 @@ else to_chat(user, "[src] already has the contents of [O] installed!") return - if(istype(O, /obj/item/reagent_containers/food/snacks/monkeycube) && (upgradetier & XENOBIO_UPGRADE_MONKEYS)) //CIT CHANGE - makes monkey-related actions require XENOBIO_UPGRADE_MONKEYS + if(istype(O, /obj/item/reagent_containers/food/snacks/cube/monkey) && (upgradetier & XENOBIO_UPGRADE_MONKEYS)) //CIT CHANGE - makes monkey-related actions require XENOBIO_UPGRADE_MONKEYS monkeys++ to_chat(user, "You feed [O] to [src]. It now has [monkeys] monkey cubes stored.") qdel(O) @@ -155,7 +155,7 @@ var/obj/item/storage/P = O var/loaded = FALSE for(var/obj/G in P.contents) - if(istype(G, /obj/item/reagent_containers/food/snacks/monkeycube)) + if(istype(G, /obj/item/reagent_containers/food/snacks/cube/monkey)) loaded = TRUE monkeys++ qdel(G) diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index a346cd697f..65e1f80ed0 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -83,7 +83,7 @@ /obj/item/slime_extract/grey/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) if(SLIME_ACTIVATE_MINOR) - var/obj/item/reagent_containers/food/snacks/monkeycube/M = new + var/obj/item/reagent_containers/food/snacks/cube/monkey/M = new if(!user.put_in_active_hand(M)) M.forceMove(user.drop_location()) playsound(user, 'sound/effects/splat.ogg', 50, 1) @@ -684,7 +684,7 @@ if(SM.flags_1 & HOLOGRAM_1) //Check to see if it's a holodeck creature to_chat(SM, "You also become depressingly aware that you are not a real creature, but instead a holoform. Your existence is limited to the parameters of the holodeck.") to_chat(user, "[SM] accepts [src] and suddenly becomes attentive and aware. It worked!") - SM.copy_known_languages_from(user, FALSE) + SM.copy_languages(user) after_success(user, SM) qdel(src) else @@ -801,7 +801,7 @@ return to_chat(user, "You feed the slime the stabilizer. It is now less likely to mutate.") - M.mutation_chance = CLAMP(M.mutation_chance-15,0,100) + M.mutation_chance = clamp(M.mutation_chance-15,0,100) qdel(src) /obj/item/slimepotion/slime/mutator @@ -825,7 +825,7 @@ return to_chat(user, "You feed the slime the mutator. It is now more likely to mutate.") - M.mutation_chance = CLAMP(M.mutation_chance+12,0,100) + M.mutation_chance = clamp(M.mutation_chance+12,0,100) M.mutator_used = TRUE qdel(src) diff --git a/code/modules/ruins/icemoonruin_code/hotsprings.dm b/code/modules/ruins/icemoonruin_code/hotsprings.dm new file mode 100644 index 0000000000..8cbd1b1f37 --- /dev/null +++ b/code/modules/ruins/icemoonruin_code/hotsprings.dm @@ -0,0 +1,37 @@ +GLOBAL_LIST_EMPTY(cursed_minds) + +/** + * Turns whoever enters into a mob + * + * If mob is chosen, turns the person into a random animal type + * Once the spring is used, it cannot be used by the same mind ever again + * After usage, teleports the user back to a random safe turf (so mobs are not killed by ice moon atmosphere) + * + */ + +/turf/open/water/cursed_spring + baseturfs = /turf/open/water/cursed_spring + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + +/turf/open/water/cursed_spring/Entered(atom/movable/thing, atom/oldLoc) + . = ..() + if(!isliving(thing)) + return + var/mob/living/L = thing + if(!L.client) + return + if(GLOB.cursed_minds[L.mind]) + return + GLOB.cursed_minds[L.mind] = TRUE + RegisterSignal(L.mind, COMSIG_PARENT_QDELETING, .proc/remove_from_cursed) + L = wabbajack(L, "animal") // Appearance randomization removed so citadel players don't get randomized into some ungodly ugly creature and complain + var/turf/T = find_safe_turf() + L.forceMove(T) + to_chat(L, "You blink and find yourself in [get_area_name(T)].") + +/** + * Deletes minds from the cursed minds list after their deletion + * + */ +/turf/open/water/cursed_spring/proc/remove_from_cursed(datum/mind/M) + GLOB.cursed_minds -= M diff --git a/code/modules/ruins/icemoonruin_code/library.dm b/code/modules/ruins/icemoonruin_code/library.dm new file mode 100644 index 0000000000..e9bbb852b7 --- /dev/null +++ b/code/modules/ruins/icemoonruin_code/library.dm @@ -0,0 +1,33 @@ +/obj/machinery/door/keycard/library + name = "wooden door" + desc = "A dusty, scratched door with a thick lock attached." + icon = 'icons/obj/doors/puzzledoor/wood.dmi' + puzzle_id = "library" + open_message = "The door opens with a loud creak." + +/obj/item/keycard/library + name = "golden key" + desc = "A dull, golden key." + icon_state = "golden_key" + puzzle_id = "library" + +/obj/item/paper/crumpled/bloody/fluff/stations/lavaland/library/warning + name = "ancient note" + info = "Here lies the vast collection of He Who Knows Ten Thousand Things. May all who pursue this knowledge for power be cursed a thousand times." + +/obj/item/paper/crumpled/fluff/stations/lavaland/library/diary + name = "diary entry 13" + info = "It has been a week since the library was buried. I am so hungry that I can barely muster the energy to think, let alone write. The owl is gone." + +/obj/item/paper/crumpled/fluff/stations/lavaland/library/diary2 + name = "diary entry 18" + info = "I've lost track of time. I lack the strength to even pick up books off the shelves. To think, after all this time spent searching for the library, I will die before I can so much as graze the depth of its knowledge." + +/obj/item/feather + name = "feather" + desc = "A dark, wilting feather. It seems as old as time." + icon = 'icons/obj/objects.dmi' + icon_state = "feather" + force = 0 + throwforce = 0 + w_class = WEIGHT_CLASS_TINY diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm index d09c1ce86f..45b6939f42 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -133,7 +133,7 @@ assignedrole = "Lavaland Syndicate" /obj/effect/mob_spawn/human/lavaland_syndicate/special(mob/living/new_spawn) - new_spawn.grant_language(/datum/language/codespeak) + new_spawn.grant_language(/datum/language/codespeak, TRUE, TRUE, LANGUAGE_MIND) /datum/outfit/lavaland_syndicate name = "Lavaland Syndicate Agent" @@ -142,7 +142,7 @@ uniform = /obj/item/clothing/under/syndicate suit = /obj/item/clothing/suit/toggle/labcoat shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat + gloves = /obj/item/clothing/gloves/tackler/combat/insulated ears = /obj/item/radio/headset/syndicate/alt back = /obj/item/storage/backpack r_pocket = /obj/item/gun/ballistic/automatic/pistol diff --git a/code/modules/security_levels/keycard_authentication.dm b/code/modules/security_levels/keycard_authentication.dm index 301ab24f98..d01a6de8ed 100644 --- a/code/modules/security_levels/keycard_authentication.dm +++ b/code/modules/security_levels/keycard_authentication.dm @@ -44,7 +44,7 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) var/list/data = list() data["waiting"] = waiting data["auth_required"] = event_source ? event_source.event : 0 - data["red_alert"] = (seclevel2num(get_security_level()) >= SEC_LEVEL_RED) ? 1 : 0 + data["red_alert"] = (SECLEVEL2NUM(NUM2SECLEVEL(GLOB.security_level)) >= SEC_LEVEL_RED) ? 1 : 0 data["emergency_maint"] = GLOB.emergency_access data["bsa_unlock"] = GLOB.bsa_unlock return data diff --git a/code/modules/security_levels/security_levels.dm b/code/modules/security_levels/security_levels.dm index 887891ca16..52fafb81be 100644 --- a/code/modules/security_levels/security_levels.dm +++ b/code/modules/security_levels/security_levels.dm @@ -5,20 +5,17 @@ GLOBAL_VAR_INIT(security_level, SEC_LEVEL_GREEN) //SEC_LEVEL_RED = code red //SEC_LEVEL_DELTA = code delta + /* + * All security levels, per ascending alert. Nothing too fancy, really. + * Their positions should also match their numerical values. + */ +GLOBAL_LIST_INIT(all_security_levels, list("green", "blue", "amber", "red", "delta")) + //config.alert_desc_blue_downto /proc/set_security_level(level) - switch(level) - if("green") - level = SEC_LEVEL_GREEN - if("blue") - level = SEC_LEVEL_BLUE - if("amber") - level = SEC_LEVEL_AMBER - if("red") - level = SEC_LEVEL_RED - if("delta") - level = SEC_LEVEL_DELTA + if(!isnum(level)) + level = GLOB.all_security_levels.Find(level) //Will not be announced if you try to set to the same level as it already is if(level >= SEC_LEVEL_GREEN && level <= SEC_LEVEL_DELTA && level != GLOB.security_level) @@ -111,46 +108,7 @@ GLOBAL_VAR_INIT(security_level, SEC_LEVEL_GREEN) if(D.red_alert_access) D.visible_message("[D] whirrs as it automatically lifts access requirements!") playsound(D, 'sound/machines/boltsup.ogg', 50, TRUE) - SSblackbox.record_feedback("tally", "security_level_changes", 1, get_security_level()) + SSblackbox.record_feedback("tally", "security_level_changes", 1, NUM2SECLEVEL(GLOB.security_level)) SSnightshift.check_nightshift() else return - -/proc/get_security_level() - switch(GLOB.security_level) - if(SEC_LEVEL_GREEN) - return "green" - if(SEC_LEVEL_BLUE) - return "blue" - if(SEC_LEVEL_AMBER) - return "amber" - if(SEC_LEVEL_RED) - return "red" - if(SEC_LEVEL_DELTA) - return "delta" - -/proc/num2seclevel(num) - switch(num) - if(SEC_LEVEL_GREEN) - return "green" - if(SEC_LEVEL_BLUE) - return "blue" - if(SEC_LEVEL_AMBER) - return "amber" - if(SEC_LEVEL_RED) - return "red" - if(SEC_LEVEL_DELTA) - return "delta" - -/proc/seclevel2num(seclevel) - switch( lowertext(seclevel) ) - if("green") - return SEC_LEVEL_GREEN - if("blue") - return SEC_LEVEL_BLUE - if("amber") - return SEC_LEVEL_AMBER - if("red") - return SEC_LEVEL_RED - if("delta") - return SEC_LEVEL_DELTA diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 727e181b3b..637d9ae334 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -309,7 +309,7 @@ /obj/docking_port/mobile/emergency/request(obj/docking_port/stationary/S, area/signalOrigin, reason, redAlert, set_coefficient=null, silent = FALSE) if(!isnum(set_coefficient)) - var/security_num = seclevel2num(get_security_level()) + var/security_num = SECLEVEL2NUM(NUM2SECLEVEL(GLOB.security_level)) switch(security_num) if(SEC_LEVEL_GREEN) set_coefficient = 2 @@ -556,7 +556,7 @@ dwidth = 1 width = 3 height = 4 - var/target_area = /area/lavaland/surface/outdoors + var/target_area = list(/area/lavaland/surface/outdoors, /area/icemoon/underground/unexplored/rivers) var/edge_distance = 16 // Minimal distance from the map edge, setting this too low can result in shuttle landing on the edge and getting "sliced" diff --git a/code/modules/shuttle/manipulator.dm b/code/modules/shuttle/manipulator.dm index 67332e6b30..5f120791cb 100644 --- a/code/modules/shuttle/manipulator.dm +++ b/code/modules/shuttle/manipulator.dm @@ -10,3 +10,14 @@ icon_state = "holograph_on" density = TRUE + +/obj/machinery/shuttle_manipulator/update_overlays() + . = ..() + var/mutable_appearance/hologram_projection = mutable_appearance(icon, "hologram_on") + hologram_projection.pixel_y = 22 + var/mutable_appearance/hologram_ship = mutable_appearance(icon, "hologram_whiteship") + hologram_ship.pixel_y = 27 + add_overlay(hologram_projection) + add_overlay(hologram_ship) + . += hologram_projection + . += hologram_ship diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index fd3279954c..4f53e5d9d0 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -13,6 +13,7 @@ var/view_range = 7 var/x_offset = 0 var/y_offset = 0 + var/list/whitelist_turfs = list(/turf/open/space, /turf/open/floor/plating, /turf/open/lava) var/space_turfs_only = TRUE var/see_hidden = FALSE var/designate_time = 0 @@ -22,6 +23,7 @@ /obj/machinery/computer/camera_advanced/shuttle_docker/Initialize() . = ..() GLOB.navigation_computers += src + whitelist_turfs = typecacheof(whitelist_turfs) /obj/machinery/computer/camera_advanced/shuttle_docker/Destroy() . = ..() @@ -226,6 +228,11 @@ if(!ispath(turf_type, /turf/open/space)) return SHUTTLE_DOCKER_BLOCKED + if(length(whitelist_turfs)) + var/turf_type = hidden_turf_info ? hidden_turf_info[2] : T.type + if(!is_type_in_typecache(turf_type, whitelist_turfs)) + return SHUTTLE_DOCKER_BLOCKED + // Checking for overlapping dock boundaries for(var/i in 1 to overlappers.len) var/obj/docking_port/port = overlappers[i] diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm index 701c153783..8c1b3fa955 100644 --- a/code/modules/shuttle/on_move.dm +++ b/code/modules/shuttle/on_move.dm @@ -249,7 +249,7 @@ All ShuttleMove procs go here A.atmosinit() if(A.returnPipenet()) A.addMember(src) - build_network() + SSair.add_to_rebuild_queue(src) else // atmosinit() calls update_icon(), so we don't need to call it update_icon() diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 5de6b8ca06..b1c73aff9e 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -757,13 +757,13 @@ var/change_per_engine = (1 - ENGINE_COEFF_MIN) / ENGINE_DEFAULT_MAXSPEED_ENGINES // 5 by default if(initial_engines > 0) change_per_engine = (1 - ENGINE_COEFF_MIN) / initial_engines // or however many it had - return CLAMP(1 - delta * change_per_engine,ENGINE_COEFF_MIN,ENGINE_COEFF_MAX) + return clamp(1 - delta * change_per_engine,ENGINE_COEFF_MIN,ENGINE_COEFF_MAX) if(new_value < initial_engines) var/delta = initial_engines - new_value var/change_per_engine = 1 //doesn't really matter should not be happening for 0 engine shuttles if(initial_engines > 0) change_per_engine = (ENGINE_COEFF_MAX - 1) / initial_engines //just linear drop to max delay - return CLAMP(1 + delta * change_per_engine,ENGINE_COEFF_MIN,ENGINE_COEFF_MAX) + return clamp(1 + delta * change_per_engine,ENGINE_COEFF_MIN,ENGINE_COEFF_MAX) /obj/docking_port/mobile/proc/in_flight() diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm index 033187e353..87f9b55aa9 100644 --- a/code/modules/shuttle/special.dm +++ b/code/modules/shuttle/special.dm @@ -122,7 +122,7 @@ /obj/structure/table/abductor/wabbajack/proc/sleeper_dreams(mob/living/sleeper) if(sleeper in sleepers) to_chat(sleeper, "While you slumber, you have the strangest dream, like you can see yourself from the outside.") - sleeper.ghostize(TRUE) + sleeper.ghostize(TRUE, voluntary = TRUE) /obj/structure/table/abductor/wabbajack/left desc = "You sleep so it may wake." diff --git a/code/modules/shuttle/syndicate.dm b/code/modules/shuttle/syndicate.dm index 4ebefc7e3c..440e6cb03b 100644 --- a/code/modules/shuttle/syndicate.dm +++ b/code/modules/shuttle/syndicate.dm @@ -62,6 +62,8 @@ view_range = 13 x_offset = -7 y_offset = -1 + space_turfs_only = FALSE + whitelist_turfs = list(/turf/open/space, /turf/open/floor/plating, /turf/open/lava, /turf/closed/mineral) see_hidden = TRUE -#undef SYNDICATE_CHALLENGE_TIMER \ No newline at end of file +#undef SYNDICATE_CHALLENGE_TIMER diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm index ace542126c..e9432e2f58 100644 --- a/code/modules/spells/spell_types/wizard.dm +++ b/code/modules/spells/spell_types/wizard.dm @@ -297,7 +297,7 @@ var/mob/living/M = AM M.DefaultCombatKnockdown(stun_amt, override_hardstun = stun_amt * 0.2) to_chat(M, "You're thrown back by [user]!") - AM.throw_at(throwtarget, ((CLAMP((maxthrow - (CLAMP(distfromcaster - 2, 0, distfromcaster))), 3, maxthrow))), 1,user)//So stuff gets tossed around at the same time. + AM.throw_at(throwtarget, ((clamp((maxthrow - (clamp(distfromcaster - 2, 0, distfromcaster))), 3, maxthrow))), 1,user)//So stuff gets tossed around at the same time. safety-- /obj/effect/proc_holder/spell/aoe_turf/repulse/xeno //i fixed conflicts only to find out that this is in the WIZARD file instead of the xeno file?! diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index 3b0ab29308..40fb066fe1 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -276,7 +276,7 @@ ADD_TRAIT(H, TRAIT_PIERCEIMMUNE, "dna_vault") if(VAULT_SPEED) to_chat(H, "Your legs feel faster.") - H.add_movespeed_modifier(MOVESPEED_ID_DNA_VAULT, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING)) + H.add_movespeed_modifier(/datum/movespeed_modifier/dna_vault_speedup) if(VAULT_QUICK) to_chat(H, "Your arms move as fast as lightning.") H.next_move_modifier = 0.5 diff --git a/code/modules/surgery/advanced/lobotomy.dm b/code/modules/surgery/advanced/lobotomy.dm index a41e72b76d..2b2d11e54f 100644 --- a/code/modules/surgery/advanced/lobotomy.dm +++ b/code/modules/surgery/advanced/lobotomy.dm @@ -41,7 +41,7 @@ target.cure_all_traumas(TRAUMA_RESILIENCE_LOBOTOMY) if(target.mind && target.mind.has_antag_datum(/datum/antagonist/brainwashed)) target.mind.remove_antag_datum(/datum/antagonist/brainwashed) - switch(rand(1,4))//Now let's see what hopefully-not-important part of the brain we cut off + switch(rand(1,6))//Now let's see what hopefully-not-important part of the brain we cut off if(1) target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_MAGIC) if(2) diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index d6f0866936..dd31145491 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -164,8 +164,8 @@ return FALSE switch(animal_origin) - if(ALIEN_BODYPART,LARVA_BODYPART) //aliens take double burn //nothing can burn with so much snowflake code around - burn *= 2 + if(ALIEN_BODYPART,LARVA_BODYPART) //aliens take some additional burn //nothing can burn with so much snowflake code around + burn *= 1.2 var/can_inflict = max_damage - get_damage() if(can_inflict <= 0) @@ -183,7 +183,7 @@ //We've dealt the physical damages, if there's room lets apply the stamina damage. var/current_damage = get_damage(TRUE) //This time around, count stamina loss too. var/available_damage = max_damage - current_damage - stamina_dam += round(CLAMP(stamina, 0, min(max_stamina_damage - stamina_dam, available_damage)), DAMAGE_PRECISION) + stamina_dam += round(clamp(stamina, 0, min(max_stamina_damage - stamina_dam, available_damage)), DAMAGE_PRECISION) if(disabled && stamina > 10) incoming_stam_mult = max(0.01, incoming_stam_mult/(stamina*0.1)) diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index 276d4893de..d9e7012214 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -16,7 +16,7 @@ return FALSE var/obj/item/bodypart/affecting = C.get_bodypart(BODY_ZONE_CHEST) - affecting.receive_damage(CLAMP(brute_dam/2 * affecting.body_damage_coeff, 15, 50), CLAMP(burn_dam/2 * affecting.body_damage_coeff, 0, 50)) //Damage the chest based on limb's existing damage + affecting.receive_damage(clamp(brute_dam/2 * affecting.body_damage_coeff, 15, 50), clamp(burn_dam/2 * affecting.body_damage_coeff, 0, 50)) //Damage the chest based on limb's existing damage C.visible_message("[C]'s [src.name] has been violently dismembered!") C.emote("scream") SEND_SIGNAL(C, COMSIG_ADD_MOOD_EVENT, "dismembered", /datum/mood_event/dismembered) @@ -60,8 +60,7 @@ playsound(get_turf(C), 'sound/misc/splort.ogg', 80, 1) for(var/X in C.internal_organs) var/obj/item/organ/O = X - var/org_zone = check_zone(O.zone) - if(org_zone != BODY_ZONE_CHEST) + if(O.organ_flags & ORGAN_NO_DISMEMBERMENT || check_zone(O.zone) != BODY_ZONE_CHEST) continue O.Remove() O.forceMove(T) @@ -295,6 +294,7 @@ O.Insert(C) update_bodypart_damage_state() + update_disabled() C.updatehealth() C.update_body() @@ -302,7 +302,6 @@ C.update_damage_overlays() C.update_mobility() - /obj/item/bodypart/head/attach_limb(mob/living/carbon/C, special) //Transfer some head appearance vars over if(brain) diff --git a/code/modules/surgery/bodyparts/robot_bodyparts.dm b/code/modules/surgery/bodyparts/robot_bodyparts.dm index a3f8b883b4..39e660203e 100644 --- a/code/modules/surgery/bodyparts/robot_bodyparts.dm +++ b/code/modules/surgery/bodyparts/robot_bodyparts.dm @@ -19,7 +19,7 @@ flags_1 = CONDUCT_1 icon_state = "borg_l_arm" status = BODYPART_ROBOTIC - + brute_reduction = 2 burn_reduction = 1 @@ -40,7 +40,7 @@ flags_1 = CONDUCT_1 icon_state = "borg_r_arm" status = BODYPART_ROBOTIC - + brute_reduction = 2 burn_reduction = 1 @@ -61,7 +61,7 @@ flags_1 = CONDUCT_1 icon_state = "borg_l_leg" status = BODYPART_ROBOTIC - + brute_reduction = 2 burn_reduction = 1 @@ -82,7 +82,7 @@ flags_1 = CONDUCT_1 icon_state = "borg_r_leg" status = BODYPART_ROBOTIC - + brute_reduction = 2 burn_reduction = 1 @@ -102,7 +102,7 @@ flags_1 = CONDUCT_1 icon_state = "borg_chest" status = BODYPART_ROBOTIC - + brute_reduction = 2 burn_reduction = 1 @@ -131,8 +131,7 @@ if(src.wired) to_chat(user, "You have already inserted wire!") return - var/obj/item/stack/cable_coil/coil = W - if (coil.use(1)) + if (W.use_tool(src, user, 0, 1)) src.wired = 1 to_chat(user, "You insert the wire.") else @@ -164,7 +163,7 @@ flags_1 = CONDUCT_1 icon_state = "borg_head" status = BODYPART_ROBOTIC - + brute_reduction = 5 burn_reduction = 4 diff --git a/code/modules/surgery/organs/appendix.dm b/code/modules/surgery/organs/appendix.dm index 9da20e4921..c737e8bc30 100644 --- a/code/modules/surgery/organs/appendix.dm +++ b/code/modules/surgery/organs/appendix.dm @@ -12,12 +12,10 @@ var/inflamed /obj/item/organ/appendix/on_life() - ..() - if(!(organ_flags & ORGAN_FAILING)) + . = ..() + if(. || !owner) return - var/mob/living/carbon/M = owner - if(M) - M.adjustToxLoss(4, TRUE, TRUE) //forced to ensure people don't use it to gain tox as slime person + owner.adjustToxLoss(4, TRUE, TRUE) //forced to ensure people don't use it to gain tox as slime person /obj/item/organ/appendix/update_icon_state() if(inflamed) diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index daf3324980..b7dfa3eb88 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -2,6 +2,7 @@ name = "arm-mounted implant" desc = "You shouldn't see this! Adminhelp and report this as an issue on github!" zone = BODY_ZONE_R_ARM + organ_flags = ORGAN_SYNTHETIC icon_state = "implant-toolkit" w_class = WEIGHT_CLASS_NORMAL actions_types = list(/datum/action/item_action/organ_action/toggle) @@ -20,7 +21,28 @@ update_icon() SetSlotFromZone() - items_list = contents.Copy() + for(var/obj/item/I in contents) + add_item(I) + +/obj/item/organ/cyberimp/arm/proc/add_item(obj/item/I) + if(I in items_list) + return + I.forceMove(src) + items_list += I + // ayy only dropped signal for performance, we can't possibly have shitcode that doesn't call it when removing items from a mob, right? + // .. right??! + RegisterSignal(I, COMSIG_ITEM_DROPPED, .proc/magnetic_catch) + +/obj/item/organ/cyberimp/arm/proc/magnetic_catch(datum/source, mob/user) + . = COMPONENT_DROPPED_RELOCATION + var/obj/item/I = source //if someone is misusing the signal, just runtime + if(I in items_list) + if(I in contents) //already in us somehow? i probably shouldn't catch this so it's easier to spot bugs but eh.. + return + I.visible_message("[I] snaps back into [src]!") + I.forceMove(src) + if(I == holder) + holder = null /obj/item/organ/cyberimp/arm/proc/SetSlotFromZone() switch(zone) @@ -62,7 +84,7 @@ . = ..() if(. & EMP_PROTECT_SELF) return - if(prob(15/severity) && owner) + if(owner) to_chat(owner, "[src] is hit by EMP!") // give the owner an idea about why his implant is glitching Retract() @@ -75,29 +97,20 @@ "[holder] snaps back into your [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm.", "You hear a short mechanical noise.") - if(istype(holder, /obj/item/assembly/flash/armimplant)) - var/obj/item/assembly/flash/F = holder - F.set_light(0) - owner.transferItemToLoc(holder, src, TRUE) holder = null playsound(get_turf(owner), 'sound/mecha/mechmove03.ogg', 50, 1) -/obj/item/organ/cyberimp/arm/proc/Extend(var/obj/item/item) +/obj/item/organ/cyberimp/arm/proc/Extend(obj/item/item) if(!(item in src)) return holder = item - ADD_TRAIT(holder, TRAIT_NODROP, HAND_REPLACEMENT_TRAIT) holder.resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF holder.slot_flags = null holder.set_custom_materials(null) - if(istype(holder, /obj/item/assembly/flash/armimplant)) - var/obj/item/assembly/flash/F = holder - F.set_light(7) - var/obj/item/arm_item = owner.get_active_held_item() if(arm_item) @@ -223,21 +236,6 @@ icon_state = "arm_taser" contents = newlist(/obj/item/gun/energy/e_gun/advtaser/mounted) -/obj/item/organ/cyberimp/arm/gun/emp_act(severity) - . = ..() - if(. & EMP_PROTECT_SELF) - return - if(prob(30/severity) && owner && !(organ_flags & ORGAN_FAILING)) - Retract() - owner.visible_message("A loud bang comes from [owner]\'s [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm!") - playsound(get_turf(owner), 'sound/weapons/flashbang.ogg', 100, 1) - to_chat(owner, "You feel an explosion erupt inside your [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm as your implant breaks!") - owner.adjust_fire_stacks(20) - owner.IgniteMob() - owner.adjustFireLoss(25) - crit_fail = 1 - organ_flags |= ORGAN_FAILING - /obj/item/organ/cyberimp/arm/flash name = "integrated high-intensity photon projector" //Why not desc = "An integrated projector mounted onto a user's arm that is able to be used as a powerful flash." @@ -275,6 +273,12 @@ desc = "A deployable riot shield to help deal with civil unrest." contents = newlist(/obj/item/shield/riot/implant) +/obj/item/organ/cyberimp/arm/shield/Extend(obj/item/I) + if(I.obj_integrity == 0) //that's how the shield recharge works + to_chat(owner, "[I] is still too unstable to extend. Give it some time!") + return FALSE + return ..() + /obj/item/organ/cyberimp/arm/shield/emag_act() . = ..() if(obj_flags & EMAGGED) diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm index 47a452cc76..46092ff0c2 100644 --- a/code/modules/surgery/organs/augments_chest.dm +++ b/code/modules/surgery/organs/augments_chest.dm @@ -16,7 +16,8 @@ slot = ORGAN_SLOT_STOMACH_AID /obj/item/organ/cyberimp/chest/nutriment/on_life() - if(synthesizing) + . = ..() + if(!. || synthesizing) return if(owner.nutrition <= hunger_threshold) @@ -59,23 +60,25 @@ var/convalescence_time = 0 /obj/item/organ/cyberimp/chest/reviver/on_life() + . = ..() if(reviving) - var/do_heal = world.time < convalescence_time + var/do_heal = . && world.time < convalescence_time if(revive_cost >= MAX_HEAL_COOLDOWN) do_heal = FALSE - else if(owner.stat && owner.stat != DEAD) + else if(owner?.stat && owner.stat != DEAD) do_heal = TRUE else if(!do_heal) convalescence_time = world.time + DEF_CONVALESCENCE_TIME - if(do_heal) + if(. && (do_heal || world.time < convalescence_time)) addtimer(CALLBACK(src, .proc/heal), 3 SECONDS) else cooldown = revive_cost + world.time reviving = FALSE - to_chat(owner, "Your reviver implant shuts down and starts recharging. It will be ready again in [DisplayTimeText(revive_cost)].") + if(owner) + to_chat(owner, "Your reviver implant shuts down and starts recharging. It will be ready again in [DisplayTimeText(revive_cost)].") return - if(cooldown > world.time || owner.stat == CONSCIOUS || owner.stat == DEAD || owner.suiciding) + if(!. || cooldown > world.time || owner.stat == CONSCIOUS || owner.stat == DEAD || owner.suiciding) return revive_cost = 0 @@ -165,14 +168,14 @@ if(allow_thrust(0.01)) ion_trail.start() RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/move_react) - owner.add_movespeed_modifier(MOVESPEED_ID_CYBER_THRUSTER, priority=100, multiplicative_slowdown=-2, movetypes=FLOATING, conflict=MOVE_CONFLICT_JETPACK) + owner.add_movespeed_modifier(/datum/movespeed_modifier/jetpack/cybernetic) if(!silent) to_chat(owner, "You turn your thrusters set on.") else ion_trail.stop() if(!QDELETED(owner)) UnregisterSignal(owner, COMSIG_MOVABLE_MOVED) - owner.remove_movespeed_modifier(MOVESPEED_ID_CYBER_THRUSTER) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/jetpack/cybernetic) if(!silent) to_chat(owner, "You turn your thrusters set off.") on = FALSE diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index a678482ef3..6705b4c7b4 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -102,8 +102,8 @@ slot = ORGAN_SLOT_BRAIN_ANTISTUN /obj/item/organ/cyberimp/brain/anti_stun/on_life() - ..() - if(crit_fail || !(organ_flags & ORGAN_FAILING)) + . = ..() + if(!. || crit_fail) return owner.adjustStaminaLoss(-3.5, FALSE) //Citadel edit, makes it more useful in Stamina based combat owner.HealAllImmobilityUpTo(STUN_SET_AMOUNT) diff --git a/code/modules/surgery/organs/ears.dm b/code/modules/surgery/organs/ears.dm index 63febd1a9f..c1e33c7dac 100644 --- a/code/modules/surgery/organs/ears.dm +++ b/code/modules/surgery/organs/ears.dm @@ -29,22 +29,17 @@ var/damage_multiplier = 1 /obj/item/organ/ears/on_life() - if(!iscarbon(owner)) - return - ..() - var/mob/living/carbon/C = owner - if((damage < maxHealth) && (organ_flags & ORGAN_FAILING)) //ear damage can be repaired from the failing condition - organ_flags &= ~ORGAN_FAILING + . = ..() // genetic deafness prevents the body from using the ears, even if healthy - if(HAS_TRAIT(C, TRAIT_DEAF)) + if(owner && HAS_TRAIT(owner, TRAIT_DEAF)) deaf = max(deaf, 1) - else if(!(organ_flags & ORGAN_FAILING)) // if this organ is failing, do not clear deaf stacks. + else if(.) // if this organ is failing, do not clear deaf stacks. deaf = max(deaf - 1, 0) if(prob(damage / 20) && (damage > low_threshold)) adjustEarDamage(0, 4) - SEND_SOUND(C, sound('sound/weapons/flash_ring.ogg')) - to_chat(C, "The ringing in your ears grows louder, blocking out any external noises for a moment.") - else if((organ_flags & ORGAN_FAILING) && (deaf == 0)) + SEND_SOUND(owner, sound('sound/weapons/flash_ring.ogg')) + to_chat(owner, "The ringing in your ears grows louder, blocking out any external noises for a moment.") + else if(!. && !deaf) deaf = 1 //stop being not deaf you deaf idiot /obj/item/organ/ears/proc/restoreEars() diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index 6b93995e62..049fc5b5d4 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -1,3 +1,7 @@ +#define BLURRY_VISION_ONE 1 +#define BLURRY_VISION_TWO 2 +#define BLIND_VISION_THREE 3 + /obj/item/organ/eyes name = BODY_ZONE_PRECISE_EYES icon_state = "eyeballs" @@ -10,7 +14,7 @@ decay_factor = STANDARD_ORGAN_DECAY maxHealth = 0.5 * STANDARD_ORGAN_THRESHOLD //half the normal health max since we go blind at 30, a permanent blindness at 50 therefore makes sense unless medicine is administered high_threshold = 0.3 * STANDARD_ORGAN_THRESHOLD //threshold at 30 - low_threshold = 0.15 * STANDARD_ORGAN_THRESHOLD //threshold at 15 + low_threshold = 0.2 * STANDARD_ORGAN_THRESHOLD //threshold at 15 low_threshold_passed = "Distant objects become somewhat less tangible." high_threshold_passed = "Everything starts to look a lot less clear." @@ -27,14 +31,17 @@ var/flash_protect = 0 var/see_invisible = SEE_INVISIBLE_LIVING var/lighting_alpha - var/damaged = FALSE //damaged indicates that our eyes are undergoing some level of negative effect + var/eye_damaged = FALSE //indicates that our eyes are undergoing some level of negative effect /obj/item/organ/eyes/Insert(mob/living/carbon/M, special = FALSE, drop_if_replaced = FALSE) . = ..() if(!.) return - if(damage == initial(damage)) - clear_eye_trauma() + switch(eye_damaged) + if(BLURRY_VISION_ONE, BLURRY_VISION_TWO) + owner.overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, eye_damaged) + if(BLIND_VISION_THREE) + owner.become_blind(EYE_DAMAGE) if(ishuman(owner)) var/mob/living/carbon/human/H = owner old_eye_color = H.eye_color @@ -48,46 +55,49 @@ owner.update_sight() /obj/item/organ/eyes/Remove(special = FALSE) - clear_eye_trauma() . = ..() var/mob/living/carbon/C = . - if(!QDELETED(C)) - if(ishuman(C) && eye_color) - var/mob/living/carbon/human/H = C - H.eye_color = old_eye_color - if(!special) - H.dna.species.handle_body(H) + if(QDELETED(C)) + return + switch(eye_damaged) + if(BLURRY_VISION_ONE, BLURRY_VISION_TWO) + C.clear_fullscreen("eye_damage") + if(BLIND_VISION_THREE) + C.cure_blind(EYE_DAMAGE) + if(ishuman(C) && eye_color) + var/mob/living/carbon/human/H = C + H.eye_color = old_eye_color if(!special) - C.update_tint() - C.update_sight() + H.dna.species.handle_body(H) + if(!special) + C.update_tint() + C.update_sight() -/obj/item/organ/eyes/on_life() - ..() - var/mob/living/carbon/C = owner - //since we can repair fully damaged eyes, check if healing has occurred - if((organ_flags & ORGAN_FAILING) && (damage < maxHealth)) - organ_flags &= ~ORGAN_FAILING - C.cure_blind(EYE_DAMAGE) - //various degrees of "oh fuck my eyes", from "point a laser at your eye" to "staring at the Sun" intensities - if(damage > 20) - damaged = TRUE - if(organ_flags & ORGAN_FAILING) - C.become_blind(EYE_DAMAGE) - else if(damage > 30) - C.overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 2) + +/obj/item/organ/eyes/applyOrganDamage(d, maximum = maxHealth) + . = ..() + if(!.) + return + var/old_damaged = eye_damaged + switch(damage) + if(INFINITY to maxHealth) + eye_damaged = BLIND_VISION_THREE + if(maxHealth to high_threshold) + eye_damaged = BLURRY_VISION_TWO + if(high_threshold to low_threshold) + eye_damaged = BLURRY_VISION_ONE else - C.overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 1) - //called once since we don't want to keep clearing the screen of eye damage for people who are below 20 damage - else if(damaged) - damaged = FALSE - C.clear_fullscreen("eye_damage") - return - -/obj/item/organ/eyes/proc/clear_eye_trauma() - var/mob/living/carbon/C = owner - C.clear_fullscreen("eye_damage") - C.cure_blind(EYE_DAMAGE) - damaged = FALSE + eye_damaged = FALSE + if(eye_damaged == old_damaged || !owner) + return + if(old_damaged == BLIND_VISION_THREE) + owner.cure_blind(EYE_DAMAGE) + else if(eye_damaged == BLIND_VISION_THREE) + owner.become_blind(EYE_DAMAGE) + if(eye_damaged && eye_damaged != BLIND_VISION_THREE) + owner.overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, eye_damaged) + else + owner.clear_fullscreen("eye_damage") /obj/item/organ/eyes/night_vision name = "shadow eyes" @@ -259,7 +269,7 @@ if(!isnum(range)) return - set_distance(CLAMP(range, 0, max_light_beam_distance)) + set_distance(clamp(range, 0, max_light_beam_distance)) assume_rgb(C) /obj/item/organ/eyes/robotic/glow/proc/assume_rgb(newcolor) @@ -382,4 +392,8 @@ /obj/item/organ/eyes/ipc name = "ipc eyes" - icon_state = "cybernetic_eyeballs" \ No newline at end of file + icon_state = "cybernetic_eyeballs" + +#undef BLURRY_VISION_ONE +#undef BLURRY_VISION_TWO +#undef BLIND_VISION_THREE \ No newline at end of file diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index ea98ecd32b..1fee605b12 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -15,6 +15,7 @@ // Heart attack code is in code/modules/mob/living/carbon/human/life.dm var/beating = 1 + var/no_pump = FALSE var/icon_base = "heart" attack_verb = list("beat", "thumped") var/beat = BEAT_NONE//is this mob having a heatbeat sound played? if so, which? @@ -66,27 +67,28 @@ return S /obj/item/organ/heart/on_life() - ..() + . = ..() + if(!owner || no_pump) + return if(owner.client && beating) failed = FALSE var/sound/slowbeat = sound('sound/health/slowbeat.ogg', repeat = TRUE) var/sound/fastbeat = sound('sound/health/fastbeat.ogg', repeat = TRUE) - var/mob/living/carbon/H = owner - if(H.health <= H.crit_threshold && beat != BEAT_SLOW) + if(owner.health <= owner.crit_threshold && beat != BEAT_SLOW) beat = BEAT_SLOW - H.playsound_local(get_turf(H), slowbeat,40,0, channel = CHANNEL_HEARTBEAT) + owner.playsound_local(get_turf(owner), slowbeat,40,0, channel = CHANNEL_HEARTBEAT) to_chat(owner, "You feel your heart slow down...") - if(beat == BEAT_SLOW && H.health > H.crit_threshold) - H.stop_sound_channel(CHANNEL_HEARTBEAT) + if(beat == BEAT_SLOW && owner.health > owner.crit_threshold) + owner.stop_sound_channel(CHANNEL_HEARTBEAT) beat = BEAT_NONE - if(H.jitteriness) - if(H.health > HEALTH_THRESHOLD_FULLCRIT && (!beat || beat == BEAT_SLOW)) - H.playsound_local(get_turf(H),fastbeat,40,0, channel = CHANNEL_HEARTBEAT) + if(owner.jitteriness) + if(owner.health > HEALTH_THRESHOLD_FULLCRIT && (!beat || beat == BEAT_SLOW)) + owner.playsound_local(get_turf(owner),fastbeat,40,0, channel = CHANNEL_HEARTBEAT) beat = BEAT_FAST else if(beat == BEAT_FAST) - H.stop_sound_channel(CHANNEL_HEARTBEAT) + owner.stop_sound_channel(CHANNEL_HEARTBEAT) beat = BEAT_NONE if(organ_flags & ORGAN_FAILING) //heart broke, stopped beating, death imminent @@ -107,6 +109,7 @@ obj/item/organ/heart/slime icon_state = "cursedheart-off" icon_base = "cursedheart" decay_factor = 0 + no_pump = TRUE actions_types = list(/datum/action/item_action/organ_action/cursed_heart) var/last_pump = 0 var/add_colour = TRUE //So we're not constantly recreating colour datums @@ -128,6 +131,9 @@ obj/item/organ/heart/slime return ..() /obj/item/organ/heart/cursed/on_life() + . = ..() + if(!owner) + return if(world.time > (last_pump + pump_delay)) if(ishuman(owner) && owner.client) //While this entire item exists to make people suffer, they can't control disconnects. var/mob/living/carbon/human/H = owner @@ -208,6 +214,8 @@ obj/item/organ/heart/slime obj/item/organ/heart/cybernetic/upgraded/on_life() . = ..() + if(!.) + return if(dose_available && owner.health <= owner.crit_threshold && !owner.reagents.has_reagent(rid)) owner.reagents.add_reagent(rid, ramount) used_dose() @@ -233,7 +241,7 @@ obj/item/organ/heart/cybernetic/upgraded/on_life() /obj/item/organ/heart/freedom/on_life() . = ..() - if(owner.health < 5 && world.time > min_next_adrenaline) + if(. && owner.health < 5 && world.time > min_next_adrenaline) min_next_adrenaline = world.time + rand(250, 600) //anywhere from 4.5 to 10 minutes to_chat(owner, "You feel yourself dying, but you refuse to give up!") owner.heal_overall_damage(15, 15) diff --git a/code/modules/surgery/organs/liver.dm b/code/modules/surgery/organs/liver.dm index 6e5ea0e111..b24034ca4a 100755 --- a/code/modules/surgery/organs/liver.dm +++ b/code/modules/surgery/organs/liver.dm @@ -25,25 +25,24 @@ var/cachedmoveCalc = 1 /obj/item/organ/liver/on_life() - var/mob/living/carbon/C = owner + . = ..() + if(!. || !owner)//can't process reagents with a failing liver + return - if(istype(C)) - if(!(organ_flags & ORGAN_FAILING))//can't process reagents with a failing liver + if(filterToxins && !HAS_TRAIT(owner, TRAIT_TOXINLOVER)) + //handle liver toxin filtration + for(var/datum/reagent/toxin/T in owner.reagents.reagent_list) + var/thisamount = owner.reagents.get_reagent_amount(T.type) + if (thisamount && thisamount <= toxTolerance) + owner.reagents.remove_reagent(T.type, 1) + else + damage += (thisamount*toxLethality) - if(filterToxins && !HAS_TRAIT(owner, TRAIT_TOXINLOVER)) - //handle liver toxin filtration - for(var/datum/reagent/toxin/T in C.reagents.reagent_list) - var/thisamount = C.reagents.get_reagent_amount(T.type) - if (thisamount && thisamount <= toxTolerance) - C.reagents.remove_reagent(T.type, 1) - else - damage += (thisamount*toxLethality) + //metabolize reagents + owner.reagents.metabolize(owner, can_overdose=TRUE) - //metabolize reagents - C.reagents.metabolize(C, can_overdose=TRUE) - - if(damage > 10 && prob(damage/3))//the higher the damage the higher the probability - to_chat(C, "You feel a dull pain in your abdomen.") + if(damage > 10 && prob(damage/3))//the higher the damage the higher the probability + to_chat(owner, "You feel a dull pain in your abdomen.") /obj/item/organ/liver/prepare_eat() var/obj/S = ..() @@ -56,22 +55,22 @@ return if(damage >= high_threshold) var/move_calc = 1+((round(damage) - high_threshold)/(high_threshold/3)) - owner.add_movespeed_modifier(MOVESPEED_ID_CIRRHOSIS, TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = move_calc) + owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/liver_cirrhosis, multiplicative_slowdown = move_calc) sizeMoveMod(move_calc, owner) else - owner.remove_movespeed_modifier(MOVESPEED_ID_CIRRHOSIS) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/liver_cirrhosis) sizeMoveMod(1, owner) /obj/item/organ/liver/Insert(mob/living/carbon/M, special = FALSE, drop_if_replaced = TRUE) . = ..() if(. && damage >= high_threshold) var/move_calc = 1+((round(damage) - high_threshold)/(high_threshold/3)) - M.add_movespeed_modifier(MOVESPEED_ID_CIRRHOSIS, TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = move_calc) + M.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/liver_cirrhosis, multiplicative_slowdown = move_calc) sizeMoveMod(move_calc, owner) /obj/item/organ/liver/Remove(special = FALSE) if(!QDELETED(owner)) - owner.remove_movespeed_modifier(MOVESPEED_ID_CIRRHOSIS) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/liver_cirrhosis) sizeMoveMod(1, owner) return ..() diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index ac2b34b855..b3020ae13f 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -146,7 +146,7 @@ if(safe_oxygen_max) if((O2_pp > safe_oxygen_max) && safe_oxygen_max == 0) //I guess plasma men technically need to have a check. var/ratio = (breath_gases[/datum/gas/oxygen]/safe_oxygen_max) * 10 - H.apply_damage_type(CLAMP(ratio, oxy_breath_dam_min, oxy_breath_dam_max), oxy_damage_type) + H.apply_damage_type(clamp(ratio, oxy_breath_dam_min, oxy_breath_dam_max), oxy_damage_type) H.throw_alert("too_much_oxy", /obj/screen/alert/too_much_oxy) else if((O2_pp > safe_oxygen_max) && !(safe_oxygen_max == 0)) //Why yes, this is like too much CO2 and spahget. Dirty lizards. @@ -188,7 +188,7 @@ if(safe_nitro_max) if(N2_pp > safe_nitro_max) var/ratio = (breath_gases[/datum/gas/nitrogen]/safe_nitro_max) * 10 - H.apply_damage_type(CLAMP(ratio, nitro_breath_dam_min, nitro_breath_dam_max), nitro_damage_type) + H.apply_damage_type(clamp(ratio, nitro_breath_dam_min, nitro_breath_dam_max), nitro_damage_type) H.throw_alert("too_much_nitro", /obj/screen/alert/too_much_nitro) H.losebreath += 2 else @@ -255,7 +255,7 @@ if(safe_toxins_max) if(Toxins_pp > safe_toxins_max) var/ratio = (breath_gases[/datum/gas/plasma]/safe_toxins_max) * 10 - H.apply_damage_type(CLAMP(ratio, tox_breath_dam_min, tox_breath_dam_max), tox_damage_type) + H.apply_damage_type(clamp(ratio, tox_breath_dam_min, tox_breath_dam_max), tox_damage_type) H.throw_alert("too_much_tox", /obj/screen/alert/too_much_tox) else H.clear_alert("too_much_tox") @@ -446,17 +446,17 @@ if(prob(20)) to_chat(H, "You feel [hot_message] in your [name]!") - -/obj/item/organ/lungs/on_life() - ..() - if((!failed) && ((organ_flags & ORGAN_FAILING))) - if(owner.stat == CONSCIOUS) +/obj/item/organ/lungs/applyOrganDamage(d, maximum = maxHealth) + . = ..() + if(!.) + return + if(!failed && organ_flags & ORGAN_FAILING) + if(owner && owner.stat == CONSCIOUS) owner.visible_message("[owner] grabs [owner.p_their()] throat, struggling for breath!", \ "You suddenly feel like you can't breathe!") failed = TRUE else if(!(organ_flags & ORGAN_FAILING)) failed = FALSE - return /obj/item/organ/lungs/prepare_eat() var/obj/S = ..() @@ -547,5 +547,6 @@ color = "#68e83a" /obj/item/organ/lungs/yamerol/on_life() - ..() - damage += 2 //Yamerol lungs are temporary \ No newline at end of file + . = ..() + if(.) + applyOrganDamage(2) //Yamerol lungs are temporary diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index d95901bdbe..761ebc17a2 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -8,7 +8,7 @@ var/zone = BODY_ZONE_CHEST var/slot // DO NOT add slots with matching names to different zones - it will break internal_organs_slot list! - var/organ_flags = 0 + var/organ_flags = NONE var/maxHealth = STANDARD_ORGAN_THRESHOLD var/damage = 0 //total damage this organ has sustained ///Healing factor and decay factor function on % of maxhealth, and do not work by applying a static number per tick @@ -108,7 +108,7 @@ var/datum/gas_mixture/enviro = T.return_air() local_temp = enviro.temperature - else if(istype(loc, /mob/) && !owner) + else if(!owner && ismob(loc)) var/mob/M = loc if(is_type_in_typecache(M.loc, GLOB.freezing_objects)) if(!(organ_flags & ORGAN_FROZEN)) @@ -134,18 +134,17 @@ organ_flags &= ~ORGAN_FROZEN return FALSE -/obj/item/organ/proc/on_life() //repair organ damage if the organ is not failing - if(organ_flags & ORGAN_FAILING) - return - if(is_cold()) - return - ///Damage decrements by a percent of its maxhealth - var/healing_amount = -(maxHealth * healing_factor) - ///Damage decrements again by a percent of its maxhealth, up to a total of 4 extra times depending on the owner's health - healing_amount -= owner.satiety > 0 ? 4 * healing_factor * owner.satiety / MAX_SATIETY : 0 - if(healing_amount) - applyOrganDamage(healing_amount) //to FERMI_TWEAK - //Make it so each threshold is stuck. +/obj/item/organ/proc/on_life() //repair organ damage if the organ is not failing or synthetic + if(organ_flags & ORGAN_FAILING || !owner) + return FALSE + if(!is_cold() && damage) + ///Damage decrements by a percent of its maxhealth + var/healing_amount = -(maxHealth * healing_factor) + ///Damage decrements again by a percent of its maxhealth, up to a total of 4 extra times depending on the owner's satiety + healing_amount -= owner.satiety > 0 ? 4 * healing_factor * owner.satiety / MAX_SATIETY : 0 + if(healing_amount) + applyOrganDamage(healing_amount) //to FERMI_TWEAK + return TRUE /obj/item/organ/examine(mob/user) . = ..() @@ -205,11 +204,9 @@ ///Adjusts an organ's damage by the amount "d", up to a maximum amount, which is by default max damage /obj/item/organ/proc/applyOrganDamage(var/d, var/maximum = maxHealth) //use for damaging effects - if(!d) //Micro-optimization. + if(!d || maximum < damage) //Micro-optimization. return FALSE - if(maximum < damage) - return FALSE - damage = CLAMP(damage + d, 0, maximum) + damage = clamp(damage + d, 0, maximum) var/mess = check_damage_thresholds() prev_damage = damage if(mess && owner) diff --git a/code/modules/surgery/organs/stomach.dm b/code/modules/surgery/organs/stomach.dm index 3b383581cf..d9cbf9be03 100755 --- a/code/modules/surgery/organs/stomach.dm +++ b/code/modules/surgery/organs/stomach.dm @@ -17,33 +17,24 @@ low_threshold_cleared = "The last bouts of pain in your stomach have died out." /obj/item/organ/stomach/on_life() - ..() - var/datum/reagent/consumable/nutriment/Nutri + . = ..() + if(!owner) + return if(ishuman(owner)) var/mob/living/carbon/human/H = owner - if(!(organ_flags & ORGAN_FAILING)) + if(.) H.dna.species.handle_digestion(H) handle_disgust(H) - Nutri = locate(/datum/reagent/consumable/nutriment) in H.reagents.reagent_list - if(Nutri) - if(prob((damage/40) * Nutri.volume * Nutri.volume)) - H.vomit(damage) - to_chat(H, "Your stomach reels in pain as you're incapable of holding down all that food!") - - else if(Nutri && damage > high_threshold) - if(prob((damage/10) * Nutri.volume * Nutri.volume)) - H.vomit(damage) - to_chat(H, "Your stomach reels in pain as you're incapable of holding down all that food!") - - - else if(iscarbon(owner)) - var/mob/living/carbon/C = owner - Nutri = locate(/datum/reagent/consumable/nutriment) in C.reagents.reagent_list - - if(damage < low_threshold) + if(!damage) return - + var/datum/reagent/consumable/nutriment/Nutri = locate(/datum/reagent/consumable/nutriment) in owner.reagents.reagent_list + if(!Nutri) + return + var/prob_divisor = damage > high_threshold ? 10 : 40 + if(prob((damage/prob_divisor) * (Nutri.volume**2))) + owner.vomit(damage) + to_chat(owner, "Your stomach reels in pain as you're incapable of holding down all that food!") /obj/item/organ/stomach/proc/handle_disgust(mob/living/carbon/human/H) if(H.disgust) diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm index bcc764d00a..f8547dda6e 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -64,8 +64,8 @@ owner.RegisterSignal(owner, COMSIG_MOB_SAY, /mob/living/carbon/.proc/handle_tongueless_speech) return ..() -/obj/item/organ/tongue/could_speak_in_language(datum/language/dt) - return is_type_in_typecache(dt, languages_possible) +/obj/item/organ/tongue/could_speak_language(language) + return is_type_in_typecache(language, languages_possible) /obj/item/organ/tongue/lizard name = "forked tongue" @@ -141,7 +141,7 @@ /obj/item/organ/tongue/abductor/handle_speech(datum/source, list/speech_args) //Hacks var/message = speech_args[SPEECH_MESSAGE] - var/mob/living/carbon/human/user = usr + var/mob/living/carbon/human/user = source var/rendered = "[user.name]: [message]" user.log_talk(message, LOG_SAY, tag="abductor") for(var/mob/living/carbon/human/H in GLOB.alive_mob_list) @@ -260,7 +260,7 @@ maxHealth = 100 //RoboTongue! var/electronics_magic = TRUE -/obj/item/organ/tongue/robot/can_speak_in_language(datum/language/dt) +/obj/item/organ/tongue/robot/could_speak_language(language) return ..() || electronics_magic /obj/item/organ/tongue/robot/handle_speech(datum/source, list/speech_args) diff --git a/code/modules/surgery/surgery_step.dm b/code/modules/surgery/surgery_step.dm index 1857f8db48..f574b0aea3 100644 --- a/code/modules/surgery/surgery_step.dm +++ b/code/modules/surgery/surgery_step.dm @@ -58,6 +58,8 @@ return FALSE if(tool) speed_mod = tool.toolspeed + if(user.mind) + speed_mod = user.mind.skill_holder.action_skills_mod(/datum/skill/numerical/surgery, speed_mod, THRESHOLD_COMPETENT, FALSE) if(do_after(user, time * speed_mod, target = target)) var/prob_chance = 100 if(implement_type) //this means it isn't a require hand or any item step. @@ -66,6 +68,7 @@ if((prob(prob_chance) || (iscyborg(user) && !silicons_obey_prob)) && chem_check(target) && !try_to_fail) if(success(user, target, target_zone, tool, surgery)) + user.mind?.skill_holder.auto_gain_experience(/datum/skill/numerical/surgery, SKILL_GAIN_SURGERY_PER_STEP) advance = TRUE else if(failure(user, target, target_zone, tool, surgery)) diff --git a/code/modules/uplink/uplink_items/uplink_bundles.dm b/code/modules/uplink/uplink_items/uplink_bundles.dm index f3e95fa61c..478be5960e 100644 --- a/code/modules/uplink/uplink_items/uplink_bundles.dm +++ b/code/modules/uplink/uplink_items/uplink_bundles.dm @@ -41,6 +41,16 @@ player_minimum = 30 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/bundles_TC/northstar_bundle + name = "Northstar Bundle" + desc = "An item usually reserved for the Gorlex Marauders and their operatives, now available for recreational use. \ + These armbands let the user punch people very fast and with the lethality of a legendary martial artist. \ + Does not improve weapon attack speed or the meaty fists of a hulk, but you will be unmatched in martial power. \ + Combines with all martial arts, but the user will be unable to bring themselves to use guns, nor remove the armbands." + item = /obj/item/storage/box/syndie_kit/northstar + cost = 20 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + /datum/uplink_item/suits/infiltrator_bundle name = "Insidious Infiltration Gear Case" desc = "Developed by Roseus Galactic in conjunction with the Gorlex Marauders to produce a functional suit for urban operations, \ diff --git a/code/modules/uplink/uplink_items/uplink_clothing.dm b/code/modules/uplink/uplink_items/uplink_clothing.dm index d6336bd982..014e0452b5 100644 --- a/code/modules/uplink/uplink_items/uplink_clothing.dm +++ b/code/modules/uplink/uplink_items/uplink_clothing.dm @@ -89,4 +89,11 @@ name = "Wall Walking Boots" desc = "Through bluespace magic stolen from an organisation that hoards technology, these boots simply allow you to slip through the atoms that make up anything, but only while walking, for safety reasons. As well as this, they unfortunately cause minor breath loss as the majority of atoms in your lungs are sucked out into any solid object you walk through." item = /obj/item/clothing/shoes/wallwalkers - cost = 6 \ No newline at end of file + cost = 6 + +/datum/uplink_item/device_tools/guerillagloves + name = "Guerilla Gloves" + desc = "A pair of highly robust combat gripper gloves that excels at performing takedowns at close range, with an added lining of insulation. Careful not to hit a wall!" + item = /obj/item/clothing/gloves/tackler/combat/insulated + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + cost = 2 diff --git a/code/modules/uplink/uplink_items/uplink_devices.dm b/code/modules/uplink/uplink_items/uplink_devices.dm index 194281ded6..c5d95fdc4f 100644 --- a/code/modules/uplink/uplink_items/uplink_devices.dm +++ b/code/modules/uplink/uplink_items/uplink_devices.dm @@ -188,13 +188,22 @@ item = /obj/item/healthanalyzer/rad_laser cost = 3 +/datum/uplink_item/device_tools/riflery_primer + name = "Riflery Primer" + desc = "An old book with blood and vodka stains on it. Freshly pulled from a dusty crate in some old warehouse, \ + this primer of questionable worth and value is rumored to increase your rifle-bolt-working and/or shotgun \ + racking fivefold. Then again, the techniques here only work on bolt-actions and pump-actions..." + item = /obj/item/book/granter/trait/rifleman + cost = 3 + restricted_roles = list("Operative") // i want it to be surplusable but i also want it to be mostly nukie only, please advise + surplus = 90 + /datum/uplink_item/device_tools/stimpack name = "Stimpack" desc = "Stimpacks, the tool of many great heroes, make you nearly immune to stuns and knockdowns for about \ - 5 minutes after fully injecting yourself. Can inject yourself, or others, 5 times and through hardsuits. \ - Each injection will gives around a minute of stimulants." - item = /obj/item/reagent_containers/hypospray/medipen/stimulants - cost = 5 + 5 minutes after injection." + item = /obj/item/reagent_containers/syringe/stimulants + cost = 3 surplus = 90 /datum/uplink_item/device_tools/medkit diff --git a/code/modules/uplink/uplink_items/uplink_roles.dm b/code/modules/uplink/uplink_items/uplink_roles.dm index 28479f8da7..da25cf5298 100644 --- a/code/modules/uplink/uplink_items/uplink_roles.dm +++ b/code/modules/uplink/uplink_items/uplink_roles.dm @@ -89,6 +89,7 @@ desc = "A reverse engineered clockwork slab. Is this really a good idea?." item = /obj/item/clockwork/slab/traitor cost = 20 + player_minimum = 20 refundable = TRUE restricted_roles = list("Chaplain") @@ -97,6 +98,7 @@ desc = "A replica of a Nar'sian tome. This is probably a bad idea.." item = /obj/item/tome/traitor cost = 20 + player_minimum = 20 refundable = TRUE restricted_roles = list("Chaplain") diff --git a/code/modules/vehicles/secway.dm b/code/modules/vehicles/secway.dm index 868610a149..8ad8b5f1ee 100644 --- a/code/modules/vehicles/secway.dm +++ b/code/modules/vehicles/secway.dm @@ -22,7 +22,7 @@ /obj/vehicle/ridden/secway/process() var/diff = world.time - last_tick var/regen = chargerate * diff - charge = CLAMP(charge + regen, 0, chargemax) + charge = clamp(charge + regen, 0, chargemax) last_tick = world.time /obj/vehicle/ridden/secway/relaymove(mob/user, direction) diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 83151423e5..13a2f2e9a0 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -120,6 +120,8 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C var/scan_id = TRUE ///Coins that we accept? var/obj/item/coin/coin + ///Bills that we accept? + var/obj/item/stack/spacecash/bill ///Default price of items if not overridden /** * Is this item on station or not @@ -182,6 +184,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C /obj/machinery/vending/Destroy() QDEL_NULL(wires) QDEL_NULL(coin) + QDEL_NULL(bill) return ..() /obj/machinery/vending/can_speak() @@ -376,6 +379,9 @@ GLOBAL_LIST_EMPTY(vending_products) if(coin) to_chat(user, "[src] already has [coin] inserted") return + if(bill) + to_chat(user, "[src] already has [bill] inserted") + return if(!premium.len) to_chat(user, "[src] doesn't have a coin slot.") return @@ -384,6 +390,23 @@ GLOBAL_LIST_EMPTY(vending_products) coin = I to_chat(user, "You insert [I] into [src].") return + else if(istype(I, /obj/item/stack/spacecash)) + if(coin) + to_chat(user, "[src] already has [coin] inserted") + return + if(bill) + to_chat(user, "[src] already has [bill] inserted") + return + if(!premium.len) + to_chat(user, "[src] doesn't have a bill slot.") + return + if(!user.transferItemToLoc(I, src)) + return + var/obj/item/stack/S = I + S.use(1) + bill = new S.type(src, 1) + to_chat(user, "You insert [I] into [src].") + return else if(refill_canister && istype(I, refill_canister)) if (!panel_open) to_chat(user, "You should probably unscrew the service panel first!") @@ -439,7 +462,7 @@ GLOBAL_LIST_EMPTY(vending_products) vending_machine_input[format_text(I.name)] = 1 to_chat(user, "You insert [I] into [src]'s input compartment.") loaded_items++ - + /** * Is the passed in user allowed to load this vending machines compartments * @@ -557,6 +580,7 @@ GLOBAL_LIST_EMPTY(vending_products) .["stock"][R.name] = R.amount .["extended_inventory"] = extended_inventory .["coin"] = coin + .["bill"] = bill /obj/machinery/vending/ui_act(action, params) . = ..() @@ -579,39 +603,37 @@ GLOBAL_LIST_EMPTY(vending_products) if(!R || !istype(R) || !R.product_path) vend_ready = TRUE return + if(R.amount <= 0) + to_chat(usr, "Sold out.") + vend_ready = TRUE + return if(R in hidden_records) if(!extended_inventory) vend_ready = TRUE return else if(R in coin_records) - if(!(coin)) - to_chat(usr, "You need to a coin to get this item!") + if(!(coin || bill)) + to_chat(usr, "You need to insert a coin to get this item!") vend_ready = TRUE return if(coin && coin.string_attached) - if(!prob(50)) - to_chat(usr, "You weren't able to pull [coin] out fast enough, the machine ate it, string and all!") - QDEL_NULL(coin) - return - if(!usr.CanReach(src)) - to_chat(usr, "You successfully pull [coin] out of [src] to the floor.") - coin = null - if(!usr.put_in_hands(coin)) + if(prob(50)) + if(usr.put_in_hands(coin)) + to_chat(usr, "You successfully pull [coin] out before [src] could swallow it.") + coin = null + else to_chat(usr, "You couldn't pull [coin] out because your hands are full!") QDEL_NULL(coin) - to_chat(usr, "You successfully pull [coin] out before [src] could swallow it.") - coin = null - QDEL_NULL(coin) + else + to_chat(usr, "You weren't able to pull [coin] out fast enough, the machine ate it, string and all!") + QDEL_NULL(coin) + else + QDEL_NULL(coin) + QDEL_NULL(bill) else if(!(R in product_records)) vend_ready = TRUE message_admins("Vending machine exploit attempted by [ADMIN_LOOKUPFLW(usr)]!") return - if(R.amount <= 0) - to_chat(usr, "Sold out.") - vend_ready = TRUE - return - else - R.amount-- if(((last_reply + 200) <= world.time) && vend_reply) speak(vend_reply) last_reply = world.time @@ -623,8 +645,7 @@ GLOBAL_LIST_EMPTY(vending_products) to_chat(usr, "You take [R.name] out of the slot.") else to_chat(usr, "[capitalize(R.name)] falls onto the floor!") - - + R.amount-- SSblackbox.record_feedback("nested tally", "vending_machine_usage", 1, list("[type]", "[R.product_path]")) vend_ready = TRUE return @@ -633,11 +654,16 @@ GLOBAL_LIST_EMPTY(vending_products) to_chat(usr, "You remove [coin] from [src].") coin = null return - + if("takeoutbill") + usr.put_in_hands(bill) + to_chat(usr, "You remove [bill] from [src].") + bill = null + return + if("togglevoice") if(panel_open) shut_up = !shut_up - + /obj/machinery/vending/process() if(stat & (BROKEN|NOPOWER)) return PROCESS_KILL diff --git a/code/modules/vending/drinnerware.dm b/code/modules/vending/dinnerware.dm similarity index 95% rename from code/modules/vending/drinnerware.dm rename to code/modules/vending/dinnerware.dm index 8f257d07ec..da8baa7e1c 100644 --- a/code/modules/vending/drinnerware.dm +++ b/code/modules/vending/dinnerware.dm @@ -20,7 +20,7 @@ /obj/item/reagent_containers/food/condiment/saltshaker = 5, /obj/item/reagent_containers/food/condiment/peppermill = 5) contraband = list( - /obj/item/reagent_containers/food/snacks/monkeycube = 1, + /obj/item/reagent_containers/food/snacks/cube/monkey= 1, /obj/item/kitchen/knife/butcher = 2, /obj/item/reagent_containers/syringe = 3) premium = list( diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm index 09681def64..b1a6297981 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -21,6 +21,7 @@ /obj/item/clothing/head/helmet/blueshirt = 1, /obj/item/clothing/suit/armor/vest/blueshirt = 1, /obj/item/clothing/under/rank/security/officer/blueshirt = 1, + /obj/item/clothing/gloves/tackler = 5, /obj/item/ssword_kit = 1) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF diff --git a/config/awaymissionconfig.txt b/config/awaymissionconfig.txt index 545394f3e9..c6a5d9ef8f 100644 --- a/config/awaymissionconfig.txt +++ b/config/awaymissionconfig.txt @@ -7,16 +7,16 @@ #Do NOT tick the maps during compile -- the game uses this list to decide which map to load. Ticking the maps will result in them ALL being loaded at once. #DO tick the associated code file for the away mission you are enabling. Otherwise, the map will be trying to reference objects which do not exist, which will cause runtime errors! -#_maps/RandomZLevels/blackmarketpackers.dmm -#_maps/RandomZLevels/spacebattle.dmm -#_maps/RandomZLevels/TheBeach.dmm -#_maps/RandomZLevels/Academy.dmm -#_maps/RandomZLevels/wildwest.dmm -#_maps/RandomZLevels/challenge.dmm -#_maps/RandomZLevels/centcomAway.dmm -#_maps/RandomZLevels/moonoutpost19.dmm -#_maps/RandomZLevels/undergroundoutpost45.dmm -#_maps/RandomZLevels/caves.dmm -#_maps/RandomZLevels/snowdin.dmm -#_maps/RandomZLevels/research.dmm -#_maps/RandomZLevels/Cabin.dmm +#_maps/RandomZLevels/away_mission/blackmarketpackers.dmm +#_maps/RandomZLevels/away_mission/spacebattle.dmm +#_maps/RandomZLevels/away_mission/TheBeach.dmm +#_maps/RandomZLevels/away_mission/Academy.dmm +#_maps/RandomZLevels/away_mission/wildwest.dmm +#_maps/RandomZLevels/away_mission/challenge.dmm +#_maps/RandomZLevels/away_mission/centcomAway.dmm +#_maps/RandomZLevels/away_mission/moonoutpost19.dmm +#_maps/RandomZLevels/away_mission/undergroundoutpost45.dmm +#_maps/RandomZLevels/away_mission/caves.dmm +#_maps/RandomZLevels/away_mission/snowdin.dmm +#_maps/RandomZLevels/away_mission/research.dmm +#_maps/RandomZLevels/away_mission/Cabin.dmm diff --git a/config/game_options.txt b/config/game_options.txt index e1294f688a..d81653b840 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -139,6 +139,20 @@ MIDROUND_ANTAG CHANGELING MIDROUND_ANTAG WIZARD #MIDROUND_ANTAG MONKEY +## Toggles for whether this mode should force antags even if not enough players have it enabled. +## If it's off, it just won't roll as many antags. +#FORCE_ANTAG_COUNT TRAITOR +#FORCE_ANTAG_COUNT TRAITORBRO +#FORCE_ANTAG_COUNT TRAITORCHAN +#FORCE_ANTAG_COUNT INTERNAL_AFFAIRS +FORCE_ANTAG_COUNT NUCLEAR +FORCE_ANTAG_COUNT REVOLUTION +FORCE_ANTAG_COUNT CULT +FORCE_ANTAG_COUNT CLOCKWORK_CULT +#FORCE_ANTAG_COUNT CHANGELING +#FORCE_ANTAG_COUNT WIZARD +#FORCE_ANTAG_COUNT MONKEY + ## Uncomment these for overrides of the minimum / maximum number of players in a round type. ## If you set any of these occasionally check to see if you still need them as the modes ## will still be actively rebalanced around the SUGGESTED populations, not your overrides. @@ -288,6 +302,9 @@ MINIMUM_SECBORG_ALERT 3 ## Uncomment to load one of the missions from awaymissionconfig.txt at roundstart. #ROUNDSTART_AWAY +## Uncomment to load one of the virtual reality levels from vr_config at roundstart. +#ROUNDSTART_VR + ## How long the delay is before the Away Mission gate opens. Default is half an hour. ## 600 is one minute. GATEWAY_DELAY 18000 @@ -529,7 +546,10 @@ BOMBCAP 20 ## of ruins. LAVALAND_BUDGET 60 -## Space Ruin Budged +## Ice Moon Budget +ICEMOON_BUDGET 90 + +## Space Ruin Budget Space_Budget 16 ## Station Ruin Budget diff --git a/config/iceruinblacklist.txt b/config/iceruinblacklist.txt new file mode 100644 index 0000000000..3cecffa4fe --- /dev/null +++ b/config/iceruinblacklist.txt @@ -0,0 +1,23 @@ +#Listing maps here will blacklist them from generating in the ice moon. +#Maps must be the full path to them +#A list of maps valid to blacklist can be found in _maps\RandomRuins\IceRuins +#SPECIFYING AN INVALID MAP WILL RESULT IN RUNTIMES ON GAME START + +##RESPAWN +#_maps/RandomRuins/AnywhereRuins/golem_ship.dmm + +##MISC +#_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm +#_maps/RandomRuins/IceRuins/icemoon_surface_lust.dmm +#_maps/RandomRuins/IceRuins/icemoon_surface_asteroid.dmm +#_maps/RandomRuins/IceRuins/icemoon_surface_hotsprings.dmm +#_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm +#_maps/RandomRuins/IceRuins/icemoon_underground_puzzle.dmm +#_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm +#_maps/RandomRuins/IceRuins/icemoon_underground_mining_site.dmm +#_maps/RandomRuins/IceRuins/icemoon_underground_library.dmm +#_maps/RandomRuins/IceRuins/icemoon_underground_wrath.dmm +#_maps/RandomRuins/IceRuins/icemoon_underground_lavaland.dmm +#_maps/RandomRuins/IceRuins/icemoon_underground_bathhouse.dmm +#_maps/RandomRuins/IceRuins/icemoon_underground_wendigo_cave.dmm +#_maps/RandomRuins/AnywhereRuins/fountain_hall.dmm \ No newline at end of file diff --git a/config/lavaRuinBlacklist.txt b/config/lavaRuinBlacklist.txt index 1d9804e0b2..6d2d2633ce 100644 --- a/config/lavaRuinBlacklist.txt +++ b/config/lavaRuinBlacklist.txt @@ -13,7 +13,7 @@ #_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm #_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm #_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm +#_maps/RandomRuins/AnywhereRuins/golem_ship.dmm ##SIN #_maps/RandomRuins/LavaRuins/lavaland_surface_envy.dmm @@ -33,8 +33,9 @@ #_maps/RandomRuins/LavaRuins/lavaland_surface_wwiioutpost.dmm #_maps/RandomRuins/LavaRuins/lavaland_surface_tomb.dmm #_maps/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_fountain_hall.dmm #_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm #_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm #_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm #_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm +#_maps/RandomRuins/LavaRuins/lavaland_surface_library.dmm +#_maps/RandomRuins/AnywhereRuins/fountain_hall.dmm \ No newline at end of file diff --git a/config/maps.txt b/config/maps.txt index 4bd2b1ce8a..e9902d3107 100644 --- a/config/maps.txt +++ b/config/maps.txt @@ -36,6 +36,10 @@ map deltastation minplayers 50 endmap +map icebox + minplayers 25 +endmap + map runtimestation endmap diff --git a/config/vr_config.txt b/config/vr_config.txt new file mode 100644 index 0000000000..0c6354f8fe --- /dev/null +++ b/config/vr_config.txt @@ -0,0 +1,13 @@ +#List the potential virtual reality Z-levels here. awaymissionconfig copypasta follows. + +#Maps must be the full path to them +#Maps should be 255x255 or smaller and be bounded. Falling off the edge of the map will result in undefined behavior. +#SPECIFYING AN INVALID MAP WILL RESULT IN RUNTIMES ON GAME START + +#!!IMPORTANT NOTES FOR HOSTING VR MAPS!!: +#Do NOT tick the maps during compile -- the game uses this list to decide which map to load. Ticking the maps will result in them ALL being loaded at once. +#DO tick the associated code file for the virtual reality levels you are enabling. Otherwise, the map will be trying to reference objects which do not exist, which will cause runtime errors! + +#_maps/RandomZLevels/VR/murderdome.dmm +#_maps/RandomZLevels/VR/snowdin_VR.dmm +#_maps/RandomZLevels/VR/syndicate_trainer.dmm \ No newline at end of file diff --git a/html/changelog.html b/html/changelog.html index b02b2d74a5..3d05d75736 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -833,555 +833,6 @@
  • box brig miscellaneous issues
  • box station hos office
  • - -

    26 February 2020

    -

    AnturK ported by kevinz000 updated:

    -
      -
    • Dueling pistols have been added.
    • -
    -

    Arturlang updated:

    -
      -
    • Replaces a lot of ingame UIs with TGUI next, increasing performance drastically.
    • -
    • Each night for bloodsuckers will last longer due to the sun dimming.
    • -
    • You cant level up for free, now you have to pay blood for power.
    • -
    • Bloodsuckers are no longer as resistant to hard stuns and regenerate less stamina. and a lot of their cooldowns are a lot higher.
    • -
    • Removed text macros from the chem dispenser.
    • -
    • Replaced with dispenser input recording macros.
    • -
    • Fancifying makeshift switchblades now works
    • -
    • Shields will no longer block lasers, and will break if they take too much damage.
    • -
    • Added a TGUI Next interface for crafting
    • -
    • Removed the old TGUI slow crafting interface
    • -
    • The MK2 hypospray now
    • -
    • The debug outfit is now kitted out for whatever debbuging needs.
    • -
    • Fixed the pandemic naming and the radiation healing symptom UI crashing
    • -
    • Hyposprays now switch modes on CTRL click, instead of alt, as it was already reserved for dispension amount.
    • -
    • Nanite interfaces have gotten a rework to TGUI Next, and can now support sub-programs. add:Adds the nanite sting program, which will allow you to manually sting people to give them nanites, changeling style.
    • -
    • The pandemic can no longer make vaccines or synthblood as quickly.
    • -
    • The syndicate uplinks interface has been redone in TGUI Next
    • -
    • Valentines can now be converted by bloodsuckers
    • -
    -

    Bhijn updated:

    -
      -
    • Click-dragging will now only perform the quick item usage behavior if you're in combat mode.
    • -
    -

    BlueWildrose updated:

    -
      -
    • podpeople tail wagging
    • -
    • lifebringer ghost role fixes
    • -
    -

    BuffEngineering, nemvar. updated:

    -
      -
    • Addicts can now feel like they're getting their fix or kicking it.
    • -
    • Aheals now remove addictions and restore your mood to default.
    • -
    -

    CameronWoof updated:

    -
      -
    • Lighting looks better now. I can say that because the PR wouldn't be merged and you wouldn't be reading this if it wasn't true.
    • -
    • Ammonia and saltpetre can now be made at the biogenerator.
    • -
    -

    Commandersand updated:

    -
      -
    • uplink centcomm suit doesn't have sensors
    • -
    -

    DeltaFire15 updated:

    -
      -
    • Nar'Sie runes no longer benefit from runed floors.
    • -
    -

    Detective-Google updated:

    -
      -
    • the POOL. remove: boxstation dorms 7
    • -
    • valentines candy no longer prefbreaks
    • -
    • Loudness Booster pAI program
    • -
    • Encryption Key pAI program
    • -
    -

    EmeraldSundisk updated:

    -
      -
    • Connects mining's disposal unit on Delta.
    • -
    • Slight visual adjustments to the immediate affected area.
    • -
    -

    Feasel updated:

    -
      -
    • Buffed dissection success chances.
    • -
    -

    Ghommie updated:

    -
      -
    • The anomalous honking crystal should now properly clown your mind.
    • -
    • Stopped the ellipsis question mark from being displayed twice in the examine message for masked/unknown human mobs.
    • -
    • Made the aforementioned ellipsis question mark display on flavor-text-less masked/unknown human mobs too for consistency.
    • -
    • Stopped an APTFT exploit with spray bottles.
    • -
    • Fixed the detective revolver being quite risky to use.
    • -
    • Hair styles and undergarments are yet again free from gender restrictions.
    • -
    • Clown ops will find bombananas and clown bomb beacons instead of minibombs and bomb beacons in their infiltrator ship now.
    • -
    • For safety, the syndicate shuttle minibombs and bombananas come shipped in a box. Please don't instinctively eat any of those nanas, thank you.
    • -
    • Uplink items excluded (such as mulligan, chameleon, ebow) from or exclusive (such as cyber implants) to normal nuke ops will now be properly unavailable/available to clown ops.
    • -
    • Fixed bananium energy sword/shield slips.
    • -
    • Buffed said slips to ignore no-grav/crawling/flying as well as adding some deadly force to the e-sword.
    • -
    • Fixed the 'stache grenade anti-non-clumsy user check.
    • -
    • Doubled the timer for the sticky mustaches effect from the above grenade (from 1 to 2 minutes)
    • -
    • Fixed an edge case with the chaplain armaments beacon spawning the box in nullspace.
    • -
    • The playback device's cooldown now proportionally increases with messages longer than 60 characters (3 seconds is the default assembly cooldown).
    • -
    • Fixed space ninjas "Nothing" objective. Now you gotta steal some dandy stuff such as corgi meat and pinpointers as a ninja too.
    • -
    • Fixed maploaded APC terminals direction.
    • -
    • Nerfed magnetic rifles/pistols by re(?)adding power cell requirements for it. These firearms must be recharged after firing 2 magazines worth of projectiles and are slightly more susceptible to EMPs.
    • -
    • Fixed the tearstache nade not properly working.
    • -
    • Buffed it against space helmet internals.
    • -
    • Holographic fans won't display above mobs and other objects anymore.
    • -
    • Fixed paraplegics appearing as shoeless.
    • -
    • Fixed the petting element.
    • -
    • Fixed slipping.
    • -
    • Refactored mob holders into an element.
    • -
    • Fixed a few minor issues with that feature. such as mismatching sprites for certain held mobs and a slight lack of safety checks.
    • -
    • holdable mobs can't force themselves into people's hands anymore.
    • -
    • Milkies fix.
    • -
    • Fixed some mounted defibrillator issue with the altclicking functionality.
    • -
    • Fixed no-grav lavaland labor/mining shuttle areas.
    • -
    • Fixed a little issue with sleeper UI and blood types.
    • -
    • Fixing accidental nerfs to the magpistol magazine.
    • -
    • The Lavaland's Herald speech sound should only play if they are actually speaking.
    • -
    • Nerfed cargo passive points generation from 500 to 125 creds per minute.
    • -
    • Fixed whitelisted/donor loadouts
    • -
    • Childproofs double-esword and hypereuplastic blade toys.
    • -
    • Some reagent holders (such as cigarettes, food) are not suitable for reagents export anymore, while unprocessed botany crops will only net 1/3 of the standard reagents values.
    • -
    • Export scanners now include the reagents value in the price report.
    • -
    • Fixed a little inconvenience with the character setup preview dummy having extra unwarranted bits.
    • -
    • Stopped role restricted uplink items from being discounted despite not being purchasable most times.
    • -
    • Missing words replacement file for the gondola mask.
    • -
    • Fixed an issue with the nearsighted prescription glasses taking over worn eyewear.
    • -
    • Fixed AI unanchoring not properly removing the no teleport trait. My bad.
    • -
    • Fixed another issue with hering comsig.
    • -
    • Fixed dozen missing privates sprites.
    • -
    • A little fix concerning some R&D and reagents.
    • -
    • Further mob holder fixes.
    • -
    • Fixed being unable to dump a trash bag's contents directly into disposal bins.
    • -
    • Doubled the halved flavor text maximum length.
    • -
    • Reduced tongue organ damage and tasting pH message spam.
    • -
    • Fixed agent IDs not registering the inputted name. Thanks MrPerson.
    • -
    • Fixed solar panels/trackers (de)construction being a bit wonky.
    • -
    • Fixed something about slime blood and the law of conservation of mass.
    • -
    • Fixed flypeople being emetic machine guns.
    • -
    • Fixed virology being unable to be done with synthetic blood.
    • -
    • Renamed "blaster carbine" and "blaster rifles" back to "energy gun" and "laser gun" respectively
    • -
    • Fixed magnetic rifles & co being inconsistent with printed energy guns and start with an empty power cell.
    • -
    • Reverted practice laser gun sprites back to their former glory. Mostly.
    • -
    • Fixed sprint buffer cost and regen being rounded down.
    • -
    • Nerfed the fermenting barrel export industry.
    • -
    • Reagent dispensers selling price no longer takes in account the reagents volume. It's already handled by reagents export.
    • -
    • pAIs are yet again unable to perform certain silicon interactions with machineries yet again.
    • -
    • Fixed pAI radios inability to be toggled on/off.
    • -
    -

    Ghommie (original PRs by Floyd/Qustinnus, 4Dplanner, Willox, ninjanomnom, mrdoombringer, Fikou, Fox McCloud, TheChosenEvilOne, nemvar, bobbahbrown, Time-Green, Stonebaykyle, MrPerson, ArcaneMusic and zxaber) updated:

    -
      -
    • You can now make toolboxes out of almost any solid material in an autolathe
    • -
    • adds Knight's Armour made out of any materials
    • -
    • new ruin found in lavaland protected by dark wizards, I wonder what they're guarding
    • -
    • You can now put a bunch more mats in the coin mint and autolathe
    • -
    • Adamantine and Mythril are now materials (Adamantine still only from xenobio, Mythril still only from badminnery). Adamantine boosts an item's force by 1.5, Mythril gives an item RPG statistics.
    • -
    • most custom sprites for coins have been lost
    • -
    • You can now give your ass acute radiation poisoning
    • -
    • floydmats now apply to all objs / items
    • -
    • you can now make tables and chairs out of any material
    • -
    • Fixes being able to exploit fully upgraded destructive analyzers to multiply materials
    • -
    • An old monastery from a previously abandoned sector of space has recently resurfaced in some regions surrounding the station.
    • -
    • Latent scans of the surrounding systems have picked up trace signs of new, smaller cult constructs, however these signatures quickly vanished.
    • -
    • In other news, scavengers in your sector have been seen occasionally with classically recreated maces, so autolathe firmware has been upgraded to accommodate this.
    • -
    -

    Hatterhat updated:

    -
      -
    • Zombie powder is now instant when ingested, but delayed when injected or applied through touch.
    • -
    • The H.E.C.K. suit is now goliath tentacle resistant and probably better for acid resistance.
    • -
    • The Engineering techfab can now print standard and large RCD compressed matter cartridges.
    • -
    • The Experimental Tools node now has the Combifan projector, blocking both temperature and atmospheric changes.
    • -
    • fiddles with the seed extractor upgrade examine to make it not shit
    • -
    • Formaldehyde prevents organ decay and corpses' miasma production at 1u in the body.
    • -
    • Epinephrine pens now contain 3u formaldehyde. This should not kill you.
    • -
    • The ships often crashed by Free Golems on Lavaland now have GPSes. They're off, by default, but an awakening Golem could easily turn one on.
    • -
    • Standard RCD ammo can now be printed from Engineering-keyed techfabs once you hit Industrial Engineering.
    • -
    • Consoleless interfaces are now default - this means unrestricted protolathes and circuit imprinters can now be interfaced with by interacting with the machine itself.
    • -
    • Multitools can now actually be printed from Engineering and Science protolathes/techfabs once you unlock Basic Tools.
    • -
    • Husking (from being burned to shit) can now be reverted! 5u rezadone or 100u synthflesh, at below 50 burn.
    • -
    • Turning a body into a burnt husk now takes more effort. 300 burn's worth of effort.
    • -
    • Buckshot individual pellet damage up from 10 to 12.5. Still firing 6 pellets.
    • -
    • Preservahyde! Made with water, bromine, and formaldehyde, it doesn't decay into histamine. Instead, it just prevents your organs from rotting into nothing.
    • -
    • You can now purify eldritch longswords with a bible. This creates purified longswords, which do not have anti-magic properties, but are still good for swinging at cultists.
    • -
    • Extend votes! Ported from Hyper, ported from AUstation.
    • -
    • mechs with stock parts now have icons
    • -
    • Pie reagent transfer now requires an uncovered mouth.
    • -
    • Biogenerators can now actually generate universal enzyme.
    • -
    • The Basic Tools node now unlocks the multitool for printing on Engineering and Science fabricators.
    • -
    • The Ash Walkers' nest on Lavaland now starts with three bowyery slabs.
    • -
    • You can now welder-harden arrows. It might take longer.
    • -
    • Silkstring's costs adjusted for bows and whatnot.
    • -
    • Grammar adjusted on a lot of things relating to bows.
    • -
    • Pipe bows' bowstring doesn't look like it replicated itself upon draw.
    • -
    -

    IHOPMommyLich updated:

    -
      -
    • Changed the multiplicative_slowdown of Stimulants from -1 to -0.5
    • -
    -

    IronEleven updated:

    -
      -
    • Minor stat changes to Choking, Spontaneous Combustion, Autophagocytosis Necrosis, Hallucigen, Narcolepsy, Shivering, and Vomiting symptoms.
    • -
    -

    KathrinBailey updated:

    -
      -
    • Missing turf_decals in Cargo Office.
    • -
    • Turns on the docking beacons on Box.
    • -
    • Fixes Starboard Quarter maint room being spaced. It was never intended to be like how it was.
    • -
    • The aforementioned maint room not having stuff in it.
    • -
    • varedited photocopier sometimes not opening any UI.
    • -
    • Atmos differences in Starboard Quarter maint.
    • -
    • Atmos differences in destroyed shuttle/EVA bridge. Plating replaced with airless plating.
    • -
    • Rotates AI satellite computers. These have probably been like this since computers had the old sprites and no directional ones. You shouldn't sit at a chair to operate a sideways computer.
    • -
    -

    KrabSpider updated:

    -
      -
    • The Van Dyke is no longer Fu Manchu.
    • -
    • Gets rid of a Fu Manchu imitation.
    • -
    -

    Kraseo updated:

    -
      -
    • You can no longer pull before wearing boxing gloves to bypass the grab check.
    • -
    • Nightmares no longer delete entire guns from existence for merely having a light on them.
    • -
    -

    Linzolle updated:

    -
      -
    • Bows now will not delete an arrow if it cant fire it.
    • -
    • bows now like and respect sprite changes
    • -
    -

    MalricB updated:

    -
      -
    • "Shaggy" sprite from virgo
    • -
    • "shaggy" option in the character customization
    • -
    -

    MrJWhit updated:

    -
      -
    • Removed meteor defense tech node
    • -
    • TEG
    • -
    -

    Naksu updated:

    -
      -
    • Odysseus chem synthesizing now works again.
    • -
    -

    Owai-Seek updated:

    -
      -
    • Burger, Cargo Packaging, Dirty Magazine, Air Pump, and Scrubber crates.
    • -
    • Duplicate Crate, Festive Wrapping Paper Crate, Contraband Monkey Meat Crate
    • -
    • Gave Seed Crate Ambrosia Seed, gave Biker Gang Crate Spraypaint.
    • -
    • Organised some crates with sub-categories. Also, moved all vendor refills to a new tab.
    • -
    • Moved Grill to Service Tab
    • -
    • Engineering Hardsuit Access
    • -
    • Blood Crate now has all of the current blood types.
    • -
    • Birthday Cake Recipe is now the same as TG.
    • -
    • Added Soy Sauce and BBQ Packets to Dinnerware Vendor.
    • -
    • Added nurse outfit, nurse cap, and mailman hat to loadout.
    • -
    • Changed the name of scrubs to blue, green, and purple scrubs.
    • -
    • Bacon and Eggs food item. Delicious! Added a Lemony Poppy Seed Muffin.
    • -
    • Snack Vendor has Chocolates, Tortilla Chips, and a Marshmallow Box
    • -
    • Mops can now be printed at service lathe once tools are researched.
    • -
    • Biobags can hold most organic limbs/organs, but not brains, implants, or cybernetics.
    • -
    • Trash Bag can now hold limbs (but not heads.)
    • -
    • Most snack vendor items reduced by 1.
    • -
    • Trash Cans are now actually craftable, and only require metal instead of plastic.
    • -
    • Bacon and Eggs, Drying Agent Bottle.
    • -
    • Mugs now show reagent colors of contained reagents. Thanks Seris!
    • -
    • Reorganized all food recipes, (hopefully) making things easier to find.
    • -
    • Trays now have a whitelist, allowing them to pick up normal sized foods, bowls, glassware, booze, ect.
    • -
    • Easter foods are no longer their own Misc Food Category on the top of the menu.
    • -
    • fixed a few typos/capitalization consistency.
    • -
    • Mexican Foods are their own Subcategory.
    • -
    • Donuts are their own Subcategory
    • -
    • Moved Sweets from Misc Food in with Pies. Renamed to Pies & Sweets
    • -
    • BROOM
    • -
    • Janitor Vendor now has gear for two Janitors.
    • -
    -

    PersianXerxes updated:

    -
      -
    • SMES and PACMAN attached to gulag Security to power electrified windows remove: Removed Sec vendor from gulag Security
    • -
    • Separation of gulag and public mining
    • -
    • Better clarified the comment explaining the contraband tag.
    • -
    • Cargo nuclear defusal kits now require an emag'd drop pod console to be purchased.
    • -
    • Added Kilo Station
    • -
    • Adjusts Kilo Station to be more in line with Citadel standards
    • -
    • Added area icons required to make Kilo Station editable on Citadel code
    • -
    • Fixed a reagent container on Kilo pointing to a nonexistent reagent
    • -
    • Adds Kilo Station to the maps config file, does not fix Meta Station's population requirement
    • -
    -

    Psody-Mordheim updated:

    -
      -
    • You can now make synth-flesh with synthetic blood.
    • -
    • You can now make synthetic blood via mixing saline glucose, iron, stable plasma and heating it to 350 temp.
    • -
    • You can mix synthetic blood and cryoxadone to create synth-meat in addition to normal blood.
    • -
    • Disfiguration Symptom.
    • -
    • Deoxyribonucleic Acid Saboteur Symptom.
    • -
    • Polyvitiligo Symptom.
    • -
    • Revitiligo Symptom.
    • -
    • Vitiligo Symptom.
    • -
    -

    Putnam3145 updated:

    -
      -
    • Added logging to various consent things.
    • -
    • Lots of new traitor objectives
    • -
    • gender change potion now respects prefs
    • -
    • Hypno prefs work better.
    • -
    • Panic bunker is now round-to-round persistent
    • -
    • Relief valve now has a TGUI-next UI
    • -
    • Atmos reaction priority works now.
    • -
    • map voting doesn't suck anymore
    • -
    • Dynamic now defaults to "classic" storyteller instead of just failing if the vote didn't choose a storyteller.
    • -
    • antag quirk blacklisting works now
    • -
    • default should be... default
    • -
    • all supermatter damage is now hardcapped
    • -
    • Supermatter sabotage objective no longer shows up with no supermatter
    • -
    • Mining vendors no longer fail and eat your points iff you have precisely enough points to pay for an item
    • -
    • Licking pref
    • -
    • Fixed IRV.
    • -
    • Runtime if nobody has a chaos pref set
    • -
    • IRV fixed... again
    • -
    • temporary flavor text can now be of reasonable length
    • -
    • Shooting the supermatter now adds to the supermatter's power. CO2 setups beware!
    • -
    • Logging for renaming
    • -
    -

    Raiq & Linzolle updated:

    -
      -
    • Bone bow - Ash walkers crafting , bone arrows - Ash walkers crafting, silk string used in bow crafting, harden arrows - Ash walkers crafting, ash walker only crafting book, basic pipe bow, and bow & arrow selling. Quivers for ash walkers as well, just to hold some arrows well out on the hunt!
    • -
    -

    Seris02 updated:

    -
      -
    • tweaked the way the SM works
    • -
    • custom reagent pie smite
    • -
    • hijack implant
    • -
    • changed mentions of the issilion proc to hasSiliconAccessInArea based on what the proc is used for
    • -
    • recipe for mammal mutation toxin
    • -
    • polychromic winter coat
    • -
    • thief's gloves
    • -
    • crushing magboots
    • -
    • golden plastitanium toolbox being actually plastitanuium
    • -
    • character slot amount
    • -
    • rebalanced rising bass
    • -
    • string highlighting whitespace
    • -
    • glitch with PKA
    • -
    • meteor hallucinations (again)
    • -
    • Added naked hallucination
    • -
    • crowbarring manifests off crates
    • -
    • makes RCDs cost a better amount
    • -
    • apc icons
    • -
    • rest hotkey
    • -
    • hsl instead of sum of rgb for spraycan lum check
    • -
    • bloodcrawl's cooldown
    • -
    -

    ShadeAware updated:

    -
      -
    • Craftable Switchblades, a weaker subtype of normal switchblades that can be crafted using a Kitchen Knife, Modular Receiver, Rifle Stock and some Cable Coil. Requires a welder to complete.
    • -
    • You can now actually craft Switchblades.
    • -
    • Switchblades no longer regain their old Makeshift sprite after retracting if you've made them fancy with Silver.
    • -
    • The Captain's Wardrobe, a special one-of-a-kind and ID-locked wardrobe for the Captain that holds all of their snowflakey gear. Remove: Snowflake gear from the Captain's locker, since now it has its own vendor.
    • -
    -

    Tlaltecuhtli, ported by Hatterhat updated:

    -
      -
    • Ripley, Firefighter, Odysseus and H.O.N.K. mechs now also use scanning modules and capacitors on construction. This means that they also gain reduced power consumption and EMP protection from higher-tier stock parts.
    • -
    -

    Trilbyspaceclone updated:

    -
      -
    • Vault hallway door being all access
    • -
    • Updates change logs
    • -
    • Crafts are now made of plasteel and can be made with 5 sheets
    • -
    • Takes away NT's connections to the Aliens that run the Syndicats
    • -
    • Carps have evolved to take more damage
    • -
    • restock crates for each vender
    • -
    • restock units for all station venders
    • -
    • Sec-vender missing icon
    • -
    • Box station captain office issues maping: Gulag on box can now be accessed
    • -
    • Alien stools and chairs
    • -
    • Bone armor/Dagger are now crafting from bones rather then crafting menu
    • -
    • Firing pins that only works when not on station
    • -
    • Medical locked crates
    • -
    • Russian gear crates have less gear in some cases but all will cost more
    • -
    • Medical locked crates that were not locked
    • -
    • Crates that were out of date are corrected
    • -
    • Heads of staff have been better screened by NT before being promoted
    • -
    • The suit full of spiders also known as a ninja now is a tactical turtleneck
    • -
    • The Wiznerds now dont have suits set to max
    • -
    • Meat wheat no longer has blood
    • -
    • Flat guns can no longer be suppressed
    • -
    • replaced stickmans .45 caliber with 10mm, for consistency.
    • -
    • Meatwheat and Oats now have rarity
    • -
    • Oats now have at lest 50% more flour in them
    • -
    • BDM now uses a PKA rather then a normal KA
    • -
    • Gang tower shield is no longer transparent
    • -
    • Cosmic winter coat now glows like the bedsheet, and holds normal winter coat gear
    • -
    • Express console is now logging what it buys, like the normal console should
    • -
    • Crabs are now made of crab meat.
    • -
    • AIs now understand the old ways of drunken dwarfs
    • -
    • Removes some armored Russian hats from box station round start
    • -
    • Doner items spawning
    • -
    • Engi/Sec Trek suit no longer has 10% melee protection
    • -
    • IPC hearts are now made of robomeat and roboblood thats emp proof. Heals and is all and all just like an normal heart
    • -
    • All robotic organs now have an animation.
    • -
    • IPC's now organs now look like robotic ones, even tho thats not the case game wise
    • -
    • Added a new bee themed bar sign
    • -
    • Makes plywood chair not look as bad.
    • -
    • corndog sprite being miss-spelled
    • -
    • Ash from land of lava now is useable for sandstone
    • -
    • Peach cake slices are no long made by mimes
    • -
    -

    Tupinambis updated:

    -
      -
    • the portion of laws that require harm prevention by silicons has been removed.
    • -
    • silicon_laws.txt config file is required to be modified for full implementation.
    • -
    • masks no longer improperly stick out of helmets when they should be hidden.
    • -
    • Status Displays should now update correctly.
    • -
    • stunbatons now take 4 hits to inflict hard crit, up from 3.
    • -
    • stunbatons no longer disarm targets.
    • -
    -

    Yakumo Chen updated:

    -
      -
    • Rings for your fingers!
    • -
    • New cargo crates and loadout options to bling your rings!
    • -
    -

    YakumoChen updated:

    -
      -
    • Observe is back in the OOC tab
    • -
    • Rings look nicer. Sprites used from RP.
    • -
    • Ring on-hands. Diamond rings sparkle!
    • -
    • You can now propose using a diamond ring in your hand.
    • -
    • Legion skulls behave like bees!!!!
    • -
    -

    Zellular updated:

    -
      -
    • Movement state for pupdozer and its decals
    • -
    • Tweaked the movement state for the pupdozer's eyes
    • -
    -

    ancientpower updated:

    -
      -
    • Fixes an error in pH strips' feedback message.
    • -
    • Ported drink sliding from /vg/station.
    • -
    • Fixes color mismatching with the "genitals use skintone" preference.
    • -
    • Bunny ear style for humanoid species.
    • -
    • Ghosts are now literate.
    • -
    -

    bunny232 updated:

    -
      -
    • Changes the simple animal sentience event from the xenomorph preference to sentience potion preference.
    • -
    -

    coiax updated:

    -
      -
    • Admin and event only pair pinpointers! They come in a box of two, and each pinpointer will always point at its corresponding pair. Aww.
    • -
    -

    deathride58 updated:

    -
      -
    • Spacemen no longer run at lightspeed on local servers.
    • -
    -

    kappa-sama updated:

    -
      -
    • the plant dudes can actually make plant disks now
    • -
    -

    keronshb updated:

    -
      -
    • Added repairable turrets
    • -
    • Adds Tiny Fans to the pirate ship
    • -
    • changes some reinforced windows to plastinanium pirate windows
    • -
    • made the pirate shuttle + turrets bomb resistant
    • -
    • made most pirate machines + consoles indestructible
    • -
    • increased pirate turret health
    • -
    • Adds the CogChamp drink and Sprite
    • -
    • Added burn and knockback to stunhand during HALOS on cult.
    • -
    • fixed accelerated regeneration nanites
    • -
    • fixed mechanical repair nanites
    • -
    • fixed bio reconstruction nanites
    • -
    -

    kevinz000 updated:

    -
      -
    • Custom snowflake plushies are now in config rather than code.
    • -
    • Abductor mindsnapping (aka abductee objectives) can now be "cured" with brain surgery.
    • -
    • Shuttle hijacking has been completely reworked. Alt-click the shuttle as a hijack-capable mind (so traitors, and especially traitors with hijack) to begin or continue a hacking process.
    • -
    • A good amount of the blood RGB rework was cleaned up/reverted, with some notable gameplay changes including: Gibs and blood not having max blood by default (no more easy rampages, cultists), infinite gib streaking, etc etc.
    • -
    • meteor waves are now directional and announces the direction on the command report.
    • -
    • CTF CLAYMORES
    • -
    • shoves buffed, now shoving into a wall twice rapidly will also disarm their weapon.
    • -
    • traitor+bro gamemode minimum population set to 25 until there can be more in depth configuration systems for gamemodes.
    • -
    • no more bluespace skittish locker diving,
    • -
    • moths now have unique laughs and can *chitter.
    • -
    • nuke explosion is now full dev radius for anti lag purposes
    • -
    • Gangs can now only tag with a gang uplink bought spraycan.
    • -
    • dueling pistol accesses have been changed to be more accessible.
    • -
    • mechs no longer have admin logs flooding into IC control console log viewing
    • -
    • Guncode and energy guns have been refactored a bit.
    • -
    • You can now combat mode ight click on an energy gun to attempt to switch firing modes. This only works on guns without right click functions overridden.
    • -
    • shoes can now fit magpistols again.
    • -
    • Projectiles now always hit chest if targeting chest, snipers have 100% targeting zone accuracy. All other cases are unchanged.
    • -
    • The lawyer's PDA cartridge has been rebranded to something more accurate to its true nature.
    • -
    • Refactored ghostreading/etc
    • -
    • Cyborgization will now de-gang people, even gangheads.
    • -
    • reactive repulse armor now has an item limit
    • -
    • beam rifle runtime fix during aiming_beam
    • -
    • fail2topic runtime fix: taking out an ip while incrementing index resulted in accessing the next-next entry instead of the next and results in out of bound errors.
    • -
    • gravity gun repulse and chaos now work in all angles, rather than just basic cardinals and diagonals. fun.
    • -
    • Public autolathes can no longer be hacked.
    • -
    • Energy weapons now once again have their lens in contents.
    • -
    • pais are no longer muted for literally a whole hour on emp.
    • -
    • auto profiler subsystem from tg
    • -
    • Brig cells now are more accurate by using timeofday instead of realtime
    • -
    • Cryo now actually transfers reagents at tier 4 on enter rather than every 80 machine fire()-process()s regardless of if it was "reset" by open/close.
    • -
    • cmo now gets advanced surgery drapes that techweb-sync for advanced surgeries without an operating console.
    • -
    • ctf claymores now actually spawn (and fit).
    • -
    • STOP_PROCESSING now removes from currentrun to prevent another process cycle from happening where it shouldn't.
    • -
    • hand teleporters now require 30 deciseconds of still movement by the user to dispel portals. there's a beam effect too.
    • -
    • Sort of a bugfix but cult blood magic and all guns now respect stamina softcrit.
    • -
    • Organ healing rate doubled. Organ decay rate halved to match its define (15 minutes for full decay, so at around 8-10 minutes it'll be really fucked).
    • -
    • Storage now caches max screen size and only stores when being opened by a non ghost, meaning ghosts will no longer distort living player screens when viewing storage.
    • -
    • Stunbatons changed yet again.
    • -
    • the game's built in autoclicker aka CanMobAutoclick no longer triggers client/Click()'s anti clickspam guard.
    • -
    • pais can no longer bodyblock bullets
    • -
    • pai radio short changed to 3 minutes down from 5
    • -
    • pais are no longer fulltile click opacity.
    • -
    • vampire "immortal haste" has been reworked to be more reliable and consistent.
    • -
    • hand teles use a less atrocious beam
    • -
    -

    necromanceranne updated:

    -
      -
    • Ebows now disarm people hit by them.
    • -
    • Ebows now do 60 stamina damage on hit.
    • -
    • Ebows no longer inflict drowsiness
    • -
    • Miniature ebows do 15 toxin damage, up from 8.
    • -
    • Ebows have considerably shorter knockdowns.
    • -
    • Ebows now make you slur rather than stutter.
    • -
    • Large ebows are now heavy and bulky.
    • -
    • You can no longer order spinfusors or their ammo from cargo.
    • -
    • Removed the formal security officer jacket from the secdrobe
    • -
    • formal security jackets are now armor vests
    • -
    • Bullets causing bleed rates equal to unmitigated damage through all forms of defense.
    • -
    • Reverted #9092, crew mecha no longer spawn with tracking beacons.
    • -
    • [Port] Mecha ballistics weapons now require ammo created from an Exosuit Fabricator or the Security Protolathe, though they will start with a full magazine and in most cases enough for one full reload. Reloading these weapons no longer chunks your power cell. Clown (and mime) mecha equipment have not changed.
    • -
    • [Port] The SRM-8 Missile Launcher has been replaced with the BRM-6 Breaching Missile Launcher in techwebs (Nukie Mauler remains equipped with the SRM-8).
    • -
    • [Port] Both Missile Launchers and the Clusterbang Launcher do not have an ammo cache, and cannot be reloaded by the pilot. Once the initial loaded ammo has been spent, you can use the appropriate ammo box to load the weapon directly.
    • -
    • [Port] Utility mechs that have a clamp equipped can load ammo from their own cargo hold into other mechs.
    • -
    • [Port] Nuke Ops can purchase spare ammo duffel bags for their mecha weapons, should they run low.
    • -
    • Literally unclickability with a cham projector
    • -
    -

    nemvar updated:

    -
      -
    • Slight changes the self-repair borg module. It no longer references the borg that owns it.
    • -
    • Trash from food now gets generated at the location of the food item, instead of in the hands of the eater.
    • -
    • Changed mob biotypes from lists to flags.
    • -
    -

    r4d6 updated:

    -
      -
    • Added a dwarf language
    • -
    • Added more engines
    • -
    • RPD subcategories and preview icons reorganized.
    • -
    • RPD now starts with painting turned off, hitting pipes with build and no paint will target the turf underneath instead. Bye bye turf pixelhunting.
    • -
    • Made dwarves into a roundstart races
    • -
    • Meteor Timer back to 3-5 minutes
    • -
    • Mining no longer lead to spess
    • -
    • Added Plasteel Pickaxe
    • -
    • Added Titanium Pickaxe
    • -
    • fixed a missing tile
    • -
    -

    tralezab, bandit, Skoglol updated:

    -
      -
    • The mime's PDA messages are silent now!
    • -
    • 30 new emoji have been added. Mime buff, mime now OP.
    • -
    GoonStation 13 Development Team diff --git a/icons/UI_Icons/chat/chat_icons.dmi b/icons/UI_Icons/chat/chat_icons.dmi new file mode 100644 index 0000000000..7040b3966f Binary files /dev/null and b/icons/UI_Icons/chat/chat_icons.dmi differ diff --git a/icons/effects/parallax.dmi b/icons/effects/parallax.dmi index 22f091ff11..36dd36ee7a 100755 Binary files a/icons/effects/parallax.dmi and b/icons/effects/parallax.dmi differ diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 988ae1a30f..13f97d3761 100644 Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ diff --git a/icons/mob/blob.dmi b/icons/mob/blob.dmi index 6964160c04..a197581533 100644 Binary files a/icons/mob/blob.dmi and b/icons/mob/blob.dmi differ diff --git a/icons/mob/clothing/alpha_masks.dmi b/icons/mob/clothing/alpha_masks.dmi new file mode 100644 index 0000000000..28f6069cea Binary files /dev/null and b/icons/mob/clothing/alpha_masks.dmi differ diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi index 66a47d21f2..d307b5b6c9 100644 Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ diff --git a/icons/mob/clothing/feet.dmi b/icons/mob/clothing/feet.dmi index 1e09dce605..2b28d06976 100644 Binary files a/icons/mob/clothing/feet.dmi and b/icons/mob/clothing/feet.dmi differ diff --git a/icons/mob/clothing/feet_digi.dmi b/icons/mob/clothing/feet_digi.dmi index 626c67a71c..7815f3d0a4 100644 Binary files a/icons/mob/clothing/feet_digi.dmi and b/icons/mob/clothing/feet_digi.dmi differ diff --git a/icons/mob/clothing/hands.dmi b/icons/mob/clothing/hands.dmi index 74aabf6021..3860fa4b7e 100644 Binary files a/icons/mob/clothing/hands.dmi and b/icons/mob/clothing/hands.dmi differ diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index 3c5dfe5012..85cb1e0c0a 100644 Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index ee36c59209..13f288677f 100644 Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/mob/clothing/mask_muzzled.dmi b/icons/mob/clothing/mask_muzzled.dmi index ed74796c03..0a10f1edbe 100644 Binary files a/icons/mob/clothing/mask_muzzled.dmi and b/icons/mob/clothing/mask_muzzled.dmi differ diff --git a/icons/mob/clothing/taur_hooved.dmi b/icons/mob/clothing/taur_hooved.dmi index 71aec5444a..993e9c2550 100644 Binary files a/icons/mob/clothing/taur_hooved.dmi and b/icons/mob/clothing/taur_hooved.dmi differ diff --git a/icons/mob/clothing/uniform.dmi b/icons/mob/clothing/uniform.dmi index 371c5066df..b717b33c61 100644 Binary files a/icons/mob/clothing/uniform.dmi and b/icons/mob/clothing/uniform.dmi differ diff --git a/icons/mob/clothing/uniform_digi.dmi b/icons/mob/clothing/uniform_digi.dmi index 7fe37547e9..6a538bc85e 100644 Binary files a/icons/mob/clothing/uniform_digi.dmi and b/icons/mob/clothing/uniform_digi.dmi differ diff --git a/icons/mob/clown_mobs.dmi b/icons/mob/clown_mobs.dmi new file mode 100644 index 0000000000..803a99cd7a Binary files /dev/null and b/icons/mob/clown_mobs.dmi differ diff --git a/icons/mob/icemoon/64x64megafauna.dmi b/icons/mob/icemoon/64x64megafauna.dmi new file mode 100644 index 0000000000..5a622dc7bc Binary files /dev/null and b/icons/mob/icemoon/64x64megafauna.dmi differ diff --git a/icons/mob/icemoon/icemoon_monsters.dmi b/icons/mob/icemoon/icemoon_monsters.dmi new file mode 100644 index 0000000000..4f0b5df64a Binary files /dev/null and b/icons/mob/icemoon/icemoon_monsters.dmi differ diff --git a/icons/mob/inhands/equipment/security_lefthand.dmi b/icons/mob/inhands/equipment/security_lefthand.dmi index 01f8e2ca27..d5b32d7c37 100644 Binary files a/icons/mob/inhands/equipment/security_lefthand.dmi and b/icons/mob/inhands/equipment/security_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/security_righthand.dmi b/icons/mob/inhands/equipment/security_righthand.dmi index d2126fe22f..1c8c9b0dfb 100644 Binary files a/icons/mob/inhands/equipment/security_righthand.dmi and b/icons/mob/inhands/equipment/security_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi index 528fd42d23..aa6d38ad07 100644 Binary files a/icons/mob/inhands/weapons/guns_lefthand.dmi and b/icons/mob/inhands/weapons/guns_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/guns_righthand.dmi b/icons/mob/inhands/weapons/guns_righthand.dmi index 5bf347fabf..01f77ca8c9 100644 Binary files a/icons/mob/inhands/weapons/guns_righthand.dmi and b/icons/mob/inhands/weapons/guns_righthand.dmi differ diff --git a/icons/mob/mutant_bodyparts.dmi b/icons/mob/mutant_bodyparts.dmi index 2f7f9b5be9..9c531a3df2 100644 Binary files a/icons/mob/mutant_bodyparts.dmi and b/icons/mob/mutant_bodyparts.dmi differ diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi index a65ac3f926..60fe2f9839 100644 Binary files a/icons/mob/screen_alert.dmi and b/icons/mob/screen_alert.dmi differ diff --git a/icons/mob/screen_ghost.dmi b/icons/mob/screen_ghost.dmi index 6519d00aa9..5c49bedcad 100644 Binary files a/icons/mob/screen_ghost.dmi and b/icons/mob/screen_ghost.dmi differ diff --git a/icons/obj/advancedtools.dmi b/icons/obj/advancedtools.dmi index 974202dd58..19240a60eb 100644 Binary files a/icons/obj/advancedtools.dmi and b/icons/obj/advancedtools.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index a26b01883e..e0b02d2adc 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/assemblies/new_assemblies.dmi b/icons/obj/assemblies/new_assemblies.dmi index fa0c138d21..2283b84c43 100644 Binary files a/icons/obj/assemblies/new_assemblies.dmi and b/icons/obj/assemblies/new_assemblies.dmi differ diff --git a/icons/obj/chess.dmi b/icons/obj/chess.dmi index 191eed8843..09d9c766fd 100644 Binary files a/icons/obj/chess.dmi and b/icons/obj/chess.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index d53f53c029..2a6ce77f38 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 13f678f53a..6bae5154ac 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi index c4e000b700..f23cdaee46 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index a485deb9ad..cea11f8a49 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index c58fb5d940..58c1cd921c 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/icons/obj/doors/puzzledoor/default.dmi b/icons/obj/doors/puzzledoor/default.dmi new file mode 100644 index 0000000000..ec4fbed514 Binary files /dev/null and b/icons/obj/doors/puzzledoor/default.dmi differ diff --git a/icons/obj/doors/puzzledoor/wood.dmi b/icons/obj/doors/puzzledoor/wood.dmi new file mode 100644 index 0000000000..f2b53e8573 Binary files /dev/null and b/icons/obj/doors/puzzledoor/wood.dmi differ diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index c178cdba04..27caef76b2 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/icons/obj/food/burgerbread.dmi b/icons/obj/food/burgerbread.dmi index b1d78fa078..414930ac25 100644 Binary files a/icons/obj/food/burgerbread.dmi and b/icons/obj/food/burgerbread.dmi differ diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index f5e2dc5692..9affc07f88 100644 Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ diff --git a/modular_citadel/icons/obj/genitals/breasts.dmi b/icons/obj/genitals/breasts.dmi similarity index 100% rename from modular_citadel/icons/obj/genitals/breasts.dmi rename to icons/obj/genitals/breasts.dmi diff --git a/modular_citadel/icons/obj/genitals/breasts_onmob.dmi b/icons/obj/genitals/breasts_onmob.dmi similarity index 100% rename from modular_citadel/icons/obj/genitals/breasts_onmob.dmi rename to icons/obj/genitals/breasts_onmob.dmi diff --git a/modular_citadel/icons/obj/genitals/dildo.dmi b/icons/obj/genitals/dildo.dmi similarity index 100% rename from modular_citadel/icons/obj/genitals/dildo.dmi rename to icons/obj/genitals/dildo.dmi diff --git a/modular_citadel/icons/obj/genitals/effects.dmi b/icons/obj/genitals/effects.dmi similarity index 100% rename from modular_citadel/icons/obj/genitals/effects.dmi rename to icons/obj/genitals/effects.dmi diff --git a/modular_citadel/icons/obj/genitals/hud.dmi b/icons/obj/genitals/hud.dmi similarity index 100% rename from modular_citadel/icons/obj/genitals/hud.dmi rename to icons/obj/genitals/hud.dmi diff --git a/modular_citadel/icons/obj/genitals/onahole.dmi b/icons/obj/genitals/onahole.dmi similarity index 100% rename from modular_citadel/icons/obj/genitals/onahole.dmi rename to icons/obj/genitals/onahole.dmi diff --git a/modular_citadel/icons/obj/genitals/penis.dmi b/icons/obj/genitals/penis.dmi similarity index 100% rename from modular_citadel/icons/obj/genitals/penis.dmi rename to icons/obj/genitals/penis.dmi diff --git a/modular_citadel/icons/obj/genitals/penis_onmob.dmi b/icons/obj/genitals/penis_onmob.dmi similarity index 100% rename from modular_citadel/icons/obj/genitals/penis_onmob.dmi rename to icons/obj/genitals/penis_onmob.dmi diff --git a/modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi b/icons/obj/genitals/taur_penis_onmob.dmi similarity index 100% rename from modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi rename to icons/obj/genitals/taur_penis_onmob.dmi diff --git a/modular_citadel/icons/obj/genitals/testicles.dmi b/icons/obj/genitals/testicles.dmi similarity index 100% rename from modular_citadel/icons/obj/genitals/testicles.dmi rename to icons/obj/genitals/testicles.dmi diff --git a/modular_citadel/icons/obj/genitals/testicles_onmob.dmi b/icons/obj/genitals/testicles_onmob.dmi similarity index 100% rename from modular_citadel/icons/obj/genitals/testicles_onmob.dmi rename to icons/obj/genitals/testicles_onmob.dmi diff --git a/modular_citadel/icons/obj/genitals/vagina.dmi b/icons/obj/genitals/vagina.dmi similarity index 100% rename from modular_citadel/icons/obj/genitals/vagina.dmi rename to icons/obj/genitals/vagina.dmi diff --git a/modular_citadel/icons/obj/genitals/vagina_onmob.dmi b/icons/obj/genitals/vagina_onmob.dmi similarity index 100% rename from modular_citadel/icons/obj/genitals/vagina_onmob.dmi rename to icons/obj/genitals/vagina_onmob.dmi diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi index e54f55ed46..691d5c8362 100644 Binary files a/icons/obj/guns/energy.dmi and b/icons/obj/guns/energy.dmi differ diff --git a/icons/obj/ice_moon/artifacts.dmi b/icons/obj/ice_moon/artifacts.dmi new file mode 100644 index 0000000000..93ea79e636 Binary files /dev/null and b/icons/obj/ice_moon/artifacts.dmi differ diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index eee164cead..c843afca5f 100644 Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ diff --git a/icons/obj/items_cyborg.dmi b/icons/obj/items_cyborg.dmi index a4bd75f7e5..769d5492c6 100644 Binary files a/icons/obj/items_cyborg.dmi and b/icons/obj/items_cyborg.dmi differ diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi index e7d134c85f..a157d333b0 100644 Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ diff --git a/icons/obj/lavaland/artefacts.dmi b/icons/obj/lavaland/artefacts.dmi index 7ae1ed5a0e..5ac8283b8f 100644 Binary files a/icons/obj/lavaland/artefacts.dmi and b/icons/obj/lavaland/artefacts.dmi differ diff --git a/icons/obj/loot_piles.dmi b/icons/obj/loot_piles.dmi new file mode 100644 index 0000000000..3d83d6612e Binary files /dev/null and b/icons/obj/loot_piles.dmi differ diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index f2e98aff32..20ffbdbe06 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ diff --git a/icons/obj/monitors.dmi b/icons/obj/monitors.dmi index 5e91660e87..580d78900d 100644 Binary files a/icons/obj/monitors.dmi and b/icons/obj/monitors.dmi differ diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index 87db0caa67..5ad6c1cb3b 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ diff --git a/icons/obj/puzzle_small.dmi b/icons/obj/puzzle_small.dmi new file mode 100644 index 0000000000..2cf23676ee Binary files /dev/null and b/icons/obj/puzzle_small.dmi differ diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index c8675209c4..d24efa0625 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ diff --git a/icons/turf/floors/icechasms.dmi b/icons/turf/floors/icechasms.dmi new file mode 100644 index 0000000000..97dfc0a2da Binary files /dev/null and b/icons/turf/floors/icechasms.dmi differ diff --git a/icons/turf/mining.dmi b/icons/turf/mining.dmi index 335cff453e..41450f7b0c 100644 Binary files a/icons/turf/mining.dmi and b/icons/turf/mining.dmi differ diff --git a/icons/turf/snow.dmi b/icons/turf/snow.dmi index d71431f99a..e601f771d3 100644 Binary files a/icons/turf/snow.dmi and b/icons/turf/snow.dmi differ diff --git a/interface/skin.dmf b/interface/skin.dmf index 5f8e1ad125..04a78af061 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -1,5 +1,6 @@ macro "default" + menu "menu" elem name = "&File" @@ -128,24 +129,28 @@ window "mainwindow" window "mapwindow" elem "mapwindow" type = MAIN - pos = 0,0 - size = 640x480 + pos = 418,0 + size = 1024x1024 anchor1 = none anchor2 = none - saved-params = "pos;size;is-minimized;is-maximized" + background-color = none + saved-params = "" + statusbar = false is-pane = true + outer-size = 1090x1192 + inner-size = 1068x1136 elem "map" type = MAP pos = 0,0 - size = 640x480 + size = 1024x1024 anchor1 = 0,0 anchor2 = 100,100 font-family = "Arial" font-size = 7 - text-color = none is-default = true saved-params = "icon-size" zoom-mode = distort + style = ".center { text-align: center; }\n.maptext { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; }\n.command_headset { font-weight: bold;\tfont-size: 8px; } .small { font-size: 6px; }\n.big { font-size: 8px; }\n.reallybig { font-size: 8px; }\n.extremelybig { font-size: 8px; }\n.greentext { color: #00ff00; font-size: 7px; }\n.redtext { color: #ff0000; font-size: 7px; }\n.clown { color: #ff69bf; font-size: 7px; font-weight: bold; }\n.his_grace { color: #15d512; }\n.hypnophrase { color: #0d0d0d; font-weight: bold; }\n.yell { font-weight: bold; }\n.italics { font-size: 6px; }" window "infowindow" elem "infowindow" @@ -268,14 +273,13 @@ window "statwindow" is-default = true saved-params = "" - window "preferences_window" +window "preferences_window" elem "preferences_window" type = MAIN pos = 372,0 size = 1280x1000 anchor1 = none anchor2 = none - background-color = none is-visible = false saved-params = "pos;size;is-minimized;is-maximized" statusbar = false @@ -285,7 +289,6 @@ window "statwindow" size = 960x1000 anchor1 = 0,0 anchor2 = 75,100 - background-color = none saved-params = "" elem "character_preview_map" type = MAP @@ -295,3 +298,4 @@ window "statwindow" anchor2 = 100,100 right-click = true saved-params = "zoom;letterbox;zoom-mode" + diff --git a/modular_citadel/code/_onclick/hud/sprint.dm b/modular_citadel/code/_onclick/hud/sprint.dm index 89547c0feb..326bb81745 100644 --- a/modular_citadel/code/_onclick/hud/sprint.dm +++ b/modular_citadel/code/_onclick/hud/sprint.dm @@ -54,5 +54,5 @@ /obj/screen/sprint_buffer/proc/update_to_mob(mob/living/L) var/amount = 0 if(L.sprint_buffer_max > 0) - amount = round(CLAMP((L.sprint_buffer / L.sprint_buffer_max) * 100, 0, 100), 5) + amount = round(clamp((L.sprint_buffer / L.sprint_buffer_max) * 100, 0, 100), 5) icon_state = "prog_bar_[amount]" diff --git a/modular_citadel/code/_onclick/hud/stamina.dm b/modular_citadel/code/_onclick/hud/stamina.dm index a7b9a79ecd..5484014f8f 100644 --- a/modular_citadel/code/_onclick/hud/stamina.dm +++ b/modular_citadel/code/_onclick/hud/stamina.dm @@ -22,7 +22,7 @@ else if(user.hal_screwyhud == 5) icon_state = "stamina0" else - icon_state = "stamina[CLAMP(FLOOR(user.getStaminaLoss() /20, 1), 0, 6)]" + icon_state = "stamina[clamp(FLOOR(user.getStaminaLoss() /20, 1), 0, 6)]" //stam buffer /obj/screen/staminabuffer diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm index 369fb377a5..62fe30f2d7 100644 --- a/modular_citadel/code/datums/status_effects/chems.dm +++ b/modular_citadel/code/datums/status_effects/chems.dm @@ -76,7 +76,7 @@ to_chat(H, "Your enormous breasts are way too large to fit anything over them!
    ") if(last_checked_size != B.cached_size) - H.add_movespeed_modifier(BREAST_MOVEMENT_SPEED, TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = moveCalc) + H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/status_effect/breast_hypertrophy, multiplicative_slowdown = moveCalc) sizeMoveMod(moveCalc) if (B.size == "huge") @@ -93,7 +93,7 @@ /datum/status_effect/chem/breast_enlarger/on_remove() log_game("FERMICHEM: [owner]'s breasts has reduced to an acceptable size. ID: [owner.key]") to_chat(owner, "Your expansive chest has become a more managable size, liberating your movements.
    ") - owner.remove_movespeed_modifier(BREAST_MOVEMENT_SPEED) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/breast_hypertrophy) sizeMoveMod(1) return ..() @@ -152,18 +152,18 @@ playsound(H.loc, 'sound/items/poster_ripped.ogg', 50, 1) to_chat(H, "Your enormous package is way to large to fit anything over!") - if(P.length < 22 && H.has_movespeed_modifier(DICK_MOVEMENT_SPEED)) + if(P.length < 22 && H.has_movespeed_modifier(/datum/movespeed_modifier/status_effect/penis_hypertrophy)) to_chat(owner, "Your rascally willy has become a more managable size, liberating your movements.") - H.remove_movespeed_modifier(DICK_MOVEMENT_SPEED) - else if(P.length >= 22 && !H.has_movespeed_modifier(DICK_MOVEMENT_SPEED)) + H.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/penis_hypertrophy) + else if(P.length >= 22 && !H.has_movespeed_modifier(/datum/movespeed_modifier/status_effect/penis_hypertrophy)) to_chat(H, "Your indulgent johnson is so substantial, it's taking all your blood and affecting your movements!") - H.add_movespeed_modifier(DICK_MOVEMENT_SPEED, TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = moveCalc) + H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/status_effect/penis_hypertrophy, multiplicative_slowdown = moveCalc) H.AdjustBloodVol(bloodCalc) ..() /datum/status_effect/chem/penis_enlarger/on_remove() log_game("FERMICHEM: [owner]'s dick has reduced to an acceptable size. ID: [owner.key]") - owner.remove_movespeed_modifier(DICK_MOVEMENT_SPEED) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/penis_hypertrophy) owner.ResetBloodVol() return ..() @@ -280,7 +280,7 @@ var/mob/living/carbon/M = owner //chem calculations - if(!owner.reagents.has_reagent(/datum/chemical_reaction/fermi/enthrall) && !owner.reagents.has_reagent(/datum/reagent/fermi/enthrall/test)) + if(!owner.reagents.has_reagent(/datum/chemical_reaction/fermi/enthrall)) if (phase < 3 && phase != 0) deltaResist += 3//If you've no chem, then you break out quickly if(prob(5)) @@ -532,7 +532,7 @@ cooldown += 1 //Cooldown doesn't process till status is done else if(status == "charge") - owner.add_movespeed_modifier(MOVESPEED_ID_MKULTRA, update=TRUE, priority=100, multiplicative_slowdown=-2, blacklisted_movetypes=(FLYING|FLOATING)) + owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/mkultra) status = "charged" if(lewd) to_chat(owner, "Your [enthrallGender]'s order fills you with a burst of speed!") @@ -542,7 +542,7 @@ else if (status == "charged") if (statusStrength < 0) status = null - owner.remove_movespeed_modifier(MOVESPEED_ID_MKULTRA) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/mkultra) owner.DefaultCombatKnockdown(50) to_chat(owner, "Your body gives out as the adrenaline in your system runs out.") else diff --git a/modular_citadel/code/game/machinery/wishgranter.dm b/modular_citadel/code/game/machinery/wishgranter.dm index 7758c0d613..6cfe07b7a0 100644 --- a/modular_citadel/code/game/machinery/wishgranter.dm +++ b/modular_citadel/code/game/machinery/wishgranter.dm @@ -94,9 +94,8 @@ var/mob/living/simple_animal/hostile/venus_human_trap/killwish = new /mob/living/simple_animal/hostile/venus_human_trap(loc) killwish.maxHealth = 1500 killwish.health = killwish.maxHealth - killwish.grasp_range = 6 + killwish.vine_grab_distance = 6 killwish.melee_damage_upper = 30 - killwish.grasp_chance = 50 killwish.loot = list(/obj/item/twohanded/dualsaber/hypereutactic) charges-- insisting = FALSE diff --git a/modular_citadel/code/modules/language/sylvan.dm b/modular_citadel/code/modules/language/sylvan.dm new file mode 100644 index 0000000000..e69de29bb2 diff --git a/modular_citadel/code/modules/mob/living/carbon/damage_procs.dm b/modular_citadel/code/modules/mob/living/carbon/damage_procs.dm index 2e8feb793a..17c3f17ad8 100644 --- a/modular_citadel/code/modules/mob/living/carbon/damage_procs.dm +++ b/modular_citadel/code/modules/mob/living/carbon/damage_procs.dm @@ -6,7 +6,7 @@ var/directstamloss = (bufferedstam + amount) - stambuffer if(directstamloss > 0) adjustStaminaLoss(directstamloss) - bufferedstam = CLAMP(bufferedstam + amount, 0, stambuffer) + bufferedstam = clamp(bufferedstam + amount, 0, stambuffer) stambufferregentime = world.time + 10 if(updating_health) update_health_hud() @@ -15,7 +15,7 @@ if(!forced && (status_flags & GODMODE)) return FALSE var/obj/item/bodypart/BP = isbodypart(affected_zone)? affected_zone : (get_bodypart(check_zone(affected_zone)) || bodyparts[1]) - if(amount > 0? BP.receive_damage(0, 0, amount * incomingstammult) : BP.heal_damage(0, 0, abs(amount))) + if(amount > 0? BP.receive_damage(0, 0, amount * incomingstammult) : BP.heal_damage(0, 0, abs(amount), FALSE, FALSE)) update_damage_overlays() if(updating_health) updatehealth() diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm index 742ef6c9aa..d5d1e56485 100644 --- a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm +++ b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm @@ -434,11 +434,11 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm ! if(hit_atom) if(isliving(hit_atom)) var/mob/living/L = hit_atom - if(L.run_block(0, "the [name]", src, ATTACK_TYPE_TACKLE, 0, src) & BLOCK_SUCCESS) + if(L.mob_run_block(0, "the [name]", src, ATTACK_TYPE_TACKLE, 0, src, null, null) & BLOCK_SUCCESS) DefaultCombatKnockdown(15, 1, 1) else L.visible_message("[src] pounces on [L]!", "[src] pounces on you!") - L.DefaultCombatKnockdown(iscarbon(L) ? 60 : 45, override_stamdmg = CLAMP(pounce_stamloss, 0, pounce_stamloss_cap-L.getStaminaLoss())) // Temporary. If someone could rework how dogborg pounces work to accomodate for combat changes, that'd be nice. + L.DefaultCombatKnockdown(iscarbon(L) ? 60 : 45, override_stamdmg = clamp(pounce_stamloss, 0, pounce_stamloss_cap-L.getStaminaLoss())) // Temporary. If someone could rework how dogborg pounces work to accomodate for combat changes, that'd be nice. playsound(src, 'sound/weapons/Egloves.ogg', 50, 1) sleep(2)//Runtime prevention (infinite bump() calls on hulks) step_towards(src,L) diff --git a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm index a4b6429bea..bcc156a22e 100644 --- a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm +++ b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm @@ -131,7 +131,7 @@ item_state = "particleblaster" lefthand_file = 'modular_citadel/icons/mob/inhands/guns_lefthand.dmi' righthand_file = 'modular_citadel/icons/mob/inhands/guns_righthand.dmi' - ammo_type = list(/obj/item/ammo_casing/energy/electrode/pump, /obj/item/ammo_casing/energy/laser/pump) + ammo_type = list(/obj/item/ammo_casing/energy/disabler/pump, /obj/item/ammo_casing/energy/laser/pump) ammo_x_offset = 2 modifystate = 1 @@ -152,19 +152,19 @@ fire_sound = 'sound/weapons/LaserSlugv3.ogg' /obj/item/ammo_casing/energy/laser/pump - projectile_type = /obj/item/projectile/beam/weak - e_cost = 200 + projectile_type = /obj/item/projectile/beam/pump + e_cost = 350 select_name = "kill" - pellets = 3 + pellets = 6 variance = 15 fire_sound = 'sound/weapons/ParticleBlaster.ogg' -/obj/item/ammo_casing/energy/electrode/pump - projectile_type = /obj/item/projectile/energy/electrode/pump - select_name = "stun" +/obj/item/ammo_casing/energy/disabler/pump + projectile_type = /obj/item/projectile/energy/disabler/pump + select_name = "disable" fire_sound = 'sound/weapons/LaserSlugv3.ogg' - e_cost = 300 - pellets = 3 + e_cost = 150 + pellets = 6 variance = 20 //PROJECTILES @@ -181,19 +181,13 @@ speed = 0.6 icon_state = "disablerslug" -/obj/item/projectile/energy/electrode/pump - name = "electron blast" - icon_state = "stunjectile" +/obj/item/projectile/beam/pump + damage = 9 + range = 6 + +/obj/item/projectile/energy/disabler/pump + name = "disabling blast" + icon_state = "disablerslug" color = null - nodamage = TRUE - knockdown = 100 - knockdown_stamoverride = 0 - knockdown_stam_max = 0 - stamina = 18 - stutter = 5 - jitter = 20 - strong_tase = FALSE - tase_duration = 0 - hitsound = 'sound/weapons/taserhit.ogg' - range = 3 - strong_tase = FALSE + stamina = 13 + range = 6 diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm index 2364c617f0..89a7f58cee 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm @@ -144,20 +144,7 @@ Creating a chem with a low purity will make you permanently fall in love with so pH = 10 chemical_flags = REAGENT_ONMOBMERGE | REAGENT_DONOTSPLIT //Procs on_mob_add when merging into a human can_synth = FALSE - - -/datum/reagent/fermi/enthrall/test - name = "MKUltraTest" - description = "A forbidden deep red mixture that makes you like Fermis a little too much. Unobtainable and due to be removed from the wiki." - data = list("creatorID" = "honkatonkbramblesnatch", "creatorGender" = "Mistress", "creatorName" = "Fermis Yakumo") - creatorID = "honkatonkbramblesnatch"//ckey - creatorGender = "Mistress" - creatorName = "Fermis Yakumo" - purity = 1 - -/datum/reagent/fermi/enthrall/test/on_new() - ..() - creator = get_mob_by_key(creatorID) + value = REAGENT_VALUE_EXCEPTIONAL /datum/reagent/fermi/enthrall/on_new(list/data) creatorID = data["creatorID"] diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm index 5f9ea5924d..277a2e0a79 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm @@ -52,6 +52,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING inverse_chem_val = 0.5 inverse_chem = /datum/reagent/impure/SDZF can_synth = TRUE + value = REAGENT_VALUE_RARE //Main SDGF chemical @@ -109,7 +110,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING to_chat(M, "You feel a strange sensation building in your mind as you realise there's two of you, before you get a chance to think about it, you suddenly split from your old body, and find yourself face to face with yourself.") M.visible_message("[M] suddenly shudders, and splits into two identical twins!") - SM.copy_known_languages_from(M, FALSE) + SM.copy_languages(M, LANGUAGE_MIND) playerClone = TRUE M.next_move_modifier = 1 M.nutrition -= 500 @@ -309,6 +310,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING can_synth = TRUE taste_description = "a weird chemical fleshy flavour" chemical_flags = REAGENT_SNEAKYNAME + value = REAGENT_VALUE_RARE /datum/reagent/impure/SDZF/on_mob_life(mob/living/carbon/M) //If you're bad at fermichem, turns your clone into a zombie instead. switch(current_cycle)//Pretends to be normal diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm index a8ac66ef20..8348569fbb 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm @@ -30,6 +30,7 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die inverse_chem_val = 0.25 can_synth = FALSE var/datum/action/chem/astral/AS = new/datum/action/chem/astral() + value = REAGENT_VALUE_AMAZING /datum/action/chem/astral name = "Return to body" diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm index e0b7a6fa14..28645cdc7b 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm @@ -29,6 +29,7 @@ var/teleBool = FALSE pH = 3.7 can_synth = TRUE + value = REAGENT_VALUE_EXCEPTIONAL /datum/reagent/fermi/eigenstate/on_new(list/data) location_created = data["location_created"] diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm index 97261e07f2..7403de6215 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm @@ -29,6 +29,7 @@ inverse_chem_val = 0.35 inverse_chem = /datum/reagent/fermi/BEsmaller //At really impure vols, it just becomes 100% inverse can_synth = FALSE + value = REAGENT_VALUE_VERY_RARE var/message_spam = FALSE /datum/reagent/fermi/breast_enlarger/on_mob_metabolize(mob/living/M) @@ -126,6 +127,7 @@ taste_description = "a milky ice cream like flavour." metabolization_rate = 0.25 can_synth = FALSE + value = REAGENT_VALUE_RARE /datum/reagent/fermi/BEsmaller/on_mob_life(mob/living/carbon/M) var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS) @@ -186,6 +188,7 @@ inverse_chem_val = 0.35 inverse_chem = /datum/reagent/fermi/PEsmaller //At really impure vols, it just becomes 100% inverse and shrinks instead. can_synth = FALSE + value = REAGENT_VALUE_VERY_RARE var/message_spam = FALSE /datum/reagent/fermi/penis_enlarger/on_mob_metabolize(mob/living/M) @@ -273,6 +276,7 @@ taste_description = "chinese dragon powder" metabolization_rate = 0.5 can_synth = FALSE + value = REAGENT_VALUE_RARE /datum/reagent/fermi/PEsmaller/on_mob_life(mob/living/carbon/M) if(!ishuman(M)) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm index d98ec7059d..48c9ffb7e6 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm @@ -9,6 +9,7 @@ inverse_chem_val = 0.4 inverse_chem = /datum/reagent/impure/yamerol_tox can_synth = TRUE + value = REAGENT_VALUE_VERY_RARE /datum/reagent/fermi/yamerol/on_mob_life(mob/living/carbon/C) var/obj/item/organ/tongue/T = C.getorganslot(ORGAN_SLOT_TONGUE) @@ -100,6 +101,7 @@ data = list("grown_volume" = 0, "injected_vol" = 0) var/borrowed_health color = "#FFDADA" + value = REAGENT_VALUE_COMMON /datum/reagent/synthtissue/reaction_mob(mob/living/M, method=TOUCH, reac_volume,show_message = 1) if(iscarbon(M)) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/other_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/other_reagents.dm deleted file mode 100644 index 87f9d71ce2..0000000000 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ /dev/null @@ -1,32 +0,0 @@ -/datum/reagent/syndicateadrenals - name = "Syndicate Adrenaline" - description = "Regenerates your stamina and increases your reaction time." - color = "#E62111" - overdose_threshold = 6 - -/datum/reagent/syndicateadrenals/on_mob_life(mob/living/M) - M.adjustStaminaLoss(-5*REM) - . = ..() - -/datum/reagent/syndicateadrenals/on_mob_metabolize(mob/living/M) - . = ..() - if(istype(M)) - M.next_move_modifier *= 0.5 - to_chat(M, "You feel an intense surge of energy rushing through your veins.") - -/datum/reagent/syndicateadrenals/on_mob_end_metabolize(mob/living/M) - . = ..() - if(istype(M)) - M.next_move_modifier *= 2 - to_chat(M, "You feel as though the world around you is going faster.") - -/datum/reagent/syndicateadrenals/overdose_start(mob/living/M) - to_chat(M, "You feel an intense pain in your chest...") - return - -/datum/reagent/syndicateadrenals/overdose_process(mob/living/M) - if(iscarbon(M)) - var/mob/living/carbon/C = M - if(!C.undergoing_cardiac_arrest()) - C.set_heartattack(TRUE) - return diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index eb93d273a7..837524d49f 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -95,7 +95,7 @@ if(!ImpureTot == 0) //If impure, v.small emp (0.6 or less) ImpureTot *= volume - var/empVol = CLAMP (volume/10, 0, 15) + var/empVol = clamp(volume/10, 0, 15) empulse(T, empVol, ImpureTot/10, 1) my_atom.reagents.clear_reagents() //just in case diff --git a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm index d2a063fd4e..17de8c806d 100644 --- a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm +++ b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm @@ -28,7 +28,7 @@ gender = PLURAL density = 0 layer = ABOVE_NORMAL_TURF_LAYER - icon = 'modular_citadel/icons/obj/genitals/effects.dmi' + icon = 'icons/obj/genitals/effects.dmi' icon_state = "semen1" random_icon_states = list("semen1", "semen2", "semen3", "semen4") @@ -59,7 +59,7 @@ gender = PLURAL density = 0 layer = ABOVE_NORMAL_TURF_LAYER - icon = 'modular_citadel/icons/obj/genitals/effects.dmi' + icon = 'icons/obj/genitals/effects.dmi' icon_state = "fem1" random_icon_states = list("fem1", "fem2", "fem3", "fem4") blood_state = null @@ -92,8 +92,7 @@ /datum/reagent/drug/aphrodisiac name = "Crocin" description = "Naturally found in the crocus and gardenia flowers, this drug acts as a natural and safe aphrodisiac." - taste_description = "strawberry roofies" - taste_mult = 2 //Hide the roofies in stronger flavors + taste_description = "strawberries" color = "#FFADFF"//PINK, rgb(255, 173, 255) can_synth = FALSE diff --git a/modular_citadel/icons/mob/inhands/stunsword_left.dmi b/modular_citadel/icons/mob/inhands/stunsword_left.dmi index 0ecc02d31a..02dfe2b915 100644 Binary files a/modular_citadel/icons/mob/inhands/stunsword_left.dmi and b/modular_citadel/icons/mob/inhands/stunsword_left.dmi differ diff --git a/modular_citadel/icons/mob/inhands/stunsword_right.dmi b/modular_citadel/icons/mob/inhands/stunsword_right.dmi index 76fa4d57c9..50e76d660b 100644 Binary files a/modular_citadel/icons/mob/inhands/stunsword_right.dmi and b/modular_citadel/icons/mob/inhands/stunsword_right.dmi differ diff --git a/modular_citadel/icons/mob/mam_ears.dmi b/modular_citadel/icons/mob/mam_ears.dmi index a81e6c03b2..a3f09819f2 100644 Binary files a/modular_citadel/icons/mob/mam_ears.dmi and b/modular_citadel/icons/mob/mam_ears.dmi differ diff --git a/modular_citadel/icons/mob/mam_taur.dmi b/modular_citadel/icons/mob/mam_taur.dmi index db1f001fae..3625c293c9 100644 Binary files a/modular_citadel/icons/mob/mam_taur.dmi and b/modular_citadel/icons/mob/mam_taur.dmi differ diff --git a/modular_citadel/icons/obj/food/food.dmi b/modular_citadel/icons/obj/food/food.dmi deleted file mode 100644 index da9a6c365f..0000000000 Binary files a/modular_citadel/icons/obj/food/food.dmi and /dev/null differ diff --git a/modular_citadel/icons/obj/guns/pumpactionblaster.dmi b/modular_citadel/icons/obj/guns/pumpactionblaster.dmi index 363faf3c57..aed4d49956 100644 Binary files a/modular_citadel/icons/obj/guns/pumpactionblaster.dmi and b/modular_citadel/icons/obj/guns/pumpactionblaster.dmi differ diff --git a/modular_citadel/icons/obj/items_and_weapons.dmi b/modular_citadel/icons/obj/items_and_weapons.dmi deleted file mode 100644 index 3b1d894d96..0000000000 Binary files a/modular_citadel/icons/obj/items_and_weapons.dmi and /dev/null differ diff --git a/modular_citadel/icons/obj/objects.dmi b/modular_citadel/icons/obj/objects.dmi deleted file mode 100644 index 55a6867303..0000000000 Binary files a/modular_citadel/icons/obj/objects.dmi and /dev/null differ diff --git a/modular_citadel/icons/obj/stunsword.dmi b/modular_citadel/icons/obj/stunsword.dmi deleted file mode 100644 index bfe4b45cd9..0000000000 Binary files a/modular_citadel/icons/obj/stunsword.dmi and /dev/null differ diff --git a/modular_citadel/interface/skin.dmf b/modular_citadel/interface/skin.dmf index faf583a74b..8130e84f90 100644 --- a/modular_citadel/interface/skin.dmf +++ b/modular_citadel/interface/skin.dmf @@ -98,16 +98,20 @@ window "mainwindow" window "mapwindow" elem "mapwindow" type = MAIN - pos = 0,0 - size = 640x480 + pos = 418,0 + size = 1024x1024 anchor1 = none anchor2 = none + background-color = none saved-params = "pos;size;is-minimized;is-maximized" + statusbar = false is-pane = true + outer-size = 684x617 + inner-size = 662x561 elem "map" type = MAP pos = 0,0 - size = 640x480 + size = 1024x1024 anchor1 = 0,0 anchor2 = 100,100 font-family = "Arial" @@ -115,6 +119,7 @@ window "mapwindow" is-default = true saved-params = "icon-size" zoom-mode = distort + style = ".center { text-align: center; }\n.maptext { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; }\n.command_headset { font-weight: bold;\tfont-size: 8px; } .small { font-size: 6px; }\n.big { font-size: 8px; }\n.reallybig { font-size: 8px; }\n.extremelybig { font-size: 8px; }\n.greentext { color: #00ff00; font-size: 7px; }\n.redtext { color: #ff0000; font-size: 7px; }\n.clown { color: #ff69bf; font-size: 7px; font-weight: bold; }\n.his_grace { color: #15d512; }\n.hypnophrase { color: #0d0d0d; font-weight: bold; }\n.yell { font-weight: bold; }\n.italics { font-size: 6px; }" window "infowindow" elem "infowindow" @@ -200,7 +205,7 @@ window "infowindow" anchor2 = 97,0 font-size = 8 text-color = #e0e0e0 - background-color = #A92c2c + background-color = #a92c2c saved-params = "is-checked" text = "Report Issue" command = "report-issue" diff --git a/sound/effects/gravhit.ogg b/sound/effects/gravhit.ogg new file mode 100644 index 0000000000..524ddf733f Binary files /dev/null and b/sound/effects/gravhit.ogg differ diff --git a/sound/voice/medbot/owo.ogg b/sound/voice/medbot/owo.ogg new file mode 100644 index 0000000000..0fdaa9d483 Binary files /dev/null and b/sound/voice/medbot/owo.ogg differ diff --git a/strings/tips.txt b/strings/tips.txt index f396b3f542..c8f233bb1a 100644 --- a/strings/tips.txt +++ b/strings/tips.txt @@ -63,6 +63,7 @@ As a Roboticist, you can reset a cyborg's module by cutting and mending the rese As a Roboticist, you can greatly help out Shaft Miners by building a Firefighter APLU equipped with a hydraulic clamp and plasma cutter. The mech is ash storm proof and can even walk across lava! As a Roboticist, you can augment people with cyborg limbs. Augmented limbs can easily be repaired with cables and welders. As a Roboticist, you can use your printer that is linked to the ore silo to teleport mats into your work place! +As a Roboticist, you can upgrade cleanbots with adv mops and brooms to make them faster and better! As the AI, you can click on people's names to look at them. This only works if there are cameras that can see them. As the AI, you can quickly open and close doors by holding shift while clicking them, bolt them when holding ctrl, and even shock them while holding alt. As the AI, you can take pictures with your camera and upload them to newscasters. diff --git a/strings/traumas.json b/strings/traumas.json index 8d1e9537ef..833c786b75 100644 --- a/strings/traumas.json +++ b/strings/traumas.json @@ -129,7 +129,8 @@ "@pick(semicolon)*nya", "@pick(semicolon)*awoo", "@pick(semicolon)*merp", - "@pick(semicolon)*weh" + "@pick(semicolon)*weh", + "@pick(semicolon)My balls finally feel full, again." ], "mutations": [ diff --git a/tgstation.dme b/tgstation.dme index e5d8aa29e7..c1631c9ee8 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -17,7 +17,6 @@ #include "_maps\_basemap.dm" #include "code\_compile_options.dm" #include "code\world.dm" -#include "code\__DEFINES\__513_compatibility.dm" #include "code\__DEFINES\_globals.dm" #include "code\__DEFINES\_protect.dm" #include "code\__DEFINES\_tick.dm" @@ -97,6 +96,7 @@ #include "code\__DEFINES\rust_g.config.dm" #include "code\__DEFINES\rust_g.dm" #include "code\__DEFINES\say.dm" +#include "code\__DEFINES\security_levels.dm" #include "code\__DEFINES\shuttles.dm" #include "code\__DEFINES\sight.dm" #include "code\__DEFINES\sound.dm" @@ -124,6 +124,13 @@ #include "code\__DEFINES\dcs\helpers.dm" #include "code\__DEFINES\dcs\signals.dm" #include "code\__DEFINES\flags\shields.dm" +#include "code\__DEFINES\mapping\maploader.dm" +#include "code\__DEFINES\material\worth.dm" +#include "code\__DEFINES\misc\return_values.dm" +#include "code\__DEFINES\mobs\slowdowns.dm" +#include "code\__DEFINES\research\stock_parts.dm" +#include "code\__DEFINES\skills\defines.dm" +#include "code\__DEFINES\skills\helpers.dm" #include "code\__HELPERS\_cit_helpers.dm" #include "code\__HELPERS\_lists.dm" #include "code\__HELPERS\_logging.dm" @@ -176,6 +183,7 @@ #include "code\_globalvars\logging.dm" #include "code\_globalvars\misc.dm" #include "code\_globalvars\regexes.dm" +#include "code\_globalvars\traits.dm" #include "code\_globalvars\lists\flavor_misc.dm" #include "code\_globalvars\lists\maintenance_loot.dm" #include "code\_globalvars\lists\mapping.dm" @@ -331,6 +339,7 @@ #include "code\datums\beam.dm" #include "code\datums\browser.dm" #include "code\datums\callback.dm" +#include "code\datums\chatmessage.dm" #include "code\datums\cinematic.dm" #include "code\datums\dash_weapon.dm" #include "code\datums\datacore.dm" @@ -345,7 +354,6 @@ #include "code\datums\forced_movement.dm" #include "code\datums\holocall.dm" #include "code\datums\hud.dm" -#include "code\datums\map_config.dm" #include "code\datums\mind.dm" #include "code\datums\mutable_appearance.dm" #include "code\datums\numbered_display.dm" @@ -390,6 +398,7 @@ #include "code\datums\components\explodable.dm" #include "code\datums\components\footstep.dm" #include "code\datums\components\forced_gravity.dm" +#include "code\datums\components\identification.dm" #include "code\datums\components\igniter.dm" #include "code\datums\components\infective.dm" #include "code\datums\components\jousting.dm" @@ -411,6 +420,7 @@ #include "code\datums\components\remote_materials.dm" #include "code\datums\components\riding.dm" #include "code\datums\components\rotation.dm" +#include "code\datums\components\shielded.dm" #include "code\datums\components\shrapnel.dm" #include "code\datums\components\shrink.dm" #include "code\datums\components\sizzle.dm" @@ -421,6 +431,7 @@ #include "code\datums\components\stationloving.dm" #include "code\datums\components\summoning.dm" #include "code\datums\components\swarming.dm" +#include "code\datums\components\tackle.dm" #include "code\datums\components\tactical.dm" #include "code\datums\components\thermite.dm" #include "code\datums\components\uplink.dm" @@ -517,7 +528,10 @@ #include "code\datums\elements\ghost_role_eligibility.dm" #include "code\datums\elements\mob_holder.dm" #include "code\datums\elements\polychromic.dm" +#include "code\datums\elements\scavenging.dm" +#include "code\datums\elements\snail_crawl.dm" #include "code\datums\elements\spellcasting.dm" +#include "code\datums\elements\squish.dm" #include "code\datums\elements\swimming.dm" #include "code\datums\elements\sword_point.dm" #include "code\datums\elements\update_icon_blocker.dm" @@ -563,9 +577,15 @@ #include "code\datums\mutations\space_adaptation.dm" #include "code\datums\mutations\speech.dm" #include "code\datums\mutations\telekinesis.dm" +#include "code\datums\ruins\icemoon.dm" #include "code\datums\ruins\lavaland.dm" #include "code\datums\ruins\space.dm" #include "code\datums\ruins\station.dm" +#include "code\datums\skills\_check_skills.dm" +#include "code\datums\skills\_skill.dm" +#include "code\datums\skills\_skill_holder.dm" +#include "code\datums\skills\engineering.dm" +#include "code\datums\skills\medical.dm" #include "code\datums\status_effects\buffs.dm" #include "code\datums\status_effects\debuffs.dm" #include "code\datums\status_effects\gas.dm" @@ -586,7 +606,6 @@ #include "code\datums\wires\airlock.dm" #include "code\datums\wires\apc.dm" #include "code\datums\wires\autolathe.dm" -#include "code\datums\wires\autoylathe.dm" #include "code\datums\wires\emitter.dm" #include "code\datums\wires\explosive.dm" #include "code\datums\wires\microwave.dm" @@ -618,6 +637,7 @@ #include "code\game\area\areas\mining.dm" #include "code\game\area\areas\shuttles.dm" #include "code\game\area\areas\ruins\_ruins.dm" +#include "code\game\area\areas\ruins\icemoon.dm" #include "code\game\area\areas\ruins\lavaland.dm" #include "code\game\area\areas\ruins\space.dm" #include "code\game\area\areas\ruins\templates.dm" @@ -723,7 +743,6 @@ #include "code\game\machinery\syndicatebeacon.dm" #include "code\game\machinery\syndicatebomb.dm" #include "code\game\machinery\teleporter.dm" -#include "code\game\machinery\toylathe.dm" #include "code\game\machinery\transformer.dm" #include "code\game\machinery\turnstile.dm" #include "code\game\machinery\washing_machine.dm" @@ -941,6 +960,7 @@ #include "code\game\objects\items\plushes.dm" #include "code\game\objects\items\pneumaticCannon.dm" #include "code\game\objects\items\powerfist.dm" +#include "code\game\objects\items\puzzle_pieces.dm" #include "code\game\objects\items\RCD.dm" #include "code\game\objects\items\RCL.dm" #include "code\game\objects\items\religion.dm" @@ -976,6 +996,7 @@ #include "code\game\objects\items\devices\dogborg_sleeper.dm" #include "code\game\objects\items\devices\doorCharge.dm" #include "code\game\objects\items\devices\electroadaptive_pseudocircuit.dm" +#include "code\game\objects\items\devices\electrochromatic_kit.dm" #include "code\game\objects\items\devices\flashlight.dm" #include "code\game\objects\items\devices\forcefieldprojector.dm" #include "code\game\objects\items\devices\geiger_counter.dm" @@ -1121,6 +1142,7 @@ #include "code\game\objects\structures\lattice.dm" #include "code\game\objects\structures\life_candle.dm" #include "code\game\objects\structures\loom.dm" +#include "code\game\objects\structures\loot_pile.dm" #include "code\game\objects\structures\manned_turret.dm" #include "code\game\objects\structures\memorial.dm" #include "code\game\objects\structures\mineral_doors.dm" @@ -1178,6 +1200,7 @@ #include "code\game\objects\structures\crates_lockers\crates\large.dm" #include "code\game\objects\structures\crates_lockers\crates\secure.dm" #include "code\game\objects\structures\crates_lockers\crates\wooden.dm" +#include "code\game\objects\structures\icemoon\cave_entrance.dm" #include "code\game\objects\structures\lavaland\necropolis_tendril.dm" #include "code\game\objects\structures\signs\_signs.dm" #include "code\game\objects\structures\signs\signs_departments.dm" @@ -1543,6 +1566,15 @@ #include "code\modules\antagonists\wizard\equipment\soulstone.dm" #include "code\modules\antagonists\wizard\equipment\spellbook.dm" #include "code\modules\antagonists\xeno\xeno.dm" +#include "code\modules\arousal\arousal.dm" +#include "code\modules\arousal\genitals.dm" +#include "code\modules\arousal\genitals_sprite_accessories.dm" +#include "code\modules\arousal\organs\breasts.dm" +#include "code\modules\arousal\organs\penis.dm" +#include "code\modules\arousal\organs\testicles.dm" +#include "code\modules\arousal\organs\vagina.dm" +#include "code\modules\arousal\organs\womb.dm" +#include "code\modules\arousal\toys\dildos.dm" #include "code\modules\assembly\assembly.dm" #include "code\modules\assembly\bomb.dm" #include "code\modules\assembly\doorcontrol.dm" @@ -1737,6 +1769,7 @@ #include "code\modules\clothing\gloves\color.dm" #include "code\modules\clothing\gloves\miscellaneous.dm" #include "code\modules\clothing\gloves\ring.dm" +#include "code\modules\clothing\gloves\tacklers.dm" #include "code\modules\clothing\head\_head.dm" #include "code\modules\clothing\head\beanie.dm" #include "code\modules\clothing\head\cit_hats.dm" @@ -2126,6 +2159,7 @@ #include "code\modules\language\ratvarian.dm" #include "code\modules\language\slime.dm" #include "code\modules\language\swarmer.dm" +#include "code\modules\language\sylvan.dm" #include "code\modules\language\vampiric.dm" #include "code\modules\language\xenocommon.dm" #include "code\modules\library\lib_codex_gigas.dm" @@ -2141,7 +2175,8 @@ #include "code\modules\lighting\lighting_setup.dm" #include "code\modules\lighting\lighting_source.dm" #include "code\modules\lighting\lighting_turf.dm" -#include "code\modules\mapping\dmm_suite.dm" +#include "code\modules\mapping\map_config.dm" +#include "code\modules\mapping\map_orientation_pattern.dm" #include "code\modules\mapping\map_template.dm" #include "code\modules\mapping\minimaps.dm" #include "code\modules\mapping\preloader.dm" @@ -2203,7 +2238,6 @@ #include "code\modules\mob\mob_defines.dm" #include "code\modules\mob\mob_helpers.dm" #include "code\modules\mob\mob_movement.dm" -#include "code\modules\mob\mob_movespeed.dm" #include "code\modules\mob\mob_transformation_simple.dm" #include "code\modules\mob\say.dm" #include "code\modules\mob\say_vr.dm" @@ -2229,9 +2263,9 @@ #include "code\modules\mob\dead\new_player\sprite_accessories\horns.dm" #include "code\modules\mob\dead\new_player\sprite_accessories\ipc_synths.dm" #include "code\modules\mob\dead\new_player\sprite_accessories\legs_and_taurs.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\pines.dm" #include "code\modules\mob\dead\new_player\sprite_accessories\snouts.dm" #include "code\modules\mob\dead\new_player\sprite_accessories\socks.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\spines.dm" #include "code\modules\mob\dead\new_player\sprite_accessories\synthliz.dm" #include "code\modules\mob\dead\new_player\sprite_accessories\tails.dm" #include "code\modules\mob\dead\new_player\sprite_accessories\undershirt.dm" @@ -2524,19 +2558,25 @@ #include "code\modules\mob\living\simple_animal\hostile\megafauna\blood_drunk_miner.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\colossus.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\demonic_frost_miner.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\dragon_vore.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\drake.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\hierophant.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\legion.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\megafauna.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\swarmer.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\wendigo.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\basilisk.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\curse_blob.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goldgrub.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goliath.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\gutlunch.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice_demon.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice_whelp.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\mining_mobs.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\polarbear.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\wolf.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\elite.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\goliath_broodmother.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\herald.dm" @@ -2600,6 +2640,14 @@ #include "code\modules\modular_computers\hardware\printer.dm" #include "code\modules\modular_computers\hardware\recharger.dm" #include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm" +#include "code\modules\movespeed\_movespeed_modifier.dm" +#include "code\modules\movespeed\modifiers\components.dm" +#include "code\modules\movespeed\modifiers\innate.dm" +#include "code\modules\movespeed\modifiers\items.dm" +#include "code\modules\movespeed\modifiers\misc.dm" +#include "code\modules\movespeed\modifiers\mobs.dm" +#include "code\modules\movespeed\modifiers\reagents.dm" +#include "code\modules\movespeed\modifiers\status_effects.dm" #include "code\modules\newscaster\_news.dm" #include "code\modules\newscaster\feed_channel.dm" #include "code\modules\newscaster\feed_comment.dm" @@ -2971,6 +3019,7 @@ #include "code\modules\research\nanites\extra_settings\type.dm" #include "code\modules\research\nanites\nanite_programs\buffing.dm" #include "code\modules\research\nanites\nanite_programs\healing.dm" +#include "code\modules\research\nanites\nanite_programs\protocols.dm" #include "code\modules\research\nanites\nanite_programs\rogue.dm" #include "code\modules\research\nanites\nanite_programs\sensor.dm" #include "code\modules\research\nanites\nanite_programs\suppression.dm" @@ -2979,7 +3028,20 @@ #include "code\modules\research\techweb\__techweb_helpers.dm" #include "code\modules\research\techweb\_techweb.dm" #include "code\modules\research\techweb\_techweb_node.dm" -#include "code\modules\research\techweb\all_nodes.dm" +#include "code\modules\research\techweb\nodes\alien_nodes.dm" +#include "code\modules\research\techweb\nodes\biotech_nodes.dm" +#include "code\modules\research\techweb\nodes\bluespace_nodes.dm" +#include "code\modules\research\techweb\nodes\computer_hud_nodes.dm" +#include "code\modules\research\techweb\nodes\engineering_nodes.dm" +#include "code\modules\research\techweb\nodes\export_nodes.dm" +#include "code\modules\research\techweb\nodes\mecha_nodes.dm" +#include "code\modules\research\techweb\nodes\medical_nodes.dm" +#include "code\modules\research\techweb\nodes\misc_nodes.dm" +#include "code\modules\research\techweb\nodes\nanites_nodes.dm" +#include "code\modules\research\techweb\nodes\robotics_nodes.dm" +#include "code\modules\research\techweb\nodes\syndicate_nodes.dm" +#include "code\modules\research\techweb\nodes\tools_nodes.dm" +#include "code\modules\research\techweb\nodes\weaponry_nodes.dm" #include "code\modules\research\xenobiology\xenobio_camera.dm" #include "code\modules\research\xenobiology\xenobiology.dm" #include "code\modules\research\xenobiology\crossbreeding\__corecross.dm" @@ -3000,6 +3062,8 @@ #include "code\modules\research\xenobiology\crossbreeding\selfsustaining.dm" #include "code\modules\research\xenobiology\crossbreeding\stabilized.dm" #include "code\modules\ruins\lavaland_ruin_code.dm" +#include "code\modules\ruins\icemoonruin_code\hotsprings.dm" +#include "code\modules\ruins\icemoonruin_code\library.dm" #include "code\modules\ruins\lavalandruin_code\alien_nest.dm" #include "code\modules\ruins\lavalandruin_code\biodome_clown_planet.dm" #include "code\modules\ruins\lavalandruin_code\pizzaparty.dm" @@ -3217,7 +3281,7 @@ #include "code\modules\vending\clothesmate.dm" #include "code\modules\vending\coffee.dm" #include "code\modules\vending\cola.dm" -#include "code\modules\vending\drinnerware.dm" +#include "code\modules\vending\dinnerware.dm" #include "code\modules\vending\engineering.dm" #include "code\modules\vending\engivend.dm" #include "code\modules\vending\games.dm" @@ -3273,15 +3337,6 @@ #include "modular_citadel\code\modules\admin\chat_commands.dm" #include "modular_citadel\code\modules\admin\holder2.dm" #include "modular_citadel\code\modules\admin\secrets.dm" -#include "modular_citadel\code\modules\arousal\arousal.dm" -#include "modular_citadel\code\modules\arousal\genitals.dm" -#include "modular_citadel\code\modules\arousal\genitals_sprite_accessories.dm" -#include "modular_citadel\code\modules\arousal\organs\breasts.dm" -#include "modular_citadel\code\modules\arousal\organs\penis.dm" -#include "modular_citadel\code\modules\arousal\organs\testicles.dm" -#include "modular_citadel\code\modules\arousal\organs\vagina.dm" -#include "modular_citadel\code\modules\arousal\organs\womb.dm" -#include "modular_citadel\code\modules\arousal\toys\dildos.dm" #include "modular_citadel\code\modules\client\client_defines.dm" #include "modular_citadel\code\modules\client\client_procs.dm" #include "modular_citadel\code\modules\client\preferences.dm" @@ -3347,7 +3402,6 @@ #include "modular_citadel\code\modules\reagents\chemistry\reagents\fermi_reagents.dm" #include "modular_citadel\code\modules\reagents\chemistry\reagents\healing.dm" #include "modular_citadel\code\modules\reagents\chemistry\reagents\MKUltra.dm" -#include "modular_citadel\code\modules\reagents\chemistry\reagents\other_reagents.dm" #include "modular_citadel\code\modules\reagents\chemistry\reagents\SDGF.dm" #include "modular_citadel\code\modules\reagents\chemistry\recipes\fermi.dm" #include "modular_citadel\code\modules\reagents\objects\clothes.dm" diff --git a/tgui-next/packages/tgui/interfaces/Vending.js b/tgui-next/packages/tgui/interfaces/Vending.js new file mode 100644 index 0000000000..85f6796230 --- /dev/null +++ b/tgui-next/packages/tgui/interfaces/Vending.js @@ -0,0 +1,106 @@ +import { Fragment } from 'inferno'; +import { act } from '../byond'; +import { Section, Box, Button, Table } from '../components'; +import { classes } from 'common/react'; + +export const Vending = props => { + const { state } = props; + const { config, data } = state; + const { ref } = config; + let inventory; + let custom = false; + const onstation = true; + if (data.extended_inventory && (data.coin || data.bill)) { + inventory = [ + ...data.product_records, + ...data.hidden_records, + ...data.coin_records, + ]; + } else if (data.extended_inventory) { + inventory = [ + ...data.product_records, + ...data.hidden_records, + ]; + } else if (data.coin || data.bill) { + inventory = [ + ...data.product_records, + ...data.coin_records, + ]; + } else { + inventory = [ + ...data.product_records, + ]; + } + return ( + + {data.coin && ( +
    +
    + )} + {data.bill && ( +
    +
    + )} +
    + + {inventory.map((product => { + return ( + + + {product.base64 ? ( + + ) : ( + + )} + {product.name} + + + + {data.stock[product.name]} in stock + + + + {custom && ( +
    +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/LanguageMenu.js b/tgui/packages/tgui/interfaces/LanguageMenu.js index 80e0168c42..79249fd1f5 100644 --- a/tgui/packages/tgui/interfaces/LanguageMenu.js +++ b/tgui/packages/tgui/interfaces/LanguageMenu.js @@ -91,7 +91,9 @@ export const LanguageMenu = (props, context) => { {' '} Key: ,{language.key} {' '} - {!!language.shadow && '(gained from mob)'} + {language.can_understand + ? 'Can understand.' + : 'Cannot understand.'} {' '} {language.can_speak ? 'Can speak.' diff --git a/tools/mapmerge2/requirements.txt b/tools/mapmerge2/requirements.txt index d24cb40dcc..41ddc96c17 100644 --- a/tools/mapmerge2/requirements.txt +++ b/tools/mapmerge2/requirements.txt @@ -1,3 +1,3 @@ -pygit2==0.27.2 +pygit2==1.0.1 bidict==0.13.1 -Pillow==6.2.0 +Pillow==7.0.0