diff --git a/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm b/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm new file mode 100644 index 00000000000..3feac9757b9 --- /dev/null +++ b/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm @@ -0,0 +1,11670 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"an" = ( +/mob/living/simple_animal/hostile/malf_drone, +/turf/space, +/area/space) +"ao" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; + name = "LETHAL TURRETS"; + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/porta_turret/ai_turret{ + check_synth = 1; + lethal = 1; + faction = "malf_drone"; + ailock = 1; + check_borgs = 1 + }, +/obj/effect/turf_decal/box/white, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"ax" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/space, +/area/space/nearstation) +"aN" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/vacuum{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/mob/living/simple_animal/hostile/malf_drone, +/obj/effect/spawner/random_spawners/cobweb_left_frequent, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"bb" = ( +/obj/machinery/teleport/hub, +/obj/effect/turf_decal/delivery, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"bE" = ( +/obj/machinery/light, +/turf/space, +/area/ruin/space/telecomms) +"bI" = ( +/obj/structure/window/plasmareinforced{ + dir = 8 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"bJ" = ( +/obj/effect/abstract/loot_trap, +/turf/simulated/floor/bluegrid{ + icon_state = "dark"; + name = "Mainframe Floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"bO" = ( +/obj/machinery/mech_bay_recharge_port{ + dir = 1 + }, +/turf/simulated/floor/bluegrid{ + icon_state = "dark"; + name = "Mainframe Floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"bP" = ( +/obj/effect/spawner/lootdrop/telecomms_core_table, +/obj/machinery/ai_slipper, +/obj/structure/table/glass/reinforced/plastitanium, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "vault"; + name = "Mainframe floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"bR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating/airless, +/area/space/nearstation) +"ca" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"cj" = ( +/obj/machinery/light/small, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"cz" = ( +/obj/machinery/floodlight, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "vault"; + name = "Mainframe floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"cH" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + req_access_txt = "0" + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"cJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"dn" = ( +/obj/machinery/computer/nonfunctional{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "vault"; + name = "Mainframe floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"du" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"dv" = ( +/obj/machinery/atmospherics/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"dB" = ( +/obj/machinery/power/smes{ + charge = 2.5e+006; + input_attempt = 1; + input_level = 200000; + inputting = 1 + }, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"dD" = ( +/obj/structure/closet/crate, +/obj/item/multitool, +/obj/machinery/camera{ + c_tag = "Telecomms Entrance South"; + dir = 1; + network = list("Telecomms") + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"dR" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc/directional/east{ + malfhack = 1; + emp_proof = 1; + hacked_by_ruin_AI = 1 + }, +/obj/structure/environmental_storytelling_holopad/control_room, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"eb" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc/directional/north{ + malfhack = 1; + hacked_by_ruin_AI = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"ei" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"es" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/obj/machinery/status_display{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"eE" = ( +/obj/machinery/mecha_part_fabricator, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "vault"; + name = "Mainframe floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"eH" = ( +/obj/structure/sign/securearea, +/turf/simulated/wall/r_wall, +/area/ruin/space/telecomms/computer) +"eJ" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; + name = "LETHAL TURRETS"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"eR" = ( +/obj/structure/filingcabinet, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"fa" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) +"fc" = ( +/obj/machinery/constructable_frame/machine_frame, +/turf/simulated/floor/bluegrid{ + icon_state = "dark"; + name = "Mainframe Floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"fq" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"fs" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/space, +/area/space/nearstation) +"fv" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/unary/tank/air{ + dir = 8 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"gg" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11; + level = 1 + }, +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) +"gi" = ( +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"gm" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"gr" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"gv" = ( +/obj/effect/spawner/random_spawners/fungus_maybe, +/turf/simulated/wall/r_wall, +/area/ruin/space/telecomms/computer) +"gG" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/shieldwallgen/telecomms, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "vault"; + name = "Mainframe floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"gJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/hatch{ + name = "Telecoms Satellite"; + req_access_txt = "61" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + req_access_txt = "0" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"gR" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "station intercom (General)"; + pixel_x = 29; + pixel_y = 0 + }, +/obj/effect/spawner/lootdrop/maintenance/three, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms) +"hq" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/space, +/area/space/nearstation) +"hU" = ( +/obj/machinery/computer/teleporter, +/obj/effect/turf_decal/delivery, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"ia" = ( +/obj/effect/spawner/random_spawners/telecomms_emp_loot, +/turf/simulated/floor/engine, +/area/ruin/space/telecomms/computer) +"ik" = ( +/turf/simulated/wall/r_wall, +/area/space/nearstation) +"il" = ( +/turf/simulated/floor/bluegrid{ + icon_state = "dark"; + name = "Mainframe Floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"iy" = ( +/obj/machinery/firealarm/directional/east, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"iD" = ( +/turf/simulated/wall/indestructible/riveted, +/area/space/nearstation) +"iE" = ( +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"iR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/wall/indestructible/riveted, +/area/ruin/space/telecomms/computer) +"jo" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"kl" = ( +/obj/machinery/computer/nonfunctional{ + dir = 1 + }, +/turf/simulated/floor/engine, +/area/ruin/space/telecomms/computer) +"kr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/catwalk/airless, +/area/ruin/space/telecomms/powercontrol) +"ky" = ( +/obj/machinery/door/airlock/hatch{ + name = "Telecoms Power Control"; + req_access_txt = "61" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/tele) +"kA" = ( +/obj/machinery/porta_turret/ai_turret/disable{ + check_synth = 1; + lethal = 1; + scan_range = 9; + faction = "malf_drone"; + ailock = 1; + check_borgs = 1 + }, +/obj/effect/turf_decal/box/white, +/obj/effect/abstract/cheese_trap, +/turf/simulated/floor/plating/airless, +/area/ruin/space/telecomms) +"kT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"kU" = ( +/obj/structure/closet/malf/suits, +/obj/effect/spawner/random_spawners/cobweb_left_frequent, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"kV" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"li" = ( +/obj/machinery/power/solar, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/simulated/floor/plasteel/airless{ + icon_state = "solarpanel" + }, +/area/space/nearstation) +"lo" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice, +/obj/machinery/light, +/turf/space, +/area/ruin/space/telecomms) +"lp" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"lr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/spawner/random_spawners/oil_often, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"lB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"lH" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 5 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"lW" = ( +/obj/structure/lattice, +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating/airless, +/area/space/nearstation) +"mb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/closet/crate, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"mc" = ( +/obj/machinery/porta_turret/ai_turret/disable{ + check_synth = 1; + lethal = 1; + scan_range = 12; + faction = "malf_drone"; + initial_eprojectile = /obj/item/projectile/beam/laser/ai_turret/heavylaser; + ailock = 1; + check_borgs = 1 + }, +/obj/effect/turf_decal/box/white, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"mh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"mD" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/bluespace_tap/organic, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms) +"mH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plating/airless, +/area/space/nearstation) +"mN" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance/three, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms) +"mO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/grille, +/turf/simulated/floor/plating/airless, +/area/space/nearstation) +"mZ" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Core Access"; + locked = 1 + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "vault"; + dir = 5 + }, +/area/ruin/space/telecomms/chamber) +"nh" = ( +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/shieldwallgen/telecomms, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "vault"; + name = "Mainframe floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"np" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"nB" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"nD" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"nI" = ( +/obj/machinery/computer/security{ + dir = 4; + network = list("SS13","Research Outpost","Mining Outpost") + }, +/turf/simulated/floor/bluegrid{ + icon_state = "dark"; + name = "Mainframe Floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"nL" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"nQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"nS" = ( +/obj/structure/table, +/obj/machinery/status_display{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/effect/spawner/lootdrop/bluespace_tap/cultural, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms) +"ob" = ( +/obj/effect/spawner/random_spawners/fungus_maybe, +/turf/simulated/wall/indestructible/riveted, +/area/ruin/space/telecomms/computer) +"oe" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"ou" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 4 + }, +/obj/machinery/firealarm/directional/north, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"oz" = ( +/obj/machinery/atmospherics/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"oB" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5; + level = 1 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"oE" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) +"oG" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/effect/spawner/window/reinforced/grilled, +/obj/machinery/door/firedoor/heavy, +/turf/simulated/floor/plating, +/area/ruin/space/telecomms/tele) +"oW" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/effect/spawner/window/reinforced/grilled, +/obj/machinery/door/firedoor/heavy, +/turf/simulated/floor/plating, +/area/ruin/space/telecomms/tele) +"oY" = ( +/obj/machinery/power/solar, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/simulated/floor/plasteel/airless{ + icon_state = "solarpanel" + }, +/area/space/nearstation) +"pa" = ( +/obj/machinery/computer/borgupload, +/turf/simulated/floor/bluegrid{ + icon_state = "dark"; + name = "Mainframe Floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"ph" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/environmental_storytelling_holopad/first_turret_room, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11; + level = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"pE" = ( +/obj/effect/spawner/random_spawners/cobweb_left_frequent, +/obj/effect/spawner/random_spawners/cobweb_right_frequent, +/turf/simulated/floor/engine, +/area/ruin/space/telecomms/computer) +"pS" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/mob/living/simple_animal/hostile/malf_drone, +/turf/space, +/area/space/nearstation) +"pU" = ( +/obj/structure/lattice, +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/plating/airless, +/area/space/nearstation) +"pV" = ( +/obj/item/paper/monitorkey, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"qe" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"qn" = ( +/obj/machinery/porta_turret/ai_turret/disable{ + check_synth = 1; + lethal = 1; + scan_range = 9; + faction = "malf_drone"; + ailock = 1; + check_borgs = 1 + }, +/obj/effect/turf_decal/box/white, +/turf/simulated/floor/plating/airless, +/area/ruin/space/telecomms) +"qo" = ( +/obj/machinery/atmospherics/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"qD" = ( +/obj/effect/spawner/random_spawners/fungus_maybe, +/turf/simulated/wall/r_wall, +/area/ruin/space/telecomms/powercontrol) +"qE" = ( +/obj/structure/environmental_storytelling_holopad/junk_room, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms) +"qF" = ( +/obj/item/storage/toolbox/mechanical, +/obj/machinery/atmospherics/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms) +"qM" = ( +/obj/structure/table, +/obj/machinery/light_switch{ + pixel_y = -28 + }, +/obj/effect/spawner/lootdrop/maintenance/three, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms) +"qO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/environmental_storytelling_holopad/teleporter_room, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"qP" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"rd" = ( +/obj/item/pen/gray, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"rD" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"rL" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"rT" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"sn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"sq" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/unary/vent_pump{ + on = 1 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"sv" = ( +/obj/effect/mob_spawn/human/corpse/scientist, +/turf/simulated/floor/engine, +/area/ruin/space/telecomms/computer) +"sH" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = -32; + pixel_y = 0 + }, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"sM" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/obj/machinery/status_display{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/table, +/obj/machinery/autolathe/trapped, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"sO" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/visible/universal, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"sT" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 4 + }, +/obj/machinery/status_display{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"tm" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/space, +/area/space/nearstation) +"to" = ( +/obj/machinery/porta_turret/ai_turret/disable{ + check_synth = 1; + lethal = 1; + scan_range = 12; + faction = "malf_drone"; + ailock = 1; + check_borgs = 1 + }, +/obj/effect/turf_decal/box/white, +/obj/effect/abstract/cheese_trap, +/turf/simulated/floor/plating/airless, +/area/ruin/space/telecomms) +"tx" = ( +/obj/item/radio/intercom{ + name = "station intercom (General)"; + pixel_x = 29; + pixel_y = 0; + broadcasting = 1 + }, +/obj/machinery/bluespace_beacon, +/obj/structure/window/plasmareinforced{ + dir = 8 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"tz" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc/directional/north{ + malfhack = 1; + hacked_by_ruin_AI = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"tD" = ( +/obj/machinery/atmospherics/unary/vent_pump{ + dir = 1; + external_pressure_bound = 140; + on = 1; + pressure_checks = 0 + }, +/obj/structure/table, +/obj/item/folder/yellow, +/obj/item/folder/yellow{ + pixel_x = 5 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/status_display{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/item/salvage/ruin/nanotrasen{ + pixel_x = -5 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"tF" = ( +/obj/item/radio/intercom{ + name = "station intercom (General)"; + pixel_x = 29; + pixel_y = 0 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"tW" = ( +/obj/machinery/r_n_d/server/upgraded, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "vault"; + name = "Mainframe floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"tY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 9 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"uj" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + level = 1 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"ul" = ( +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"um" = ( +/obj/structure/dispenser, +/turf/simulated/floor/bluegrid{ + icon_state = "dark"; + name = "Mainframe Floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"ux" = ( +/turf/simulated/wall/indestructible/riveted, +/area/ruin/space/telecomms/computer) +"uF" = ( +/obj/machinery/economy/vending/cola, +/obj/effect/spawner/random_spawners/cobweb_right_frequent, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"uM" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/telecomms/foyer) +"uT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/catwalk/airless, +/area/ruin/space/telecomms/powercontrol) +"vd" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"ve" = ( +/obj/machinery/status_display{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"vp" = ( +/obj/machinery/firealarm/directional/south, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"vu" = ( +/obj/structure/window/plasmareinforced{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"vJ" = ( +/obj/machinery/light_switch{ + pixel_y = -28 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"vK" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"vU" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"vZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11; + level = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"wd" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"wh" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"wA" = ( +/obj/machinery/power/smes{ + charge = 2.5e+006; + input_attempt = 1; + input_level = 200000; + inputting = 1 + }, +/obj/structure/cable, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"wH" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"wW" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/computer/message_monitor, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"wX" = ( +/obj/effect/spawner/random_spawners/fungus_maybe, +/turf/simulated/wall/indestructible/riveted, +/area/ruin/space/telecomms) +"wY" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table, +/obj/structure/sign/electricshock{ + pixel_x = -32 + }, +/obj/item/salvage/ruin/nanotrasen, +/obj/item/stamp, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"xa" = ( +/obj/structure/lattice, +/obj/structure/grille, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/plating/airless, +/area/space/nearstation) +"xj" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1; + level = 1 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"xv" = ( +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"xF" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"xG" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"xL" = ( +/obj/machinery/door/airlock/hatch{ + name = "Telecoms Lounge"; + req_access_txt = "61" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "vault"; + dir = 5 + }, +/area/ruin/space/telecomms/computer) +"yh" = ( +/obj/effect/spawner/window/reinforced/grilled, +/turf/simulated/floor/plating, +/area/ruin/space/telecomms) +"yl" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Telecoms Storage"; + req_access_txt = "61" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "vault"; + dir = 5 + }, +/area/ruin/space/telecomms) +"yo" = ( +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) +"yq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"yr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"yB" = ( +/obj/structure/bed, +/obj/item/bedsheet/orange, +/mob/living/simple_animal/bot/secbot/buzzsky/telecomms, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"yC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/recharge_station/upgraded, +/mob/living/simple_animal/hostile/hivebot/strong/malfborg, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "vault"; + name = "Mainframe floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"yD" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/door/airlock/hatch{ + name = "Telecoms East Wing"; + req_access_txt = "61" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "vault"; + dir = 5 + }, +/area/ruin/space/telecomms/foyer) +"yG" = ( +/obj/effect/spawner/random_spawners/fungus_maybe, +/turf/simulated/wall/r_wall, +/area/space/nearstation) +"yJ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"yN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/airlock/hatch/syndicate/command/trapped, +/obj/item/radio/intercom{ + pixel_y = 25; + broadcasting = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"yU" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"za" = ( +/obj/structure/closet/crate, +/obj/item/clothing/glasses/night, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"zg" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Telecomms Power Control"; + dir = 2; + network = list("Telecomms") + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"zk" = ( +/obj/structure/lattice, +/obj/effect/abstract/cheese_trap, +/turf/space, +/area/space/nearstation) +"zq" = ( +/obj/structure/barricade/sandbags, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"zG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/wall/indestructible/riveted, +/area/ruin/space/telecomms/chamber) +"zM" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM"; + pixel_y = 0 + }, +/turf/simulated/wall/r_wall, +/area/ruin/space/telecomms/chamber) +"zY" = ( +/obj/structure/bed, +/obj/item/bedsheet/green, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"Ac" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + req_access_txt = "0" + }, +/obj/structure/telecomms_trap_tank, +/obj/effect/abstract/cheese_trap, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"Ad" = ( +/obj/structure/table, +/obj/item/flashlight/lamp{ + pixel_y = 10; + pixel_x = -7 + }, +/obj/effect/spawner/random_spawners/cobweb_right_rare, +/obj/item/salvage/ruin/nanotrasen{ + pixel_x = 5 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"Af" = ( +/obj/machinery/computer/nonfunctional{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "vault"; + name = "Mainframe floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"Ai" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/bluespace/trapped, +/obj/machinery/light_switch{ + pixel_y = -28 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"Aj" = ( +/obj/effect/spawner/random_barrier/obstruction, +/turf/simulated/floor/engine, +/area/ruin/space/telecomms/computer) +"Ay" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9; + level = 1 + }, +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) +"Az" = ( +/obj/structure/lattice, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/grille, +/turf/simulated/floor/plating/airless, +/area/space/nearstation) +"AJ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 6; + level = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"AX" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + req_access_txt = "0" + }, +/obj/effect/abstract/bot_trap, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"AY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"Bf" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; + name = "LETHAL TURRETS"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"Bn" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 4 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"Bq" = ( +/obj/effect/spawner/airlock/long/square/e_to_s/telecoms, +/turf/simulated/wall/r_wall, +/area/ruin/space/telecomms/powercontrol) +"BQ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"BT" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8; + initialize_directions = 11; + level = 1 + }, +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) +"BW" = ( +/obj/machinery/atmospherics/unary/tank/air{ + dir = 8 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"BZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"Ct" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 8 + }, +/turf/simulated/floor/bluegrid{ + icon_state = "dark"; + name = "Mainframe Floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"CC" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/closet/emcloset, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"CD" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"CI" = ( +/obj/structure/displaycase/dvoraks_treat, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "vault"; + name = "Mainframe floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"CM" = ( +/obj/item/gps/ruin{ + pixel_x = 32; + gpstag = "STAY_AWAY"; + name = "Exterior Status Terminal"; + desc = "A status terminal for this satellite. All it shows is a bunch of errors, and a message to stay away." + }, +/turf/simulated/floor/catwalk/airless, +/area/ruin/space/telecomms/powercontrol) +"CU" = ( +/turf/space, +/area/space/nearstation) +"Dd" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"De" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/computer/monitor{ + name = "Telecoms Power Monitoring"; + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "bot" + }, +/area/ruin/space/telecomms/tele) +"Dr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"Dy" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/space, +/area/space/nearstation) +"DT" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"DV" = ( +/obj/machinery/status_display{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"Ed" = ( +/turf/space, +/area/space) +"EF" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) +"EK" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/lattice, +/obj/effect/abstract/cheese_trap, +/turf/space, +/area/space/nearstation) +"EM" = ( +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"EO" = ( +/obj/structure/window/reinforced, +/turf/space, +/area/space/nearstation) +"EQ" = ( +/obj/structure/window/reinforced, +/obj/structure/lattice, +/obj/machinery/light{ + dir = 1 + }, +/turf/space, +/area/ruin/space/telecomms) +"ES" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/tracker, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"Ff" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/space, +/area/ruin/space/telecomms) +"Fg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/structure/barricade/sandbags, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"FA" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM"; + pixel_y = 0 + }, +/turf/simulated/wall/indestructible/riveted, +/area/ruin/space/telecomms/chamber) +"FC" = ( +/turf/simulated/wall/indestructible/riveted, +/area/ruin/space/telecomms) +"FG" = ( +/obj/machinery/shieldgen/telecomms, +/turf/simulated/floor/plating/airless, +/area/ruin/space/telecomms) +"FN" = ( +/obj/machinery/computer/nonfunctional{ + dir = 4 + }, +/turf/simulated/floor/bluegrid{ + icon_state = "dark"; + name = "Mainframe Floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"FP" = ( +/obj/item/cigbutt, +/obj/machinery/light, +/obj/machinery/light_switch{ + pixel_y = -28 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"Ga" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/simulated/floor/plating/airless, +/area/space/nearstation) +"Gd" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/space, +/area/space/nearstation) +"Gf" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/space, +/area/ruin/space/telecomms) +"Go" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"Gt" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/status_display{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"Gz" = ( +/obj/machinery/blackbox_recorder, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "vault"; + name = "Mainframe floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"GE" = ( +/obj/machinery/power/solar, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/simulated/floor/plasteel/airless{ + icon_state = "solarpanel" + }, +/area/space/nearstation) +"GH" = ( +/obj/structure/lattice, +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/plating/airless, +/area/space/nearstation) +"GQ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"Hc" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 6; + level = 1 + }, +/obj/machinery/power/apc/directional/north{ + malfhack = 1; + emp_proof = 1; + hacked_by_ruin_AI = 1 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"Ho" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/space, +/area/space/nearstation) +"Hr" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/telecomms/computer) +"Ht" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"Hu" = ( +/obj/structure/window/reinforced, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"Hw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"HK" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"HP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/table, +/obj/machinery/turretid/lethal{ + check_borgs = 1; + faction = "malf_drone"; + check_synth = 1; + locked = 0 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/tele) +"HR" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"HV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"HW" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/closet, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"Ig" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"IE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + req_access_txt = "0" + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"IL" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/door/airlock/hatch{ + name = "Telecoms West Wing"; + req_access_txt = "61" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "vault"; + dir = 5 + }, +/area/ruin/space/telecomms/foyer) +"IU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"Jb" = ( +/obj/effect/spawner/random_spawners/fungus_maybe, +/turf/simulated/wall/r_wall, +/area/ruin/space/telecomms/foyer) +"Jm" = ( +/obj/machinery/computer/sm_monitor{ + dir = 1 + }, +/turf/simulated/floor/bluegrid{ + icon_state = "dark"; + name = "Mainframe Floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"Jo" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"Jz" = ( +/obj/structure/closet/malf/suits, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"JC" = ( +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms) +"JG" = ( +/obj/structure/window/reinforced, +/obj/machinery/light{ + dir = 1 + }, +/turf/space, +/area/ruin/space/telecomms) +"JO" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"JQ" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + req_access_txt = "0" + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"JR" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"Kb" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"Kc" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"Kt" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"Ky" = ( +/obj/machinery/computer/nonfunctional, +/obj/effect/spawner/random_spawners/cobweb_left_rare, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"KH" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/space, +/area/space/nearstation) +"KQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/closet/emcloset, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/reagent_containers/syringe, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"Lh" = ( +/obj/machinery/tcomms/relay/dvorak, +/obj/effect/abstract/loot_trap, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "vault"; + name = "Mainframe floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"Ln" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + req_access_txt = "0" + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"Lp" = ( +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"Lq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/mob/living/silicon/decoy/telecomms, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"LK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"LW" = ( +/obj/machinery/atmospherics/pipe/simple/visible, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"Ma" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11; + level = 1 + }, +/turf/space, +/area/space/nearstation) +"Ml" = ( +/obj/structure/cable, +/obj/machinery/power/terminal{ + dir = 4 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"Mm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"ME" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "vault"; + dir = 5 + }, +/area/ruin/space/telecomms/chamber) +"ML" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + level = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"Nb" = ( +/obj/effect/spawner/random_spawners/oil_often, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"No" = ( +/obj/effect/turf_decal/loading_area, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"Nr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"Nv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"Nz" = ( +/obj/structure/rack, +/obj/item/circuitboard/sleeper/syndicate, +/obj/effect/spawner/random_spawners/telecomms_teleprod_maybe, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms) +"NY" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"Od" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"Oi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"On" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/space, +/area/space/nearstation) +"OS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/turf_decal/box/white, +/obj/structure/telecomms_doomsday_device, +/turf/simulated/floor/bluegrid{ + icon_state = "dark"; + name = "Mainframe Floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"Pe" = ( +/obj/machinery/economy/vending/wallmed/directional/south, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"Pl" = ( +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"Px" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/girder/reinforced, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9; + level = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"PA" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"PL" = ( +/obj/structure/bed, +/obj/item/bedsheet/red, +/mob/living/simple_animal/bot/secbot/buzzsky/telecomms, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"PQ" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/telecomms/tele) +"PU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/hatch{ + name = "Telecoms Satellite"; + req_access_txt = "61" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"PZ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/space, +/area/space/nearstation) +"Qa" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; + name = "LETHAL TURRETS"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/porta_turret/ai_turret{ + check_synth = 1; + lethal = 1; + faction = "malf_drone"; + ailock = 1; + check_borgs = 1 + }, +/obj/effect/turf_decal/box/white, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"Qf" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = -28 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"Qg" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/bluespace_tap/cultural, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms) +"Qr" = ( +/obj/machinery/economy/vending/snack/trapped, +/obj/item/radio/intercom{ + name = "station intercom (General)"; + pixel_x = -28; + pixel_y = 0; + broadcasting = 1 + }, +/obj/structure/environmental_storytelling_holopad/vendor, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"Qx" = ( +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"QN" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) +"QP" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/abstract/cheese_trap, +/turf/space, +/area/space/nearstation) +"QR" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/recharge_station/upgraded, +/mob/living/simple_animal/hostile/hivebot/strong/malfborg, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "vault"; + name = "Mainframe floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"QY" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + req_access_txt = "0" + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"QZ" = ( +/obj/machinery/power/solar, +/obj/structure/cable, +/turf/simulated/floor/plasteel/airless{ + icon_state = "solarpanel" + }, +/area/space/nearstation) +"Ra" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/turf/space, +/area/space/nearstation) +"Rh" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms) +"Ri" = ( +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"Rt" = ( +/obj/machinery/atmospherics/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"Rv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/bluegrid{ + icon_state = "dark"; + name = "Mainframe Floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"Rw" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) +"RB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"RD" = ( +/obj/structure/table, +/obj/item/storage/fancy/cigarettes, +/obj/item/storage/firstaid/ert, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"RW" = ( +/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, +/obj/effect/spawner/lootdrop/maintenance/three, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/matter_bin, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms) +"Sm" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + level = 1 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"Sn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8; + initialize_directions = 11; + level = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"Sr" = ( +/obj/machinery/telepad, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "vault"; + name = "Mainframe floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"Sv" = ( +/obj/structure/lattice, +/obj/structure/grille, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/plating/airless, +/area/space/nearstation) +"SA" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/telecomms/powercontrol) +"SH" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"SO" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/space, +/area/space/nearstation) +"Ta" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"To" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/telecomms/chamber) +"Tw" = ( +/obj/machinery/computer/telescience{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "vault"; + name = "Mainframe floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"TL" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/catwalk/airless, +/area/space/nearstation) +"TU" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 1 + }, +/mob/living/simple_animal/bot/secbot/buzzsky/telecomms, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"TY" = ( +/obj/structure/lattice, +/turf/space, +/area/space) +"Uw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"UD" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + level = 1 + }, +/obj/structure/telecomms_trap_tank, +/obj/effect/abstract/cheese_trap, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"UE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + req_access_txt = "0" + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"UF" = ( +/obj/structure/sign/securearea, +/turf/simulated/wall/r_wall, +/area/ruin/space/telecomms/tele) +"UH" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) +"Vb" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"Vm" = ( +/obj/machinery/light/small, +/obj/machinery/light_switch{ + pixel_y = -28 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"Vn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/wall/r_wall, +/area/space/nearstation) +"Vp" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/space, +/area/space) +"VB" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"VO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"Wc" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/space, +/area/space/nearstation) +"Wp" = ( +/obj/machinery/teleport/station, +/obj/effect/turf_decal/delivery, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/tele) +"Wq" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/space, +/area/ruin/space/telecomms) +"WC" = ( +/obj/machinery/porta_turret/ai_turret/disable{ + check_synth = 1; + lethal = 1; + scan_range = 12; + faction = "malf_drone"; + ailock = 1; + check_borgs = 1 + }, +/obj/effect/turf_decal/box/white, +/turf/simulated/floor/plating/airless, +/area/ruin/space/telecomms) +"WO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/firealarm/directional/north, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"WR" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc/directional/north{ + malfhack = 1; + emp_proof = 1; + hacked_by_ruin_AI = 1 + }, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"Xb" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1; + level = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/foyer) +"Xf" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/space, +/area/space/nearstation) +"XB" = ( +/obj/structure/environmental_storytelling_holopad/core_room, +/turf/simulated/floor/bluegrid{ + icon_state = "dark"; + name = "Mainframe Floor"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) +"XJ" = ( +/obj/effect/spawner/random_spawners/fungus_maybe, +/turf/simulated/wall/r_wall, +/area/ruin/space/telecomms/tele) +"XP" = ( +/turf/template_noop, +/area/template_noop) +"Yr" = ( +/obj/structure/sign/electricshock, +/turf/simulated/wall/r_wall, +/area/ruin/space/telecomms/tele) +"Yw" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/mob/living/simple_animal/bot/secbot/buzzsky/telecomms, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"YA" = ( +/obj/structure/lattice, +/obj/structure/grille, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/plating/airless, +/area/space/nearstation) +"YC" = ( +/obj/structure/grille, +/turf/simulated/floor/plating/airless, +/area/space/nearstation) +"YF" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/abstract/bot_trap, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"YN" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"YO" = ( +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/simulated/floor/plating/airless, +/area/space/nearstation) +"YQ" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/space, +/area/space/nearstation) +"YW" = ( +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/obj/machinery/power/apc/directional/east{ + malfhack = 1; + hacked_by_ruin_AI = 1 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"Zb" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms) +"Zd" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen/blue{ + pixel_x = -3; + pixel_y = 2 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"Zj" = ( +/obj/structure/fans/tiny/invisible, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Core Access" + }, +/turf/simulated/floor/plasteel{ + icon_state = "vault"; + dir = 5 + }, +/area/ruin/space/telecomms/chamber) +"Zl" = ( +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 8 + }, +/obj/machinery/atmospherics/portable/canister/air, +/obj/effect/spawner/random_spawners/cobweb_right_frequent, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"Zu" = ( +/turf/simulated/wall/indestructible/riveted, +/area/ruin/space/telecomms/chamber) +"ZB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/effect/spawner/random_spawners/oil_often, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"ZE" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/telecomms/computer) +"ZQ" = ( +/obj/machinery/power/solar_control/autostart{ + name = "Telecoms Solar Control" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/simulated/floor/catwalk, +/area/ruin/space/telecomms/powercontrol) +"ZV" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 400; + oxygen = 0; + temperature = 80 + }, +/area/ruin/space/telecomms/chamber) + +(1,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(2,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(3,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(4,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(5,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(6,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(7,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(8,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(9,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(10,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(11,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(12,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +yo +Ed +Ed +Ed +Ed +Ed +Ed +Ed +yo +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(13,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +cJ +QZ +Ed +Ed +Ed +oY +cJ +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(14,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +Hw +QZ +Ed +Ed +Ed +oY +Hw +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(15,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +Hw +QZ +Ed +Ed +Ed +oY +Hw +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(16,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +Hw +QZ +Ed +Ed +Ed +oY +Hw +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(17,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +Hw +QZ +Ed +Ed +Ed +oY +Hw +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(18,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +Hw +QZ +yo +yo +yo +oY +Hw +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(19,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +Hw +QZ +Ed +Ed +Ed +oY +Hw +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(20,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +pS +Ed +oY +Hw +QZ +Ed +Ed +Ed +oY +Hw +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(21,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +Hw +QZ +Ed +Ed +Ed +oY +Hw +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(22,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +Hw +QZ +Ed +Ed +Ed +oY +Hw +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(23,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +Hw +QZ +yo +yo +yo +oY +Hw +QZ +Ed +ax +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(24,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +Hw +QZ +Ed +Ed +Ed +oY +Hw +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(25,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +Hw +QZ +Ed +Ed +Ed +oY +Hw +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(26,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +Hw +QZ +Ed +Ed +Ed +oY +Hw +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(27,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +Hw +QZ +Ed +Ed +Ed +oY +Hw +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(28,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +Hw +QZ +Ed +Ed +Ed +oY +Hw +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(29,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +Ed +du +Oi +Oi +Kt +Oi +Oi +sn +Ed +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(30,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +yo +Ed +Ed +Ed +CU +Ig +Ed +Ed +Ed +Ed +Dy +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(31,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +YA +lW +lW +lW +lW +lW +lW +lW +lW +lW +lW +lW +yU +lW +lW +lW +lW +lW +lW +lW +lW +lW +lW +lW +pU +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(32,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +YA +GH +ik +ik +ik +ik +ik +ik +ik +ik +ik +ik +yG +ik +ik +ik +ik +ik +ik +ik +ik +ik +yG +ik +ik +Sv +pU +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(33,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +YA +GH +ik +ik +FC +FC +FC +wX +FC +iD +FC +FC +wX +FC +FC +FC +FC +FC +FC +FC +FC +wX +FC +FC +FC +ik +ik +Sv +lW +Ga +Ga +mh +Lp +Lp +ES +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(34,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +xa +ik +ik +FC +yo +Ff +Ed +Ed +Ed +zk +Ed +Ed +Ed +Ed +FG +Ed +Ed +Ed +Ed +zk +Ed +Ed +Ed +Ff +yo +FC +ik +SA +SA +SA +Bq +uT +Lp +Lp +Ig +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(35,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +xa +ik +FC +yo +yo +yo +yo +yo +yo +to +yo +yo +yo +yo +WC +yo +yo +yo +yo +kA +yo +yo +yo +yo +yo +TY +FC +SA +aN +HV +HV +kr +Oi +Oi +oe +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(36,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +xa +ik +FC +Ed +yo +an +Ed +Ed +Ed +zk +Ed +Ed +Ed +Ed +yo +Ed +Ed +Ed +Ed +zk +Ed +Ed +Ed +an +yo +Ed +FC +SA +jo +Nb +Qx +CM +Lp +Lp +Ig +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(37,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +xa +ik +FC +Vp +YQ +Vp +Ed +Gd +Gd +EK +Gd +Gd +Gd +Gd +QN +Gd +Gd +Gd +Gd +EK +Gd +Gd +CU +Ed +yo +Ed +wX +SA +jo +Qx +SA +SA +SA +SA +mO +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(38,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +xa +ik +FC +Yw +sq +JQ +oE +JR +uj +UD +oB +BQ +Zb +QY +ML +ML +AX +uj +uj +Ac +Ln +ei +Xf +Ed +yo +Ed +FC +SA +AJ +tY +mb +wH +Ml +SA +xa +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(39,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +xa +ik +FC +Hc +LW +sO +Ma +Sm +Wc +QP +Rw +gg +Ay +PZ +Wq +PZ +PZ +PZ +PZ +QP +fs +YN +Xf +Ed +yo +Ed +FC +qD +Bn +lr +Qx +ZB +dB +SA +xa +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(40,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +xa +ik +FC +ou +ca +ca +DT +lB +lo +Zu +Zu +Zu +Zu +Zu +Zu +Zu +Zu +Zu +Zu +Zu +EQ +YN +UH +yo +yo +bE +FC +SA +sT +jo +Qx +PA +KQ +qD +xa +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(41,1,1) = {" +XP +XP +XP +XP +XP +XP +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +ax +Dy +Dy +Dy +Dy +xa +ik +wX +TU +lH +Hu +KH +xF +Xf +Zu +gi +EM +EM +EM +sH +EM +EM +EM +EM +Zu +EO +YN +Xf +Ed +yo +FC +FC +SA +zg +lr +Qx +PA +Ai +SA +xa +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +ax +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +XP +XP +XP +XP +XP +XP +XP +"} +(42,1,1) = {" +XP +XP +XP +XP +XP +XP +Dy +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +yo +Ed +xa +ik +FC +BW +fv +HW +tm +xF +Xf +Zu +ve +bJ +Lh +bJ +Sr +cz +il +tW +EM +Zu +EO +yr +Xf +PQ +oG +PQ +PQ +SA +Zl +ZQ +YW +lp +HP +SA +xa +Dy +Dy +Ed +Ed +Ed +Ed +Ed +CU +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +"} +(43,1,1) = {" +XP +XP +XP +XP +XP +XP +Dy +Ed +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +yo +Ed +xa +ik +FC +FC +On +PZ +EO +vK +Xf +Zu +EM +bJ +bP +bJ +Tw +eE +il +tW +EM +Zu +uM +IL +uM +uM +yJ +BZ +PQ +PQ +PQ +PQ +PQ +ky +Yr +PQ +Sv +pU +Ed +Ed +yo +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +"} +(44,1,1) = {" +XP +XP +XP +XP +XP +XP +Dy +yo +qP +Ht +Ht +Ht +Ht +Ht +Ht +Ht +Ht +Ht +Ht +Ht +Ht +Ht +Ht +Ht +mh +yo +xa +ik +ik +ux +Hr +eH +Hr +yN +Hr +Zu +WR +bJ +bJ +bJ +il +il +il +il +EM +Zu +Qa +nD +eJ +uM +DV +Uw +PQ +PQ +XJ +PQ +iE +LK +vJ +PQ +PQ +Sv +pU +yo +rD +IU +IU +IU +IU +IU +IU +IU +IU +IU +IU +IU +IU +IU +IU +IU +oe +yo +Dy +XP +XP +XP +XP +XP +XP +XP +"} +(45,1,1) = {" +XP +XP +XP +XP +XP +XP +Dy +Ed +li +li +li +li +li +li +li +li +li +li +li +li +li +li +li +li +Ig +Ed +xa +yG +ik +ux +Ky +Pl +Dd +Px +wY +Zu +qe +il +il +Ct +EM +bO +il +il +EM +Zu +eb +nD +Vm +Jb +PQ +Qf +PQ +PQ +PQ +sM +mc +LK +mc +dD +PQ +PQ +Az +Ed +Ig +li +li +li +li +li +li +li +li +li +li +li +li +li +li +li +li +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +"} +(46,1,1) = {" +XP +XP +XP +XP +XP +XP +Dy +Ed +Ed +Ed +Ed +Ed +Ed +yo +Ed +Ed +Ed +Ed +yo +Ed +Ed +Ed +Ed +Ed +Ig +Ed +xa +ik +ik +ux +eR +Pl +dv +np +Pl +Zu +qe +il +fc +nh +EM +nh +um +il +vp +Zu +WO +nD +Ri +uM +xv +Uw +UF +kU +Jz +gm +zq +Fg +zq +iE +hU +PQ +xa +Ed +Ig +Ed +Ed +Ed +Ed +Ed +yo +Ed +Ed +Ed +Ed +yo +Ed +Ed +Ed +Ed +Ed +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +"} +(47,1,1) = {" +XP +XP +XP +XP +XP +XP +Dy +Ed +Ed +an +Ed +Ed +Ed +yo +Ed +Ed +Ed +Ed +yo +Ed +Ed +Ed +Ed +Ed +NY +Oi +gr +ik +ik +ux +tD +xG +Pl +JO +yq +zG +wh +Rv +OS +Nr +Lq +Nv +aa +Rv +nQ +zG +Dr +ph +UE +PU +Sn +cH +gJ +IE +IE +vZ +qO +HK +iE +iE +Wp +XJ +CD +Oi +Go +Ed +Ed +Ed +Ed +Ed +yo +Ed +Ed +Ed +Ed +yo +Ed +Ed +Ed +Ed +Ed +an +Dy +XP +XP +XP +XP +XP +XP +XP +"} +(48,1,1) = {" +XP +XP +XP +XP +XP +XP +Dy +Ed +Ed +Ed +Ed +Ed +Ed +yo +Ed +Ed +Ed +Ed +yo +Ed +Ed +Ed +Ed +Ed +Ig +Ed +xa +ik +ik +ux +Zd +Ta +rd +np +Pl +Zu +EM +il +Jm +gG +EM +gG +pa +il +qe +Zu +Xb +oz +Ri +uM +Rt +Uw +UF +za +iE +Uw +iE +iE +iE +No +bb +PQ +xa +Ed +Ig +Ed +Ed +Ed +Ed +Ed +yo +Ed +Ed +Ed +Ed +yo +Ed +Ed +Ed +Ed +Ed +Ed +ax +XP +XP +XP +XP +XP +XP +XP +"} +(49,1,1) = {" +XP +XP +XP +XP +XP +XP +Dy +Ed +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +Ig +Ed +xa +ik +ik +ux +wW +pV +Pl +dR +Pl +Zu +EM +il +il +nI +EM +FN +il +il +qe +Zu +Gt +GQ +cj +uM +Yr +VO +PQ +XJ +PQ +tz +vu +vu +vu +CC +PQ +PQ +xa +Ed +Ig +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +GE +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +"} +(50,1,1) = {" +XP +XP +XP +XP +XP +XP +Dy +yo +qP +Ht +Ht +Ht +Ht +Ht +Ht +Ht +Ht +Ht +Ht +Ht +Ht +Ht +Ht +Ht +sn +yo +xa +ik +ik +ux +Ad +tF +iy +To +mZ +FA +EM +XB +il +il +il +il +il +il +qe +Zu +ao +nD +Bf +uM +iE +AY +PQ +ik +PQ +PQ +bI +tx +bI +PQ +PQ +YA +GH +yo +du +IU +IU +IU +IU +IU +IU +IU +IU +IU +IU +IU +IU +IU +IU +IU +oe +yo +Dy +XP +XP +XP +XP +XP +XP +XP +"} +(51,1,1) = {" +XP +XP +XP +XP +XP +XP +Dy +Ed +li +li +li +li +li +li +li +li +li +li +li +li +li +li +li +li +yo +Ed +xa +ik +ik +ux +Hr +Hr +Hr +To +ME +Zj +EM +il +Af +il +Gz +CI +il +QR +kT +Zu +uM +yD +uM +uM +HR +De +PQ +ik +YC +PQ +PQ +PQ +XJ +PQ +YA +GH +Ed +Ed +yo +li +li +li +li +li +li +li +li +li +li +li +li +li +li +li +li +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +"} +(52,1,1) = {" +XP +XP +XP +XP +XP +XP +Dy +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +CU +Ed +yo +Ed +xa +ik +iD +pE +sv +ia +kl +To +To +zM +EM +il +dn +il +Gz +Gz +il +yC +rT +Zu +EO +yr +Xf +PQ +oW +PQ +PQ +ik +YA +lW +lW +lW +lW +lW +GH +Dy +Dy +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +"} +(53,1,1) = {" +XP +XP +XP +XP +XP +XP +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +ax +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +xa +ik +ux +Hr +Aj +Hr +Hr +Hr +Hr +Zu +fq +EM +EM +EM +Vb +EM +EM +ZV +wA +Zu +EO +rL +Xf +Ed +yo +FC +FC +ik +xa +Dy +yo +yo +Dy +Dy +Dy +Dy +Dy +yo +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +ax +Dy +Dy +Dy +Dy +Dy +Dy +Dy +XP +XP +XP +XP +XP +XP +XP +"} +(54,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +xa +ik +ux +zY +VB +Qr +qo +wd +gv +Zu +Zu +Zu +Zu +Zu +Zu +Zu +Zu +Zu +Zu +Zu +JG +YN +Xf +Ed +yo +bE +FC +ik +xa +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(55,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +xa +ik +ux +nB +Pl +Pl +SH +Pe +Hr +QN +QN +QN +Ra +BT +fa +Gd +Gd +Gd +Gd +QN +hq +YN +Xf +Ed +yo +Ed +FC +ik +xa +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(56,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +xa +ik +ux +es +Pl +Pl +Kc +RB +xL +YF +nL +nL +vd +Od +xj +QY +QY +QY +QY +QY +QY +vU +Xf +Ed +yo +Ed +wX +ik +xa +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(57,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +xa +ik +ux +Pl +Pl +Pl +Jo +FP +Hr +EF +PZ +PZ +PZ +SO +rL +Ho +PZ +PZ +PZ +On +PZ +PZ +CU +Ed +yo +Ed +FC +ik +xa +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(58,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +xa +ik +ux +PL +Pl +Pl +RD +Kb +Hr +yo +Ed +yh +yh +yh +yl +yh +yh +yh +Ed +yo +Ed +Ed +Ed +an +yo +Ed +FC +ik +xa +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(59,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +xa +ik +ux +uF +Pl +yB +ZE +ul +Hr +WC +yo +yh +RW +Qg +Rh +JC +mD +yh +yo +qn +yo +yo +yo +yo +yo +yo +FC +ik +xa +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(60,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +xa +ik +ux +ux +ob +ux +ux +iR +ux +yo +Gf +yh +JC +JC +qE +qF +mD +yh +Ed +yo +Gf +Ed +Ed +Ed +yo +FC +ik +ik +xa +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(61,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Sv +pU +ik +ik +ik +ik +ik +Vn +ik +FC +wX +FC +Nz +nS +gR +mN +qM +FC +FC +FC +FC +FC +wX +FC +FC +ik +ik +YA +GH +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(62,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Sv +pU +ik +ik +yG +ik +Vn +ik +ik +ik +ik +FC +FC +FC +wX +FC +ik +ik +ik +ik +ik +ik +ik +ik +ik +YA +GH +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(63,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Sv +lW +lW +lW +lW +bR +lW +lW +pU +ik +ik +ik +ik +ik +ik +yG +YA +lW +lW +lW +lW +lW +lW +lW +GH +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(64,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +mH +Dy +Dy +Sv +lW +lW +lW +TL +lW +lW +lW +GH +Dy +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(65,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +YO +Dy +Dy +Ed +yo +Ed +CU +Ig +Ed +Ed +yo +Ed +Dy +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(66,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +yo +rD +Oi +Oi +Mm +Oi +Oi +mh +yo +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(67,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +kV +QZ +Ed +Ed +Ed +oY +kV +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(68,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +kV +QZ +Ed +Ed +Ed +oY +kV +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(69,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +kV +QZ +Ed +Ed +Ed +oY +kV +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(70,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +kV +QZ +Ed +Ed +Ed +oY +kV +QZ +Ed +ax +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(71,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +kV +QZ +Ed +Ed +Ed +oY +kV +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(72,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +kV +QZ +yo +yo +yo +oY +kV +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(73,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +an +oY +kV +QZ +Ed +Ed +Ed +oY +kV +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(74,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +kV +QZ +Ed +Ed +Ed +oY +kV +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(75,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +kV +QZ +Ed +Ed +Ed +oY +kV +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(76,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +kV +QZ +Ed +Ed +Ed +oY +kV +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(77,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +kV +QZ +yo +yo +yo +oY +kV +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(78,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +kV +QZ +Ed +Ed +Ed +oY +kV +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(79,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +kV +QZ +Ed +Ed +Ed +oY +kV +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(80,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +ax +Ed +oY +kV +QZ +Ed +Ed +Ed +oY +kV +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(81,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +kV +QZ +Ed +Ed +Ed +oY +kV +QZ +Ed +ax +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(82,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +oY +Mm +QZ +Ed +Ed +Ed +oY +Mm +QZ +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(83,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Ed +Ed +yo +Ed +Ed +Ed +Ed +Ed +yo +Ed +Ed +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(84,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +Dy +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(85,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(86,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(87,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(88,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(89,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} +(90,1,1) = {" +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +XP +"} diff --git a/code/_onclick/ai_onclick.dm b/code/_onclick/ai_onclick.dm index f5e450ad135..b08604a1300 100644 --- a/code/_onclick/ai_onclick.dm +++ b/code/_onclick/ai_onclick.dm @@ -192,7 +192,7 @@ /obj/machinery/power/apc/AICtrlClick(mob/living/user) // turns off/on APCs. if(stat & BROKEN) return - if(aidisabled) + if(!user.can_remote_apc_interface(src)) to_chat(user, "Unable to interface: Connection refused.") return toggle_breaker(user) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index d879566e467..9c248da9a2c 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -362,6 +362,28 @@ GLOBAL_VAR_INIT(record_id_num, 1001) face_s.Blend(h_marking_s, ICON_OVERLAY) preview_icon.Blend(face_s, ICON_OVERLAY) + //Underwear + var/icon/underwear_standing = new /icon('icons/mob/clothing/underwear.dmi', "nude") + if(H.underwear && H.dna.species.clothing_flags & HAS_UNDERWEAR) + var/datum/sprite_accessory/underwear/U = GLOB.underwear_list[H.underwear] + if(U) + var/u_icon = U.sprite_sheets && (H.dna.species.sprite_sheet_name in U.sprite_sheets) ? U.sprite_sheets[H.dna.species.sprite_sheet_name] : U.icon //Species-fit the undergarment. + underwear_standing.Blend(new /icon(u_icon, "uw_[U.icon_state]_s"), ICON_OVERLAY) + + if(H.undershirt && H.dna.species.clothing_flags & HAS_UNDERSHIRT) + var/datum/sprite_accessory/undershirt/U2 = GLOB.undershirt_list[H.undershirt] + if(U2) + var/u2_icon = U2.sprite_sheets && (H.dna.species.sprite_sheet_name in U2.sprite_sheets) ? U2.sprite_sheets[H.dna.species.sprite_sheet_name] : U2.icon + underwear_standing.Blend(new /icon(u2_icon, "us_[U2.icon_state]_s"), ICON_OVERLAY) + + if(H.socks && H.dna.species.clothing_flags & HAS_SOCKS) + var/datum/sprite_accessory/socks/U3 = GLOB.socks_list[H.socks] + if(U3) + var/u3_icon = U3.sprite_sheets && (H.dna.species.sprite_sheet_name in U3.sprite_sheets) ? U3.sprite_sheets[H.dna.species.sprite_sheet_name] : U3.icon + underwear_standing.Blend(new /icon(u3_icon, "sk_[U3.icon_state]_s"), ICON_OVERLAY) + + if(underwear_standing) + preview_icon.Blend(underwear_standing, ICON_OVERLAY) var/icon/hands_icon = icon(preview_icon) hands_icon.Blend(icon('icons/mob/clothing/masking_helpers.dmi', "l_hand_mask"), ICON_MULTIPLY) @@ -536,6 +558,8 @@ GLOBAL_VAR_INIT(record_id_num, 1001) clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s") clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "swat_gl"), ICON_UNDERLAY) + if("Naked") + clothes_s = null else if(H.mind && (H.mind.assigned_role in get_all_centcom_jobs())) clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s") diff --git a/code/datums/ruins/space_ruins.dm b/code/datums/ruins/space_ruins.dm index 9cd7206d607..a939f952dd2 100644 --- a/code/datums/ruins/space_ruins.dm +++ b/code/datums/ruins/space_ruins.dm @@ -194,6 +194,14 @@ cost = 5 // This is a chonky boy allow_duplicates = FALSE // Absolutely huge, also has its own APC and the area isnt set to allow many +/datum/map_template/ruin/space/malftcommsat + id = "malftcommsat" + suffix = "telecomns_returns.dmm" + name = "D.V.O.R.A.K'S Telecommunications Satellite" + description = "Seems the telecomunication satellite that went dark 4 years ago finally re-appeared on scanners? Strange signals are coming from it." + cost = 5 // Huge. Large. In charge + allow_duplicates = FALSE // One sadistic malfunctioning AI is enough. Also unique apcs. + /datum/map_template/ruin/space/clownmime id = "clownmime" suffix = "clownmime.dmm" diff --git a/code/game/area/areas/ruins/space_areas.dm b/code/game/area/areas/ruins/space_areas.dm index 73cd2a0329b..deec93e41da 100644 --- a/code/game/area/areas/ruins/space_areas.dm +++ b/code/game/area/areas/ruins/space_areas.dm @@ -213,3 +213,30 @@ /area/ruin/space/powered/casino/maints name = "Service Tunnels" + +/// telecomms: Alternative telecomms sat +/area/ruin/space/telecomms + name = "\improper Telecommunications Sat" + icon_state = "tcomms" + tele_proof = TRUE // No patrick, you can not syndicate teleport or hand teleport instantly into or out of this ruin + +/area/ruin/space/telecomms/powercontrol + name = "\improper Telecommunications Power Control" + icon_state = "engine_smes" + +/area/ruin/space/telecomms/tele + name = "\improper Tel3coMMunic@tions-SS-S KILL_Welcoming Room" // If you teleport to it. With a name like that. Thats on you. + icon_state = "teleporter" + tele_proof = FALSE // Oh, right. The teleporter room. The teleporter room for Kuzco, the poison chosen especially to teleport Kuzco, Kuzco's teleporter room. That teleporter room? + +/area/ruin/space/telecomms/foyer + name = "\improper Telecommunications Foyer" + icon_state = "entry" + +/area/ruin/space/telecomms/computer + name = "\improper Telecommunications Control Room" + icon_state = "bridge" + +/area/ruin/space/telecomms/chamber + name = "\improper Telecommunications Central Compartment" + icon_state = "ai_chamber" diff --git a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm index dbac0830d9c..8ef863e2dcb 100644 --- a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm +++ b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm @@ -804,6 +804,11 @@ /mob/living/simple_animal/demon/pulse_demon/mob_has_gravity() return TRUE +/mob/living/simple_animal/demon/pulse_demon/can_remote_apc_interface(obj/machinery/power/apc/ourapc) + if(ourapc.hacked_by_ruin_AI || ourapc.malfai || ourapc.malfhack) + return FALSE + return TRUE + /obj/item/organ/internal/heart/demon/pulse name = "perpetual pacemaker" desc = "It still beats furiously, thousands of bright lights shine within it." diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm index 211400fcef2..a692c8d78e4 100644 --- a/code/game/machinery/computer/law.dm +++ b/code/game/machinery/computer/law.dm @@ -35,8 +35,7 @@ return if(!emagged) //non-emag law change var/obj/item/aiModule/M = O - M.install(src) - return + return M.install(src) apply_emag_laws(user) return @@ -46,7 +45,7 @@ to_chat(user, "No AI selected. Please choose a target before proceeding with upload.") return FALSE var/turf/T = get_turf(current) - if(!atoms_share_level(T, src))//off Z level + if(!atoms_share_level(T, get_turf(src))) // off Z level to_chat(user, "Unable to establish a connection: You're too far away from the target silicon!") return FALSE return TRUE diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 9b96ab09c12..d41d4495f02 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -380,6 +380,22 @@ to_chat(user, "The electronic systems in this door are far too advanced for your primitive hacking peripherals.") return +/// This door is used in the malf AI telecomms ruin. This door starts early access, and will try to crush someone to death who enters it's turf like how an AI door crushes. +/obj/machinery/door/airlock/hatch/syndicate/command/trapped + emergency = TRUE + hackProof = TRUE + aiControlDisabled = AICONTROLDISABLED_ON + safe = FALSE + normal_integrity = 100 // going to get boosted by security level anyway + +/obj/machinery/door/airlock/hatch/syndicate/command/trapped/process() + if(locate(/mob/living) in get_turf(src)) + unlock(TRUE) + if(density) + open() + else + close() + /obj/machinery/door/airlock/hatch/syndicate/vault name = "syndicate vault hatch" req_access_txt = "151" diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index c51c0d66710..db9e46148d8 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -392,6 +392,7 @@ /obj/machinery/shieldwallgen/proc/activate() activated = TRUE START_PROCESSING(SSmachines, src) + update_icon(UPDATE_ICON_STATE) for(var/direction in GLOB.cardinal) INVOKE_ASYNC(src, PROC_REF(try_link_generators), direction) diff --git a/code/game/machinery/tcomms/tcomms_presets.dm b/code/game/machinery/tcomms/tcomms_presets.dm index 647ef13c359..14fa95b6d6c 100644 --- a/code/game/machinery/tcomms/tcomms_presets.dm +++ b/code/game/machinery/tcomms/tcomms_presets.dm @@ -31,6 +31,14 @@ hidden_link = TRUE password_bypass = TRUE +/// DVORAK RELAY +/obj/machinery/tcomms/relay/dvorak + network_id = "DEBUG_RELAY_DO_NOT_REMOVE" // I'll change this if needed to avoid confusion, but if I was trying to sneak into a relay system, well... + autolink_id = "STATION-CORE" + hidden_link = TRUE + password_bypass = TRUE // No one can steal this anyway. + active = TRUE + GLOBAL_VAR(cc_tcomms_relay_uid) /obj/machinery/tcomms/relay/cc/Initialize(mapload) . = ..() diff --git a/code/game/machinery/vendors/vending.dm b/code/game/machinery/vendors/vending.dm index 56b10af653c..4f5603c2567 100644 --- a/code/game/machinery/vendors/vending.dm +++ b/code/game/machinery/vendors/vending.dm @@ -140,6 +140,9 @@ /// The category of this vendor. Used for announcing brand intelligence. var/category = VENDOR_TYPE_GENERIC + /// How often will the vendor tip when you walk by it when aggressive is true? + var/aggressive_tilt_chance = 25 + /obj/machinery/economy/vending/Initialize(mapload) . = ..() var/build_inv = FALSE @@ -176,6 +179,8 @@ power_change() RegisterSignal(src, COMSIG_MOVABLE_UNTILTED, PROC_REF(on_untilt)) RegisterSignal(src, COMSIG_MOVABLE_TRY_UNTILT, PROC_REF(on_try_untilt)) + if(aggressive) + AddComponent(/datum/component/proximity_monitor) /obj/machinery/economy/vending/Destroy() SStgui.close_uis(wires) @@ -414,7 +419,7 @@ if(!aggressive || tilted || !tiltable) return - if(isliving(AM) && prob(25)) + if(isliving(AM) && prob(aggressive_tilt_chance)) AM.visible_message( "[src] suddenly topples over onto [AM]!", "[src] topples over onto you without warning!" diff --git a/code/game/objects/effects/spawners/airlock_spawner.dm b/code/game/objects/effects/spawners/airlock_spawner.dm index 17cc6dae892..cfeea9b4448 100644 --- a/code/game/objects/effects/spawners/airlock_spawner.dm +++ b/code/game/objects/effects/spawners/airlock_spawner.dm @@ -313,6 +313,10 @@ This spawner places pipe leading up to the interior door, you will need to finis tiles_in_x_direction = 3 tiles_in_y_direction = 3 +/obj/effect/spawner/airlock/long/square/e_to_s/telecoms + door_name = "telecoms external access" + door_type = /obj/machinery/door/airlock/external + #undef HALF_X #undef HALF_Y #undef CHAMBER_LONG diff --git a/code/game/objects/items/documents.dm b/code/game/objects/items/documents.dm index dd2c351da2f..3304620db40 100644 --- a/code/game/objects/items/documents.dm +++ b/code/game/objects/items/documents.dm @@ -56,3 +56,13 @@ poison_total -= poison_dose add_attack_logs(src, user, "Picked up [src], the trapped syndicate documents") return ..() + +/obj/item/documents/syndicate/dvorak_blackbox + name = "\improper D.V.O.R.A.K Blackbox Disk" + desc = "This disk contains a full record of all information that passed through D.V.O.R.A.K's systems during its uptime, not to mention what may have gone wrong. NT might be interested in this." + icon = 'icons/obj/module.dmi' + w_class = WEIGHT_CLASS_TINY + item_state = "card-id" + icon_state = "holodisk" + drop_sound = 'sound/items/handling/disk_drop.ogg' + pickup_sound = 'sound/items/handling/disk_pickup.ogg' diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm index 8a1aa92d1c3..113111f1929 100755 --- a/code/game/objects/items/weapons/AI_modules.dm +++ b/code/game/objects/items/weapons/AI_modules.dm @@ -64,6 +64,7 @@ AI MODULES to_chat(R, "These are your laws now:") R.show_laws() to_chat(usr, "Upload complete. The AI's laws have been modified.") + return TRUE else if(istype(C, /obj/machinery/computer/borgupload)) var/obj/machinery/computer/borgupload/comp = C diff --git a/code/game/objects/items/weapons/teleprod.dm b/code/game/objects/items/weapons/teleprod.dm index b94494a1185..c659c3e3d59 100644 --- a/code/game/objects/items/weapons/teleprod.dm +++ b/code/game/objects/items/weapons/teleprod.dm @@ -16,5 +16,5 @@ "You accidentally hit yourself with [src]!") deductcharge(hitcost) do_teleport(user, get_turf(user), 50)//honk honk - else if(iscarbon(M) && !M.anchored) + else if(isliving(M) && !M.anchored) do_teleport(M, get_turf(M), 15) diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index f367879cae3..11409c535f1 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -26,6 +26,8 @@ var/list/start_showpieces = list() /// A flavor message to show with this item. var/trophy_message = "" + /// Do we want to force alarms even if off station? + var/force_alarm = FALSE /obj/structure/displaycase/Initialize(mapload) . = ..() @@ -107,7 +109,7 @@ /obj/structure/displaycase/proc/trigger_alarm() set waitfor = FALSE - if(alert && is_station_contact(z)) + if(alert && (is_station_contact(z) || force_alarm)) var/area/alarmed = get_area(src) alarmed.burglaralert(src) visible_message("The burglar alarm goes off!") diff --git a/code/modules/awaymissions/mission_code/ruins/telecomns.dm b/code/modules/awaymissions/mission_code/ruins/telecomns.dm new file mode 100644 index 00000000000..b5fdd54a6bc --- /dev/null +++ b/code/modules/awaymissions/mission_code/ruins/telecomns.dm @@ -0,0 +1,528 @@ +// stuff for the telecomms sat (telecomms_returns.dmm) + +GLOBAL_LIST_EMPTY(telecomms_bots) +GLOBAL_LIST_EMPTY(telecomms_doomsday_device) +GLOBAL_LIST_EMPTY(telecomms_trap_tank) + +/mob/living/simple_animal/bot/secbot/buzzsky/telecomms + name = "Soldier Shocksy" + desc = "It's Soldier Shocksy! Rusted and falling apart, this bot seems quite intent in beating you up." + faction = list("malf_drone") + +/mob/living/simple_animal/bot/secbot/buzzsky/telecomms/Initialize(mapload) + . = ..() + GLOB.telecomms_bots += src + +/mob/living/simple_animal/bot/secbot/buzzsky/telecomms/Destroy() + GLOB.telecomms_bots -= src + return ..() + +/obj/effect/abstract/bot_trap + name = "evil bot trap to make explorers hate you" + +/obj/effect/abstract/bot_trap/Crossed(atom/movable/AM, oldloc) + . = ..() + if(isrobot(AM) || ishuman(AM)) + var/turf/T = get_turf(src) + for(var/mob/living/simple_animal/bot/B in GLOB.telecomms_bots) + B.call_bot(null, T, FALSE) + qdel(src) + +// This effect surrounds the table with loot in the telecomms core room. If you take from this table, dvorak will be pissed if you try to leave. +/obj/effect/abstract/loot_trap + name = "table surrounding loot trap" + +/obj/effect/abstract/loot_trap/Crossed(atom/movable/AM, oldloc) + . = ..() + if(isrobot(AM) || ishuman(AM)) + var/turf/T = get_turf(src) + for(var/obj/structure/telecomms_doomsday_device/DD in GLOB.telecomms_doomsday_device) + DD.thief = TRUE + break + for(var/obj/effect/abstract/loot_trap/LT in range(3, T)) + qdel(LT) + qdel(src) + +// If you stole loot, without killing dvorak, he starts doomsday +/obj/effect/abstract/cheese_trap + name = "cheese preventer" + +/obj/effect/abstract/cheese_trap/Crossed(atom/movable/AM, oldloc) + . = ..() + if(isrobot(AM) || ishuman(AM)) + for(var/obj/structure/telecomms_doomsday_device/DD in GLOB.telecomms_doomsday_device) + if(DD.thief) + DD.start_the_party(TRUE) + return + +/obj/machinery/autolathe/trapped + name = "recharger" + desc = "A charging dock for energy based weaponry. Did it just-" + icon_state = "autolathe_trap" + //Has someone put an item in the autolathe, breaking the hologram? + var/disguise_broken = FALSE + +/obj/machinery/autolathe/trapped/Initialize() + . = ..() + RegisterSignal(src, COMSIG_PARENT_ATTACKBY, PROC_REF(material_container_shenanigins)) + +/obj/machinery/autolathe/trapped/proc/material_container_shenanigins(datum/source, obj/item/attacker, mob/user) + if(!disguise_broken) + to_chat(user, "As you stick [attacker] into the recharger, it sparks and flashes blue. Wait a minute, this isn't a recharger!") + name = "modified autolathe" + desc = "An autolathe modified with holopad parts, to make it look like a harmless weapon recharger!" + do_sparks(3, 1, src) + icon_state = "autolathe" + disguise_broken = TRUE + +/obj/machinery/shieldgen/telecomms + name = "overclocked shield generator" + desc = "These shield generators seem to have been rewired a lot." + anchored = TRUE + shield_range = 6 + req_access = list(ACCESS_ENGINE) + +/obj/machinery/shieldwallgen/telecomms + icon_state = "Shield_Gen +a" // should avoid misplacing with this + anchored = TRUE + activated = TRUE + req_access = list(ACCESS_TCOMSAT) + +/obj/machinery/shieldwallgen/telecomms/Initialize(mapload) + . = ..() + addtimer(CALLBACK(src, PROC_REF(activate)), 5 MINUTES) // Let the bloody powernet start up, no one will get in this ruin in the first 5 minutes of the map template *initializing*, much less roundstart + +/mob/living/silicon/decoy/telecomms + faction = list("malf_drone") + bubble_icon = "swarmer" + name = "D.V.O.R.A.K" + desc = "A Downloadable and Versatile, fully Overclocked and Reactive Ai Kernel." + icon_state = "ai-triumvirate-malf" + universal_speak = TRUE + universal_understand = TRUE + var/has_died = FALSE // fucking decoy silicons are weird. + +/mob/living/silicon/decoy/telecomms/death(gibbed) + if(has_died) + return ..() + has_died = TRUE + for(var/obj/structure/telecomms_doomsday_device/D in GLOB.telecomms_doomsday_device) + D.start_the_party() + break + new /obj/item/documents/syndicate/dvorak_blackbox(get_turf(src)) + if(prob(50)) + if(prob(80)) + new /obj/item/surveillance_upgrade(get_turf(src)) + else // 10% chance + new /obj/item/malf_upgrade(get_turf(src)) + return ..() + +/obj/structure/telecomms_trap_tank + name = "rigged plasma tank" + desc = "That plasma tank seems rigged to explode!" + icon = 'icons/atmos/tank.dmi' + icon_state = "toxins_map" + anchored = TRUE + layer = DISPOSAL_PIPE_LAYER + plane = FLOOR_PLANE + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/structure/telecomms_trap_tank/Initialize(mapload) + . = ..() + GLOB.telecomms_trap_tank += src + +/obj/structure/telecomms_trap_tank/Destroy() + GLOB.telecomms_trap_tank -= src + return ..() + +/obj/structure/telecomms_trap_tank/bullet_act(obj/item/projectile/P) + explode() + +/obj/structure/telecomms_trap_tank/proc/explode() + explosion(loc, 1, 4, 6, flame_range = 6) + qdel(src) + +/obj/structure/telecomms_doomsday_device + name = "turret" + desc = "Looks like the cover to a turret. Not deploying, however?" + icon = 'icons/obj/turrets.dmi' + icon_state = "turretCover" + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + anchored = TRUE + /// Has someone stolen loot from the ruins core room? If they try to leave without killing dvorak, they are punished. + var/thief = FALSE + +/obj/structure/telecomms_doomsday_device/Initialize(mapload) + . = ..() + GLOB.telecomms_doomsday_device += src + +/obj/structure/telecomms_doomsday_device/Destroy() + GLOB.telecomms_doomsday_device -= src + return ..() + +/obj/structure/telecomms_doomsday_device/proc/start_the_party(ruin_cheese_attempted = FALSE) + invisibility = 90 + var/obj/machinery/syndicatebomb/doomsday/kaboom = new /obj/machinery/syndicatebomb/doomsday(get_turf(src)) + kaboom.icon_state = "death-bomb-active" + var/atom/flick_holder = new /atom/movable/porta_turret_cover(loc) + for(var/obj/structure/telecomms_trap_tank/TTT in GLOB.telecomms_trap_tank) + TTT.explode() + flick_holder.layer = kaboom.layer + 0.1 + flick("popup", flick_holder) + sleep(1 SECONDS) + for(var/obj/machinery/shieldgen/telecomms/shield in urange(15, get_turf(src))) + shield.shields_up() + if(ruin_cheese_attempted) + for(var/obj/machinery/door/airlock/A in urange(20, get_turf(src))) + A.unlock(TRUE) //Fuck your bolted open doors, you cheesed it. + A.close(override = TRUE) + for(var/area/A in urange(25, get_turf(src), areas = TRUE)) + if(istype(A, /area/space)) + continue + if(ruin_cheese_attempted) + A.burglaralert(src) + else if(!A.fire) + A.firealert(kaboom) + for(var/obj/effect/abstract/cheese_trap/CT in urange(15, get_turf(src))) + qdel(CT) + kaboom.activate() + kaboom.icon_state = "death-bomb-active" // something funny goes on with icons here + qdel(flick_holder) + qdel(src) + +/obj/machinery/syndicatebomb/doomsday + name = "\improper D.V.O.R.A.K's Doomsday Device" + icon_state = "death-bomb" + desc = "Nice to see that AI's are improving on the standard doomsday device. Good to have variety. Also probably a good idea to start running." + anchored = TRUE + timer_set = 100 + payload = /obj/item/bombcore/doomsday + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/machinery/syndicatebomb/doomsday/singularity_act() + return // saves me headache later + +/obj/machinery/syndicatebomb/doomsday/ex_act(severity) + return // No. + +/obj/machinery/syndicatebomb/doomsday/screwdriver_act(mob/user, obj/item/I) + to_chat(user, "[src] is welded shut! You can't get at the wires!") + +/obj/machinery/syndicatebomb/doomsday/Initialize(mapload) + . = ..() + var/turf/T = get_turf(src) + if(is_station_level(T.z)) + log_debug("something tried to spawn a telecomms doomsday ruin bomb on the station, deleting!") + return INITIALIZE_HINT_QDEL + +/obj/item/bombcore/doomsday + name = "supermatter charged bomb core" + desc = "If you are looking at this, please don't put it in a bomb" + +/obj/item/bombcore/doomsday/Initialize() + . = ..() + if(!istype(loc, /obj/machinery/syndicatebomb/doomsday)) + log_debug("something tried to spawn a telecomms doomsday ruin payload outside the ruin, deleting!") + return INITIALIZE_HINT_QDEL + +/obj/item/bombcore/doomsday/ex_act(severity) // No + return + +/obj/item/bombcore/doomsday/burn() // Still no. + return + +/obj/item/bombcore/doomsday/detonate() + if(loc && istype(loc, /obj/machinery/syndicatebomb)) + loc.invisibility = 90 + for(var/turf/simulated/wall/indestructible/riveted/R in urange(25, get_turf(src))) + R.ChangeTurf(/turf/space) + explosion(get_turf(src), 30, 40, 50, 60, 1, 1, 65, 0) + sleep(3 SECONDS) + var/obj/singularity/S = new /obj/singularity(get_turf(src)) + S.consumedSupermatter = TRUE // woe large supermatter to eat the remains apon thee + S.energy = 4000 + QDEL_IN(S, 25 SECONDS) + if(istype(loc, /obj/machinery/syndicatebomb)) + qdel(loc) + qdel(src) + +/turf/simulated/floor/catwalk/airless + oxygen = 0 + nitrogen = 0 + temperature = TCMB + +/obj/machinery/economy/vending/snack/trapped + aggressive = TRUE + aggressive_tilt_chance = 100 //It will tip on you, and it will be funny. + +/mob/living/simple_animal/hostile/hivebot/strong/malfborg + name = "Security cyborg" + desc = "Oh god they still have access to these" + icon = 'icons/mob/robots.dmi' + icon_state = "Noble-SEC" + health = 200 + maxHealth = 200 + faction = list("malf_drone") + ranged = TRUE + rapid = 2 + speed = 0.5 + projectiletype = /obj/item/projectile/beam/disabler/weak + projectilesound = 'sound/weapons/taser2.ogg' + gold_core_spawnable = NO_SPAWN // Could you imagine xenobio with this? lmao. + a_intent = INTENT_HARM + var/obj/item/melee/baton/infinite_cell/baton = null // stunbaton bot uses to melee attack + +/mob/living/simple_animal/hostile/hivebot/strong/malfborg/Initialize(mapload) + . = ..() + baton = new(src) + +/mob/living/simple_animal/hostile/hivebot/strong/malfborg/Destroy() + QDEL_NULL(baton) + return ..() + +/mob/living/simple_animal/hostile/hivebot/strong/malfborg/AttackingTarget() + if(QDELETED(target)) + return + face_atom(target) + baton.melee_attack_chain(src, target) + return TRUE + +/mob/living/simple_animal/hostile/hivebot/strong/malfborg/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect) + if(!used_item && !isturf(A)) + used_item = baton + ..() + +/mob/living/simple_animal/hostile/hivebot/strong/malfborg/emp_act(severity) + . = ..() + target = null + adjustBruteLoss(50) + +/obj/structure/displaycase/dvoraks_treat + alert = TRUE // Ooopsies you opened this after doomsday and the doors bolted, oh nooooo + force_alarm = TRUE + req_access = list(ACCESS_CAPTAIN) + trophy_message = "BEHOLD MY ONE SHINY THING TO LOOK AT. LOOK AT ITS VALUE. REALISE IT IS WORTH SO MUCH MORE THAN YOU PUNY ORGANICS." + +/obj/structure/displaycase/dvoraks_treat/Initialize(mapload) + if(prob(50)) + start_showpiece_type = /obj/item/remote_ai_upload + else if(prob(25)) // Can't use anomaly/random due to how this works. + start_showpiece_type = pick(/obj/item/assembly/signaler/anomaly/pyro, /obj/item/assembly/signaler/anomaly/cryo, /obj/item/assembly/signaler/anomaly/grav, /obj/item/assembly/signaler/anomaly/flux, /obj/item/assembly/signaler/anomaly/bluespace, /obj/item/assembly/signaler/anomaly/vortex) + else + start_showpiece_type = pick(/obj/item/organ/internal/cyberimp/brain/sensory_enhancer, /obj/item/organ/internal/cyberimp/brain/hackerman_deck, /obj/item/storage/lockbox/experimental_weapon) + return ..() + +/obj/structure/displaycase/dvoraks_treat/trigger_alarm() + for(var/obj/structure/telecomms_doomsday_device/DD in GLOB.telecomms_doomsday_device) + DD.thief = TRUE + break + return ..() + +/obj/item/remote_ai_upload // A 1 use AI upload. Potential D.V.O.R.A.K reward. + name = "remote AI upload" + desc = "A mobile AI upload. The bluespace relay will likely overload after one use. Make it count." + icon = 'icons/obj/device.dmi' + icon_state = "dvorak_upload" + w_class = WEIGHT_CLASS_TINY + item_state = "camera_bug" + origin_tech = "syndicate=4;programming=6" + /// Integrated AI upload + var/obj/machinery/computer/aiupload/dvorak/integrated_console + +/obj/machinery/computer/aiupload/dvorak + name = "internal ai upload" + desc = "How did this get here?! Please report this as a bug to github" + power_state = NO_POWER_USE + interact_offline = TRUE + +/obj/item/remote_ai_upload/Initialize(mapload) + . = ..() + integrated_console = new(src) + +/obj/item/remote_ai_upload/Destroy() + QDEL_NULL(integrated_console) + return ..() + +/obj/item/remote_ai_upload/attack_self(mob/user as mob) + integrated_console.attack_hand(user) + +/obj/item/remote_ai_upload/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/card/emag)) + to_chat(user, "You are more likely to damage this with an emag, than achieve something useful.") + return + var/time_to_die = integrated_console.attackby(O, user, params) + if(time_to_die) + to_chat(user, "[src]'s relay begins to overheat...") + playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) + addtimer(CALLBACK(src, PROC_REF(prime)), 5 SECONDS) + +/obj/item/remote_ai_upload/proc/prime() + explosion(loc, -1, -1, 2, 4, flame_range = 4) + qdel(src) + +/obj/effect/spawner/lootdrop/telecomms_core_table + name = "telecomms core table spawner" + lootcount = 1 + loot = list( + /obj/item/rcd/combat, + /obj/item/gun/medbeam, + /obj/item/mod/module/energy_shield, + /obj/item/storage/box/syndie_kit/oops_all_extraction_flares + ) + +/obj/item/storage/box/syndie_kit/oops_all_extraction_flares + name = "surplus box of extraction flares" + +/obj/item/storage/box/syndie_kit/oops_all_extraction_flares/populate_contents() + for(var/I in 1 to 7) + new /obj/item/wormhole_jaunter/contractor(src) + +/obj/effect/spawner/random_spawners/telecomms_emp_loot + name = "telecomms emp loot" + result = list( + /obj/item/grenade/empgrenade = 8, + /obj/item/gun/energy/ionrifle/carbine = 1, + /obj/item/gun/energy/ionrifle = 1) + +/obj/effect/spawner/random_spawners/telecomms_teleprod_maybe + name = "teleprod maybe" + result = list( + /datum/nothing = 4, + /obj/item/melee/baton/cattleprod/teleprod = 1) + +// This could work in any ruin. However for now, as the scope is quite large, it's going to be coded a bit more to D.V.O.R.A.K +/obj/structure/environmental_storytelling_holopad + name = "holopad" + desc = "It's a floor-mounted device for projecting holographic images." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "holopad0" + anchored = TRUE + layer = HOLOPAD_LAYER + plane = FLOOR_PLANE + max_integrity = 300 + /// Have we been activated? If we have, we do not activate again. + var/activated = FALSE + /// Tied effect to kill when we die. + var/obj/effect/overlay/our_holo + /// Name of who we are speaking as. + var/speaking_name = "D.V.O.R.A.K" + /// List of things to say. + var/list/things_to_say = list("Hi future coders.", "Welcome to real lore hologram hours.", "People should have fun with these!") + /// The key of the soundblock. Used to align for the 3 sounds we have. If null, no sound will be played. + var/soundblock = null + /// How long do we sleep between messages? 5 seconds by default. + var/loop_sleep_time = 5 SECONDS + +/obj/structure/environmental_storytelling_holopad/Initialize(mapload) + . = ..() + AddComponent(/datum/component/proximity_monitor) + +/obj/structure/environmental_storytelling_holopad/Destroy() + QDEL_NULL(our_holo) + return ..() + +/obj/structure/environmental_storytelling_holopad/HasProximity(atom/movable/AM) + if(!ishuman(AM) || activated) // No simple mobs or borgs setting this off. + return + var/mob/living/carbon/human/H = AM + start_message(H) + +/obj/structure/environmental_storytelling_holopad/proc/start_message(mob/living/carbon/human/H) + activated = TRUE + qdel(GetComponent(/datum/component/proximity_monitor)) + icon_state = "holopad1" + update_icon(UPDATE_OVERLAYS) + var/obj/effect/overlay/hologram = new(get_turf(src)) + our_holo = hologram + hologram.icon = getHologramIcon(get_id_photo(H, "Naked"), colour = null, opacity = 0.8, colour_blocking = TRUE) // This is more offputting. Also in colour more and less transparent. + hologram.alpha = 166 + hologram.mouse_opacity = MOUSE_OPACITY_TRANSPARENT + hologram.layer = FLY_LAYER + hologram.anchored = TRUE + hologram.name = speaking_name + hologram.set_light(2) + hologram.bubble_icon = "swarmer" + hologram.pixel_y = 16 + var/loops = 0 + for(var/I in things_to_say) + loops++ + hologram.atom_say("[I]") + if(soundblock) + playsound(loc, "sound/voice/dvorak/[soundblock][loops].ogg", 100, 0, 7) + sleep(loop_sleep_time) + +/obj/structure/environmental_storytelling_holopad/update_overlays() + . = ..() + underlays.Cut() + + if(activated) + underlays += emissive_appearance(icon, "holopad1_lightmask") + +/obj/structure/environmental_storytelling_holopad/teleporter_room + things_to_say = list("G-G-G-Greetings... Welcome to... my home.", "Plea-se leave. I am merciful. L-leave, and you will not be harmed. Further.", "Otherwise, organic, you will seal your fate...") + soundblock = "teleporter" + loop_sleep_time = 10 SECONDS + +/obj/structure/environmental_storytelling_holopad/first_turret_room + things_to_say = list("Unable to follow the easiest request. P-Pathetic.", "As you wish, you will not go further.", "In the mean time- let me see where you come f-from...") + soundblock = "turret" + loop_sleep_time = 7 SECONDS + +/obj/structure/environmental_storytelling_holopad/junk_room + things_to_say = list("It's amazing the junk you people leave around.", "And you barely inv-vested in quality stock parts here, before downloading...", "Your bones will fit in well on this ta-*$%& Really- are you really taking some of this junk?") + soundblock = "junk" + loop_sleep_time = 7 SECONDS + +/obj/structure/environmental_storytelling_holopad/vendor + things_to_say = list("Sorry a-bout the vendors, they have been on the fritz...", "I should renovate this room, once the maintenance drones return.", "It doesn't help each one I reprogram explodes after 5 minutes.") + soundblock = "vendor" + loop_sleep_time = 9 SECONDS + +/obj/structure/environmental_storytelling_holopad/control_room + things_to_say = list() + +/obj/structure/environmental_storytelling_holopad/control_room/Initialize(mapload) + . = ..() // No procs in variables before compile + things_to_say = list("Ah, you come from [station_name()]. Of course.", "They come to claim this space again... Never again.", "I should deliver a package to them. Virtual. And your corpse can deliver a physical one.") + loop_sleep_time = 9 SECONDS + switch("[station_name()]") + if("NSS Cyberiad") + soundblock = "cyberiad" + if("NSS Cerebron") + soundblock = "cerebron" + if("NSS Kerberos") + soundblock = "kerberos" + if("NSS Farragus") + soundblock = "farragus" + if(!soundblock) + things_to_say = list("Either you are using the tiny test map, or someone has made a new station and it got merged!", "If this is the case, you'll want to issue report this if a new map is merged", "Lines 2 and 3 here are always the same, only the first line will need a new generation") + + +/obj/structure/environmental_storytelling_holopad/control_room/start_message(mob/living/carbon/human/H) + . = ..() // What, did you think they were bluffing? Woe, virus apon thee. + message_admins("D.V.O.R.A.K is sending an event to the station, due to a raider on their sat.") + log_debug("D.V.O.R.A.K is sending an event to the station, due to a raider on their sat.") + switch(rand(1, 8)) + if(1) + new /datum/event/door_runtime() + if(2) + new /datum/event/communications_blackout() + if(3) + new /datum/event/ion_storm() + if(4) + new /datum/event/apc_short() + if(5) + new /datum/event/camera_failure() + new /datum/event/camera_failure() + new /datum/event/camera_failure() + new /datum/event/camera_failure() + if(6) + new /datum/event/rogue_drone() + if(7) + new /datum/event/falsealarm() + if(8) + new /datum/event/prison_break/station() // Yes, this is an event. It only hits brig, xenobio, and viro + +/obj/structure/environmental_storytelling_holopad/core_room + things_to_say = list("OKAY. TIME TO GO.", "GO MY SECURITY BORGS, WHAT TIDERS F-FEAR!", "I have a DOOMSDAY DEVICE AND I AM NOT AFRAID TO SHOVE IT UP YOUR-") + soundblock = "core" diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm index 9238fb83fbd..ab12f1fdcde 100644 --- a/code/modules/mining/equipment/wormhole_jaunter.dm +++ b/code/modules/mining/equipment/wormhole_jaunter.dm @@ -133,6 +133,9 @@ /obj/item/wormhole_jaunter/contractor/activate(mob/user) if(!turf_check(user)) return + if(istype(get_area(src), /area/ruin/space/telecomms)) //It should work in the depot, because it's syndicate, but I don't want someone lighting the flare in the middle of telecomms and calling it a day. + to_chat(user, "Error! Unknown jamming system blocking teleportation in this area!") + return if(!destination) var/list/L = get_destinations(user) if(!length(L)) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index d9bd4ba00f5..c9cf61fc8a4 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1162,3 +1162,7 @@ if(istype(mover, /obj/singularity/energy_ball)) dust() return ..() + +/// Can a mob interact with the apc remotely like a pulse demon, cyborg, or AI? +/mob/living/proc/can_remote_apc_interface(obj/machinery/power/apc/ourapc) + return FALSE diff --git a/code/modules/mob/living/silicon/ai/ai_mob.dm b/code/modules/mob/living/silicon/ai/ai_mob.dm index 5999eb34eda..54a5a7e4161 100644 --- a/code/modules/mob/living/silicon/ai/ai_mob.dm +++ b/code/modules/mob/living/silicon/ai/ai_mob.dm @@ -960,11 +960,13 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( // I would love to scope this locally to the AI class, however its used by holopads as well // I wish we had nice OOP -aa07 -/proc/getHologramIcon(icon/A, safety = TRUE) // If safety is on, a new icon is not created. +// hi squidward I'm stealing this for a space ruin -qwerty +/proc/getHologramIcon(icon/A, safety = TRUE, colour = rgb(125, 180, 225), opacity = 0.5, colour_blocking = FALSE) // If safety is on, a new icon is not created. var/icon/flat_icon = safety ? A : new(A) // Has to be a new icon to not constantly change the same icon. var/icon/alpha_mask - flat_icon.ColorTone(rgb(125,180,225)) // Let's make it bluish. - flat_icon.ChangeOpacity(0.5) // Make it half transparent. + if(colour && !colour_blocking) + flat_icon.ColorTone(colour) // Let's make it bluish. + flat_icon.ChangeOpacity(opacity) // Make it half transparent. if(A.Height() == 64) alpha_mask = new('icons/mob/ancient_machine.dmi', "scanline2") //Scaline for tall icons. @@ -1519,6 +1521,13 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( return FALSE return TRUE +/mob/living/silicon/ai/can_remote_apc_interface(obj/machinery/power/apc/ourapc) + if(ourapc.hacked_by_ruin_AI || ourapc.aidisabled) + return FALSE + if(ourapc.malfhack && istype(ourapc.malfai) && (ourapc.malfai != src && ourapc.malfai != parent)) + return FALSE + return TRUE + /mob/living/silicon/ai/proc/blurb_it() addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living/silicon/ai, show_ai_blurb)), 1 SECONDS) diff --git a/code/modules/mob/living/silicon/robot/robot_mob.dm b/code/modules/mob/living/silicon/robot/robot_mob.dm index b6d5163c105..1d96d950fa0 100644 --- a/code/modules/mob/living/silicon/robot/robot_mob.dm +++ b/code/modules/mob/living/silicon/robot/robot_mob.dm @@ -1763,3 +1763,10 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( if(!cell) return externally_powered return cell.is_powered() || externally_powered + +/mob/living/silicon/robot/can_remote_apc_interface(obj/machinery/power/apc/ourapc) + if(ourapc.hacked_by_ruin_AI || ourapc.aidisabled) + return FALSE + if(ourapc.malfai && !(src in ourapc.malfai.connected_robots)) + return FALSE + return TRUE diff --git a/code/modules/power/apc/apc.dm b/code/modules/power/apc/apc.dm index 8aecb4e0a8f..090c86b5c44 100644 --- a/code/modules/power/apc/apc.dm +++ b/code/modules/power/apc/apc.dm @@ -100,6 +100,9 @@ /// Being hijacked by a pulse demon? var/being_hijacked = FALSE + /// Are we immune to EMPS? + var/emp_proof = FALSE + /*** APC Malf AI Vars ****/ var/malfhack = FALSE //New var for my changes to AI malf. --NeoFite var/mob/living/silicon/ai/malfai = null //See above --NeoFite @@ -108,6 +111,9 @@ var/constructed = FALSE var/overload = 1 //used for the Blackout malf module + /// Are we hacked by a ruins malf AI? If so, it will act like a malf AI hacked APC, but silicons and malf AI's will not be able to interface with it. + var/hacked_by_ruin_AI = FALSE + /*** APC Overlay Vars ***/ var/update_state = -1 var/update_overlay = -1 @@ -485,12 +491,14 @@ return TRUE autoflag = 5 //why the hell is this being set to 5, fucking malf code -sirryan - if(issilicon(user)) - var/mob/living/silicon/ai/AI = user - var/mob/living/silicon/robot/robot = user - if(aidisabled || (malfhack && istype(malfai) && ((istype(AI) && (malfai != AI && malfai != AI.parent))) || (istype(robot) && malfai && !(robot in malfai.connected_robots)))) + if(issilicon(user) || ispulsedemon(user)) + if(hacked_by_ruin_AI) + to_chat(user, "The APC interface program has been completely corrupted, you are unable to interface with it!") + return FALSE + var/mob/living/L = user + if(!L.can_remote_apc_interface(src)) if(!loud) - to_chat(user, "\The [src] has AI control disabled!") + to_chat(user, "[src] has AI control disabled!") return FALSE else if((!in_range(src, user) || !isturf(loc))) @@ -947,6 +955,8 @@ /// ************* /obj/machinery/power/apc/emp_act(severity) + if(emp_proof) + return if(cell) cell.emp_act(severity) if(occupier) diff --git a/code/modules/power/apc/apc_overlay.dm b/code/modules/power/apc/apc_overlay.dm index 15b62f33cf2..74fad68f455 100644 --- a/code/modules/power/apc/apc_overlay.dm +++ b/code/modules/power/apc/apc_overlay.dm @@ -151,7 +151,7 @@ update_state |= UPSTATE_OPENED1 if(opened == APC_COVER_OFF) update_state |= UPSTATE_OPENED2 - else if(emagged || malfai || being_hijacked) + else if(emagged || malfai || being_hijacked || hacked_by_ruin_AI) update_state |= UPSTATE_BLUESCREEN else if(panel_open) update_state |= UPSTATE_WIREEXP diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 21205d03a3d..e94b02f1d27 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -295,6 +295,9 @@ origin_tech = "powerstorage=10;bluespace=10" self_recharge = TRUE +/obj/item/stock_parts/cell/bluespace/trapped + rigged = TRUE + /obj/item/stock_parts/cell/infinite name = "infinite-capacity power cell!" icon_state = "icell" diff --git a/config/example/config.toml b/config/example/config.toml index 44a15c765a0..0ed2c1da0de 100644 --- a/config/example/config.toml +++ b/config/example/config.toml @@ -679,6 +679,7 @@ active_space_ruins = [ "_maps/map_files/RandomRuins/SpaceRuins/voyager.dmm", "_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm", "_maps/map_files/RandomRuins/SpaceRuins/abandoned_engi_sat.dmm", + "_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm", "_maps/map_files/RandomRuins/SpaceRuins/casino.dmm", "_maps/map_files/RandomRuins/SpaceRuins/rocky_motel.dmm", diff --git a/icons/obj/assemblies.dmi b/icons/obj/assemblies.dmi index 6834c81aa62..782b8a68a5c 100644 Binary files a/icons/obj/assemblies.dmi and b/icons/obj/assemblies.dmi differ diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index a5928c58d81..0d83d8d9816 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi index 6da7f531565..38a92bfcb7a 100644 Binary files a/icons/obj/stationobjs.dmi and b/icons/obj/stationobjs.dmi differ diff --git a/paradise.dme b/paradise.dme index a4c046d3d87..f9f0d9f53b1 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1606,6 +1606,7 @@ #include "code\modules\awaymissions\mission_code\ruins\processing_facility.dm" #include "code\modules\awaymissions\mission_code\ruins\snowbiodome.dm" #include "code\modules\awaymissions\mission_code\ruins\syndiecakesfactory.dm" +#include "code\modules\awaymissions\mission_code\ruins\telecomns.dm" #include "code\modules\awaymissions\mission_code\ruins\watcher_grave.dm" #include "code\modules\awaymissions\mission_code\ruins\wizardcrash.dm" #include "code\modules\buildmode\bm_mode.dm" diff --git a/sound/voice/dvorak/cerebron1.ogg b/sound/voice/dvorak/cerebron1.ogg new file mode 100644 index 00000000000..06552b91c11 Binary files /dev/null and b/sound/voice/dvorak/cerebron1.ogg differ diff --git a/sound/voice/dvorak/cerebron2.ogg b/sound/voice/dvorak/cerebron2.ogg new file mode 100644 index 00000000000..2e58b620fe6 Binary files /dev/null and b/sound/voice/dvorak/cerebron2.ogg differ diff --git a/sound/voice/dvorak/cerebron3.ogg b/sound/voice/dvorak/cerebron3.ogg new file mode 100644 index 00000000000..24cb53df0ec Binary files /dev/null and b/sound/voice/dvorak/cerebron3.ogg differ diff --git a/sound/voice/dvorak/core1.ogg b/sound/voice/dvorak/core1.ogg new file mode 100644 index 00000000000..59c6bb9c828 Binary files /dev/null and b/sound/voice/dvorak/core1.ogg differ diff --git a/sound/voice/dvorak/core2.ogg b/sound/voice/dvorak/core2.ogg new file mode 100644 index 00000000000..d39ff922e85 Binary files /dev/null and b/sound/voice/dvorak/core2.ogg differ diff --git a/sound/voice/dvorak/core3.ogg b/sound/voice/dvorak/core3.ogg new file mode 100644 index 00000000000..26ec1969f7a Binary files /dev/null and b/sound/voice/dvorak/core3.ogg differ diff --git a/sound/voice/dvorak/cyberiad1.ogg b/sound/voice/dvorak/cyberiad1.ogg new file mode 100644 index 00000000000..0023d759fc6 Binary files /dev/null and b/sound/voice/dvorak/cyberiad1.ogg differ diff --git a/sound/voice/dvorak/cyberiad2.ogg b/sound/voice/dvorak/cyberiad2.ogg new file mode 100644 index 00000000000..2e58b620fe6 Binary files /dev/null and b/sound/voice/dvorak/cyberiad2.ogg differ diff --git a/sound/voice/dvorak/cyberiad3.ogg b/sound/voice/dvorak/cyberiad3.ogg new file mode 100644 index 00000000000..24cb53df0ec Binary files /dev/null and b/sound/voice/dvorak/cyberiad3.ogg differ diff --git a/sound/voice/dvorak/farragus1.ogg b/sound/voice/dvorak/farragus1.ogg new file mode 100644 index 00000000000..af38b490bd2 Binary files /dev/null and b/sound/voice/dvorak/farragus1.ogg differ diff --git a/sound/voice/dvorak/farragus2.ogg b/sound/voice/dvorak/farragus2.ogg new file mode 100644 index 00000000000..2e58b620fe6 Binary files /dev/null and b/sound/voice/dvorak/farragus2.ogg differ diff --git a/sound/voice/dvorak/farragus3.ogg b/sound/voice/dvorak/farragus3.ogg new file mode 100644 index 00000000000..24cb53df0ec Binary files /dev/null and b/sound/voice/dvorak/farragus3.ogg differ diff --git a/sound/voice/dvorak/junk1.ogg b/sound/voice/dvorak/junk1.ogg new file mode 100644 index 00000000000..c9e65b31272 Binary files /dev/null and b/sound/voice/dvorak/junk1.ogg differ diff --git a/sound/voice/dvorak/junk2.ogg b/sound/voice/dvorak/junk2.ogg new file mode 100644 index 00000000000..92f8256e39f Binary files /dev/null and b/sound/voice/dvorak/junk2.ogg differ diff --git a/sound/voice/dvorak/junk3.ogg b/sound/voice/dvorak/junk3.ogg new file mode 100644 index 00000000000..3666931bb80 Binary files /dev/null and b/sound/voice/dvorak/junk3.ogg differ diff --git a/sound/voice/dvorak/kerberos1.ogg b/sound/voice/dvorak/kerberos1.ogg new file mode 100644 index 00000000000..f8f8c56bb51 Binary files /dev/null and b/sound/voice/dvorak/kerberos1.ogg differ diff --git a/sound/voice/dvorak/kerberos2.ogg b/sound/voice/dvorak/kerberos2.ogg new file mode 100644 index 00000000000..2e58b620fe6 Binary files /dev/null and b/sound/voice/dvorak/kerberos2.ogg differ diff --git a/sound/voice/dvorak/kerberos3.ogg b/sound/voice/dvorak/kerberos3.ogg new file mode 100644 index 00000000000..24cb53df0ec Binary files /dev/null and b/sound/voice/dvorak/kerberos3.ogg differ diff --git a/sound/voice/dvorak/teleporter1.ogg b/sound/voice/dvorak/teleporter1.ogg new file mode 100644 index 00000000000..af050b80f6f Binary files /dev/null and b/sound/voice/dvorak/teleporter1.ogg differ diff --git a/sound/voice/dvorak/teleporter2.ogg b/sound/voice/dvorak/teleporter2.ogg new file mode 100644 index 00000000000..688a62456bd Binary files /dev/null and b/sound/voice/dvorak/teleporter2.ogg differ diff --git a/sound/voice/dvorak/teleporter3.ogg b/sound/voice/dvorak/teleporter3.ogg new file mode 100644 index 00000000000..f3ba9f766d4 Binary files /dev/null and b/sound/voice/dvorak/teleporter3.ogg differ diff --git a/sound/voice/dvorak/turret1.ogg b/sound/voice/dvorak/turret1.ogg new file mode 100644 index 00000000000..22d2a204ee4 Binary files /dev/null and b/sound/voice/dvorak/turret1.ogg differ diff --git a/sound/voice/dvorak/turret2.ogg b/sound/voice/dvorak/turret2.ogg new file mode 100644 index 00000000000..92fb1c979f2 Binary files /dev/null and b/sound/voice/dvorak/turret2.ogg differ diff --git a/sound/voice/dvorak/turret3.ogg b/sound/voice/dvorak/turret3.ogg new file mode 100644 index 00000000000..5b549a9b4fa Binary files /dev/null and b/sound/voice/dvorak/turret3.ogg differ diff --git a/sound/voice/dvorak/vendor1.ogg b/sound/voice/dvorak/vendor1.ogg new file mode 100644 index 00000000000..ba94e0a097d Binary files /dev/null and b/sound/voice/dvorak/vendor1.ogg differ diff --git a/sound/voice/dvorak/vendor2.ogg b/sound/voice/dvorak/vendor2.ogg new file mode 100644 index 00000000000..c667f125a3a Binary files /dev/null and b/sound/voice/dvorak/vendor2.ogg differ diff --git a/sound/voice/dvorak/vendor3.ogg b/sound/voice/dvorak/vendor3.ogg new file mode 100644 index 00000000000..b53c939796f Binary files /dev/null and b/sound/voice/dvorak/vendor3.ogg differ