From 22af92ad2245068dcadd4b0467de5e1a212bbe66 Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Fri, 6 Jan 2017 10:08:00 -0800 Subject: [PATCH 001/101] Hijacking a shuttle diverts it to the syndicate outpost. tgstation/tgstation#22184 - Hijacking the shuttle will make it dock to a new dock on the syndicate outpost. - Fixed shuttle_master not calling mobile/dockRoundstart(). - Only Traitors, Changelings, Vampires, Nuclear Operatives, and Syndicate Deathsquads can now hijack the shuttle. --- _maps/map_files/cyberiad/z2.dmm | 154 +++++++++++++------------ code/controllers/Processes/shuttles.dm | 8 +- code/game/gamemodes/objective.dm | 14 +-- code/modules/shuttle/emergency.dm | 49 ++++++-- code/modules/shuttle/shuttle.dm | 12 +- 5 files changed, 134 insertions(+), 103 deletions(-) diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm index 2a0ec563b73..fdcfafda2fd 100644 --- a/_maps/map_files/cyberiad/z2.dmm +++ b/_maps/map_files/cyberiad/z2.dmm @@ -2,13 +2,8 @@ "ab" = (/turf/unsimulated/floor/snow,/area/syndicate_mothership) "ac" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/area/syndicate_mothership) "ad" = (/obj/structure/flora/bush,/turf/unsimulated/floor/snow,/area/syndicate_mothership) -"ae" = (/obj/structure/flora/tree/pine{pixel_x = 2},/turf/unsimulated/floor/snow,/area/syndicate_mothership) -"af" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor/snow,/area/syndicate_mothership) "ag" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) -"ah" = (/obj/structure/flora/tree/pine{pixel_x = 0},/turf/unsimulated/floor/snow,/area/syndicate_mothership) "ai" = (/turf/unsimulated/floor/snow,/area/space) -"aj" = (/turf/unsimulated/floor/snow,/obj/structure/flora/bush,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) -"ak" = (/turf/unsimulated/floor/snow,/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) "al" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) "am" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (SOUTHEAST)"; icon_state = "gravsnow_corner"; dir = 6},/area/syndicate_mothership) "an" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (SOUTHWEST)"; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership) @@ -42,18 +37,11 @@ "aP" = (/obj/structure/window/reinforced,/turf/unsimulated/wall{tag = "icon-iron12"; icon_state = "iron12"},/area/space) "aQ" = (/turf/unsimulated/wall{tag = "icon-iron14"; icon_state = "iron14"},/area/space) "aR" = (/turf/unsimulated/wall{tag = "icon-iron10"; icon_state = "iron10"},/area/space) -"aS" = (/turf/unsimulated/floor/snow,/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (EAST)"; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) -"aT" = (/turf/unsimulated/floor/snow,/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (SOUTHWEST)"; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership) -"aU" = (/turf/unsimulated/floor/snow,/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) "aV" = (/obj/machinery/door/airlock/external{id_tag = "syndicate_away"; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aW" = (/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_away"; name = "syndicate recon outpost"; turf_type = /turf/unsimulated/floor/snow; width = 18},/turf/space,/area/space) "aX" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (NORTHEAST)"; icon_state = "gravsnow_corner"; dir = 5},/area/syndicate_mothership) "aY" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/unsimulated/floor/snow,/area/syndicate_mothership) -"aZ" = (/turf/unsimulated/floor/snow,/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) "ba" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (NORTH)"; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership) -"bb" = (/turf/unsimulated/floor/snow,/obj/structure/flora/bush,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (NORTH)"; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership) -"bc" = (/turf/unsimulated/floor/snow,/obj/structure/flora/tree/pine,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) -"bd" = (/turf/unsimulated/floor/snow,/obj/structure/flora/bush,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) "be" = (/obj/machinery/computer/shuttle/ert,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/specops) "bf" = (/obj/machinery/door/airlock/external{id_tag = "specops_away"; name = "Shuttle Hatch"; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops) "bg" = (/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 11; id = "specops_away"; name = "centcom bay 3"; width = 5},/turf/space,/area/space) @@ -436,7 +424,6 @@ "it" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_mothership) "iu" = (/obj/effect/decal/warning_stripes/southeast,/turf/simulated/floor/plating/airless,/area/syndicate_mothership) "iv" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/assault_pod) -"iw" = (/turf/space,/obj/machinery/gun_turret/assault_pod,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) "ix" = (/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/wizard_station) "iy" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/wizard_station) "iz" = (/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/wizard_station) @@ -447,7 +434,6 @@ "iE" = (/turf/space,/turf/unsimulated/wall{dir = 1; icon = 'icons/turf/shuttle.dmi'; icon_state = "diagonalWall3"},/area/space) "iF" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_one_access_txt = "150"},/turf/simulated/floor/plating,/area/shuttle/assault_pod) "iG" = (/obj/effect/decal/warning_stripes/southwest,/turf/simulated/floor/plating/airless,/area/syndicate_mothership) -"iH" = (/turf/space,/obj/machinery/gun_turret/assault_pod,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) "iI" = (/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plating/airless,/area/syndicate_mothership) "iJ" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/assault_pod) "iK" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/assault_pod) @@ -484,8 +470,6 @@ "jp" = (/turf/simulated/floor/plasteel,/area/tdome/arena_source) "jq" = (/turf/simulated/floor/plasteel{icon_state = "green"; dir = 4},/area/tdome/arena_source) "jr" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/energy/sword/saber/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source) -"js" = (/turf/space,/obj/machinery/gun_turret/assault_pod,/turf/simulated/shuttle/wall{tag = "icon-diagonalWall3"; icon_state = "diagonalWall3"; dir = 2},/area/shuttle/assault_pod) -"jt" = (/turf/space,/obj/machinery/gun_turret/assault_pod,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) "ju" = (/obj/effect/decal/warning_stripes/northeast,/turf/simulated/floor/plating/airless,/area/syndicate_mothership) "jv" = (/obj/effect/decal/warning_stripes/northeastcorner,/turf/simulated/floor/plating/airless,/area/syndicate_mothership) "jw" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_one_access_txt = "150"},/obj/docking_port/mobile/assault_pod,/turf/simulated/floor/plating,/area/shuttle/assault_pod) @@ -748,7 +732,6 @@ "oC" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (EAST)"; icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership) "oH" = (/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "oI" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"oJ" = (/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/obj/item/weapon/storage/fancy/crayons,/obj/machinery/light{dir = 1; on = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "oO" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "oQ" = (/obj/machinery/vending/syndisnack,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "oR" = (/obj/machinery/vending/syndicigs,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) @@ -768,6 +751,7 @@ "pA" = (/obj/machinery/light,/turf/unsimulated/floor{icon_state = "floor"},/area/syndicate_mothership) "pC" = (/obj/machinery/door/poddoor{id_tag = "nukeop_ready"; name = "Shuttle Dock Door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "pF" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership) +"pN" = (/obj/machinery/gun_turret/assault_pod,/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) "pR" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership) "pS" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership) "pT" = (/obj/structure/table/woodentable,/obj/item/device/syndicatedetonator,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership) @@ -780,6 +764,7 @@ "qh" = (/obj/effect/decal/warning_stripes/south,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership) "qi" = (/obj/effect/decal/warning_stripes/southwestcorner,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership) "qj" = (/obj/machinery/door/window{dir = 4; name = "Uplink Management Control"; req_access_txt = "151"},/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership) +"qp" = (/obj/machinery/gun_turret/assault_pod,/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) "qr" = (/obj/structure/sign/double/map/left{pixel_y = -32},/obj/effect/decal/warning_stripes/west,/obj/machinery/light,/obj/structure/rack/skeletal_bar/left,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership) "qt" = (/obj/machinery/computer/telecrystals/boss,/turf/unsimulated/floor{icon_state = "floor4"},/area/syndicate_mothership) "qu" = (/obj/structure/sign/double/map/right{pixel_y = -32},/obj/structure/rack/skeletal_bar/right,/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership) @@ -794,6 +779,7 @@ "qX" = (/turf/unsimulated/wall/fakeglass{dir = 8; icon_state = "fakewindows3"; tag = "icon-fakewindows (WEST)"},/area/syndicate_mothership) "re" = (/obj/structure/closet/syndicate/personal,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/syndicate_mothership) "rf" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/syndicate_mothership) +"rD" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) "rE" = (/turf/unsimulated/wall,/area/start) "rH" = (/obj/effect/landmark/start,/turf/unsimulated/floor,/area/start) "rK" = (/turf/unsimulated/wall/splashscreen,/area/start) @@ -1037,6 +1023,7 @@ "xm" = (/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/evac) "xn" = (/obj/machinery/door/window/westright{name = "security checkpoint"; req_access_txt = "104"},/obj/structure/table,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac) "xo" = (/obj/machinery/door/window/eastleft{name = "security checkpoint"; req_access_txt = "104"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac) +"xv" = (/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) "xx" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom) "xy" = (/turf/unsimulated/floor{icon_state = "green"; dir = 10},/area/centcom/evac) "xz" = (/obj/effect/spawner/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) @@ -1124,6 +1111,7 @@ "zW" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/centcom/evac) "zX" = (/obj/structure/grille,/obj/structure/window/full/shuttle{icon_state = "15"},/turf/simulated/floor/plating,/area/centcom/evac) "Al" = (/obj/machinery/door/airlock/hatch{name = "Infirmary"; req_access_txt = "0"},/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area/centcom/evac) +"Ar" = (/obj/machinery/gun_turret/assault_pod,/turf/space,/turf/simulated/shuttle/wall{tag = "icon-diagonalWall3"; icon_state = "diagonalWall3"; dir = 2},/area/shuttle/assault_pod) "Aw" = (/turf/unsimulated/wall,/area/centcom) "AD" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -30; pixel_y = 0; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/centcom/evac) "AM" = (/obj/structure/table,/turf/simulated/shuttle/floor,/area/centcom/evac) @@ -1143,6 +1131,10 @@ "Bq" = (/obj/structure/grille,/obj/structure/window/full/shuttle{icon_state = "window4"},/turf/simulated/floor/plating,/area/centcom/evac) "Br" = (/obj/structure/grille,/obj/structure/window/full/shuttle{dir = 10; icon_state = "9"},/turf/simulated/floor/plating,/area/centcom/evac) "Bs" = (/obj/structure/grille,/obj/structure/window/full/shuttle{icon_state = "17"},/turf/simulated/floor/plating,/area/centcom/evac) +"BF" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/syndicate_mothership) +"BG" = (/obj/machinery/light{dir = 4},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"CE" = (/turf/unsimulated/wall/fakeglass{dir = 0; icon_state = "fakewindows"; tag = "icon-fakewindows (EAST)"},/area/syndicate_mothership) +"CN" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (SOUTHWEST)"; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership) "Dt" = (/turf/space,/turf/unsimulated/wall{dir = 8; icon = 'icons/turf/shuttle.dmi'; icon_state = "diagonalWall3"},/area/admin) "Du" = (/turf/space,/turf/unsimulated/wall{dir = 1; icon = 'icons/turf/shuttle.dmi'; icon_state = "diagonalWall3"},/area/admin) "Dv" = (/turf/space,/area/admin) @@ -1421,6 +1413,24 @@ "IU" = (/obj/structure/table,/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "thunderdomegen"; name = "General Equiptment"; pixel_x = 0; pixel_y = 5; req_access_txt = "104"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin) "IV" = (/obj/structure/table,/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "thunderdomeaxe"; name = "Specialist Supply"; pixel_x = 0; pixel_y = 5; req_access_txt = "104"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin) "Jb" = (/mob/living/simple_animal/pet/cat/Syndi,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"Kw" = (/obj/machinery/door/airlock/external{id_tag = "syndicate_away"; req_access_txt = "150"},/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dir = 1; dwidth = 11; height = 13; id = "emergency_syndicate"; name = "404 Not Found"; turf_type = /turf/unsimulated/floor/snow; width = 24},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"KL" = (/obj/structure/flora/tree/pine{pixel_x = 1},/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/area/syndicate_mothership) +"LP" = (/obj/machinery/light{dir = 1; on = 1},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"LX" = (/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow,/area/syndicate_mothership) +"Oo" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) +"PE" = (/obj/structure/flora/bush,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (NORTH)"; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership) +"Qb" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) +"Qm" = (/obj/machinery/door/airlock/centcom{name = "Shuttle Dock #2"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"RK" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (EAST)"; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) +"Sc" = (/obj/machinery/door/airlock/external{id_tag = "syndicate_away"; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"TG" = (/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (SOUTHWEST)"; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership) +"TT" = (/obj/structure/flora/bush,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) +"Uu" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) +"Vp" = (/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) +"Vy" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) +"XB" = (/obj/item/weapon/storage/fancy/crayons,/obj/machinery/light{dir = 1; on = 1},/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) +"XS" = (/obj/machinery/gun_turret/assault_pod,/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"ZT" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (NORTH)"; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership) (1,1,1) = {" ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaOaPaPaPaPaPaQaPaPaPaPaPaQaPaPaPaPaPaQaPaPaPaPaPaQaPaPaPaPaPaQaPaPaPaPaPaQaPaPaPaPaPaQaPaPaPaPaPaR @@ -1468,61 +1478,61 @@ aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckck aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihihihihihihihihihihihihaNaNisaNaNaNaNaNmtkjknknmuknkjkokpmvkrksaNaNaNaNaNaNmKmEmLmNmMmOmOmMmEmQmPatatbkatatatatatatatatatatatatatbkatataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNititititititititititititititititititaNaNaNaNaNaNmKmEmEmEmEmEmEmEmEmQmRatblblataNaNaNaNaNaNaNaNaNaNaNatblblataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckbmckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmKmEmMmOmOmOmSmMmEmEmTatblblataNaNaNaNaNaNaNaNaNaNaNatblblataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckaackckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNmUmVmEmEmEmEmEmEmEmEatatblblatatatatatatatatatatatatatblblatataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckaEckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababacababababababababababababababababababnjaNaNaNaNaNmrmrmrmWmrmXmOmOmMmEmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbnaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababacabababababababababababababababababababababababababnjaNaNaNaNaNmrmYnamZmrmEmEmEmEnbncataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababadababababababababababababaeababacabafababnjaNaNaNaNaNmrndndnemrnfngngngnhniataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNckckckckckckckckckawckckckckckaxckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababababababababababafabafababababafabababnjaNaNaNaNaNmrndnkmrmraNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababababababababacababadababacafabadabababnjaNaNaNaNaNmrmrmrmrmraNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababagagagagagagagababababahababacabahabababacabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaiaNaNaNaNaNaNaNaiacabababababajagagakagakababafabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNnlnmataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaNaNaNaNaNaNaNaNaNalabababacamnjnjoBoCnjnjanagagagnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaNaNaNaNaNaNaNaNaNalabababaonjnjoHoIoIoJnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaNaNaNaNaNaNaNaNaNalababadaonjaLoOoOoOoOfZoQoRnjfYjMmgnjaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaiaNaNaNaNaNaNaNaiababababaSnjpaoOmfmfpcoOpdpepWpXpXganjnjnjnjnjnjnjnjnjnjnjnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababaNaNaNaNaNaTagagababaUamnjplmfpmjNmfoOmkppnjpXggnjnjghgjgigxgxhggxgxhxhGnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababaNaNaNaNaNpupvpvpvpvpvoCnjmhmfpwpxmfoOmkppnjnjnjnjnjgjgiiuiwiviFiviHiGhxnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaiaNaNaNaNaNaNaNaNaNpypzpApzpzpzpzpCoOJboOoOoOoOmkppnjnjnjnjnjgjiIiwiviJiSiKiviHiTnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaNaNaNaNaNaNaNaNaNaNpFaVoBpvpvpvoCnjmimfmfmfmhoOmkppoBpvpvpvpvpvpviviJiSiUiSiKiviTnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaNaNaNaNaNaNaNaNaNaNaNaWaNaiababaXnjpRpSpTpSjOoOpUpViWiViViXiViViWiFiSiYjjjiiSiFiTnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjaYabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaZabaonjqfqgqhqiqjoOoOoOoBpvpvpvpvpvpviviJiSjkiSiSiviTnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaNaNaNaNaNaNaNaNaNaNaNaNaNaNalabaonjnjppqtqrqunjqwoOnjnjnjnjnjgjiIjsiviJiSiKivjtiTnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaNaNaNaNaNaNaNaNaNaNaNaNaNaNanabababnjnjnjnjnjnjqDqDqEqFqGqHnjgjjvjujsivjwivjtjxjynjaNaNaNatatatatatatatatatatatatatatatatatatatatataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaiaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaiabababbababbaXnjqLqMqMqMqMqMnjjzgjjvjJjJjKjJjJjyjznjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalababacababaoqXqMqMqMqMqMmlnjnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalababadbcakamnjrerererererfnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalababaonjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbdabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbXbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNabaNaNaNaNaNabaNaNaNaNaNalabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNabaiaNaNaNaiabaNaNaNaNaNalabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaiaNaNaNaiabababababababaiaNaNaNaiababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErHrErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqasaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rKrErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWcPbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNbZbZbZbZbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNbZbZbZbZbZbZrPrQdebZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNbZcYlZrUrVrWrXrXrXbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNbZrXrXrXrXrXrXrYrZbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNbZsasbsbsbscsdsesbbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckaackckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmUmVmEmEmEmEmEmEmEmEatatblblatatatatatatatatatatatatatblblatataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckaEckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmrmrmrmWmrmXmOmOmMmEmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbnaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmrmYnamZmrmEmEmEmEnbncataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmrndndnemrnfngngngnhniataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNckckckckckckckckckawckckckckckaxckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmrndnkmrmraNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjaNaNaNmrmrmrmrmraNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababababababababacababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababacabababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNnlnmataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababacLXabababLXababababacabLXabababababababacababLXabababacabnjaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabLXabacababLXabababLXabababababacababLXabababababababacLXabababnjaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNatatatatatatatatatatatatatatatatatatatatataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababaonjScnjKwnjalabaonjScnjScnjalababababababacabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababaoBFoOBFoOBFalabaoBFoOBFoOBFalabacababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbXbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababLXabamCEoOCEoOCEanagamCEoOCEoOCETGagagababLXabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabLXababacLXababaonjnjScnjScnjQbpvoCnjScnjScnjnjnjnjxvababacababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababLXababababacaonjLPoOoOoOLPoOoOoOLPoOoOoOLPoOoOnjalabababLXabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababLXabababaonjoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOnjalacababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjLXababababLXabLXaonjQbpvpvpvpvpvpvpvpvpvpvpvoCnjBGnjalabLXabacabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababLXacababagagagZTZTZTZTbababababababababaaXnjoOnjxvabacabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaiaNaNaNaNaNaNaNaiacababLXababagagamnjoOnjalabababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjacLXabababaNaNaNaNaNaNaNaNaNxvabababacamnjnjqXnjQmnjCNagVprDVpagnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaNaNaNaNaNaNaNaNaNalabababaonjnjoHoIXBoOnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaNaNaNaNaNaNaNaNaNalLXabadaonjaLoOoOoOoOfZoQoRnjfYjMmgnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabKLabababaiaNaNaNaNaNaNaNaiababababRKnjpaoOmfmfpcoOpdpepWpXpXganjnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErHrErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababaNaNaNaNaNCNagagagagVpamnjplmfpmjNmfoOmkppnjpXggnjnjghgjgigxgxhggxgxhxhGnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababLXabababaNaNaNaNaNpupvpvpvpvpvoCnjmhmfpwpxmfoOmkppnjnjnjnjnjgjgiiupNiviFivXSiGhxnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjacabaiaNaNaNaNaNaNaNaNaNpypzpApzpzpzpzpCoOJboOoOoOoOmkppnjnjnjnjnjgjiIpNiviJiSiKivXSiTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaNaNaNaNaNaNaNaNaNaNpFaVoBpvpvpvoCnjmimfmfmfmhoOmkppoBpvpvpvpvpvpviviJiSiUiSiKiviTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaNaNaNaNaNaNaNaNaNaNaNaWaNaiababaXnjpRpSpTpSjOoOpUpViWiViViXiViViWiFiSiYjjjiiSiFiTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqasaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjaYabaNaNaNaNaNaNaNaNaNaNaNaNaNaNUuabaonjqfqgqhqiqjoOoOoOoBpvpvpvpvpvpviviJiSjkiSiSiviTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjLXabaNaNaNaNaNaNaNaNaNaNaNaNaNaNalabaonjnjppqtqrqunjqwoOnjnjnjnjnjgjiIAriviJiSiKivqpiTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rKrErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWcPbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaNaNaNaNaNaNaNaNaNaNaNaNaNaNanabababnjnjnjnjnjnjqDqDqEqFqGqHnjgjjvjuArivjwivqpjxjynjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaiaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaiabababbabaPEaXnjqLqMqMqMqMqMnjjzgjjvjJjJjKjJjJjyjznjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalababacababaoqXqMqMqMqMqMmlnjnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalababadVyOoamnjrerererererfnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalababaonjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNTTLXababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNbZbZbZbZbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNabaNaNaNaNaNabaNaNaNaNaNalabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNbZbZbZbZbZbZrPrQdebZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNabaiaNaNaNaiabaNaNaNaNaNalabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNbZcYlZrUrVrWrXrXrXbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaiaNaNaNaiabababababababaiaNaNaNaiababLXabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNbZrXrXrXrXrXrXrYrZbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNbZsasbsbsbscsdsesbbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNsfsgsgsgsgsashsisjbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNbZsgskslsmsasnsomdbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNbZbZbZbZbZbZbZbZbZbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN diff --git a/code/controllers/Processes/shuttles.dm b/code/controllers/Processes/shuttles.dm index e1b29abb76d..9c01974a1a9 100644 --- a/code/controllers/Processes/shuttles.dm +++ b/code/controllers/Processes/shuttles.dm @@ -229,10 +229,4 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 for(var/obj/docking_port/mobile/M in mobile) if(!M.roundstart_move) continue - for(var/obj/docking_port/stationary/S in stationary) - if(!is_station_level(S.z) && findtext(S.id, M.id)) - S.width = M.width - S.height = M.height - S.dwidth = M.dwidth - S.dheight = M.dheight - moveShuttle(M.id, "[M.roundstart_move]", 0) + M.dockRoundstart() diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index fd6f07960e1..b197971de7b 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -192,19 +192,7 @@ var/list/potential_theft_objectives = subtypesof(/datum/theft_objective) \ if(shuttle_master.emergency.areaInstance != A) return 0 - for(var/mob/living/player in player_list) - if(player.mind && player.mind != owner) - if(player.stat != DEAD) - if(issilicon(player)) //Borgs are technically dead anyways - continue - if(isanimal(player)) //Poly does not own the shuttle - continue - if(player.mind.special_role && !(player.mind.special_role == SPECIAL_ROLE_ERT)) //Is antag, and not ERT - continue - - if(get_area(player) == A) - return 0 - return 1 + return shuttle_master.emergency.is_hijacked() /datum/objective/hijackclone explanation_text = "Hijack the emergency shuttle by ensuring only you (or your copies) escape." diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index f1ad87ddc7c..5f01cf8e890 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -166,12 +166,36 @@ shuttle_master.emergencyLastCallLoc = null emergency_shuttle_recalled.Announce("The emergency shuttle has been recalled.[shuttle_master.emergencyLastCallLoc ? " Recall signal traced. Results can be viewed on any communications console." : "" ]") -/* -/obj/docking_port/mobile/emergency/findTransitDock() - . = shuttle_master.getDock("emergency_transit") - if(.) return . - return ..() -*/ +/obj/docking_port/mobile/emergency/proc/is_hijacked() + for(var/mob/living/player in player_list) + if(player.mind) + if(player.stat != DEAD) + if(issilicon(player)) //Borgs are technically dead anyways + continue + if(isanimal(player)) //Poly does not own the shuttle + continue + + var/special_role = player.mind.special_role + if(special_role) + if(special_role == SPECIAL_ROLE_TRAITOR) // traitors can hijack the shuttle + continue + + if(special_role == SPECIAL_ROLE_CHANGELING) // changelings as well + continue + + if(special_role == SPECIAL_ROLE_VAMPIRE || special_role == SPECIAL_ROLE_VAMPIRE_THRALL) // for traitorvamp + continue + + if(special_role == SPECIAL_ROLE_NUKEOPS) // so can nukeops, for the hell of it + continue + + if(special_role == SPECIAL_ROLE_SYNDICATE_DEATHSQUAD) // and the syndie deathsquad i guess + continue + + if(get_area(player) == areaInstance) + return FALSE + + return TRUE /obj/docking_port/mobile/emergency/check() @@ -232,10 +256,19 @@ //move each escape pod to its corresponding escape dock for(var/obj/docking_port/mobile/pod/M in shuttle_master.mobile) M.dock(shuttle_master.getDock("[M.id]_away")) - //now move the actual emergency shuttle to centcomm + for(var/area/shuttle/escape/E in world) E << 'sound/effects/hyperspace_end.ogg' - dock(shuttle_master.getDock("emergency_away")) + + // now move the actual emergency shuttle to centcomm + // unless the shuttle is "hijacked" + var/destination_dock = "emergency_away" + if(is_hijacked()) + destination_dock = "emergency_syndicate" + priority_announcement.Announce("Corruption detected in shuttle navigation protocols. Please contact your supervisor.") + + dock_id(destination_dock) + mode = SHUTTLE_ENDGAME timer = 0 open_dock() diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 1a03d3141c5..9bcad399ea5 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -279,7 +279,7 @@ else // This isn't an error, per se, but we can't let the shuttle code // attempt to move us where we currently are, it will get weird. - return SHUTTLE_ALREADY_DOCKED + return SHUTTLE_ALREADY_DOCKED return SHUTTLE_CAN_DOCK /obj/docking_port/mobile/proc/check_dock(obj/docking_port/stationary/S) @@ -489,8 +489,14 @@ // Instead of spending a lot of time trying to work out where to place // our shuttle, just create it somewhere empty and send it to where // it should go - var/obj/docking_port/stationary/D = findRoundstartDock() - return dock(D) + . = dock_id(roundstart_move) + +/obj/docking_port/mobile/proc/dock_id(id) + var/port = shuttle_master.getDock(id) + if(port) + . = dock(port) + else + . = null /obj/effect/landmark/shuttle_import name = "Shuttle Import" From 20535738f11b119dbc19689573a47b08ea3a6fd6 Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Fri, 6 Jan 2017 10:18:06 -0800 Subject: [PATCH 002/101] Mapmerged the fastDMM stuff. --- _maps/map_files/cyberiad/z2.dmm | 104 ++++++++++++++++---------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm index fdcfafda2fd..736f2aa4831 100644 --- a/_maps/map_files/cyberiad/z2.dmm +++ b/_maps/map_files/cyberiad/z2.dmm @@ -2,8 +2,13 @@ "ab" = (/turf/unsimulated/floor/snow,/area/syndicate_mothership) "ac" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/area/syndicate_mothership) "ad" = (/obj/structure/flora/bush,/turf/unsimulated/floor/snow,/area/syndicate_mothership) +"ae" = (/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow,/area/syndicate_mothership) +"af" = (/obj/machinery/door/airlock/external{id_tag = "syndicate_away"; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "ag" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) +"ah" = (/obj/machinery/door/airlock/external{id_tag = "syndicate_away"; req_access_txt = "150"},/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dir = 1; dwidth = 11; height = 13; id = "emergency_syndicate"; name = "404 Not Found"; turf_type = /turf/unsimulated/floor/snow; width = 24},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "ai" = (/turf/unsimulated/floor/snow,/area/space) +"aj" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/syndicate_mothership) +"ak" = (/turf/unsimulated/wall/fakeglass{dir = 0; icon_state = "fakewindows"; tag = "icon-fakewindows (EAST)"},/area/syndicate_mothership) "al" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) "am" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (SOUTHEAST)"; icon_state = "gravsnow_corner"; dir = 6},/area/syndicate_mothership) "an" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (SOUTHWEST)"; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership) @@ -37,11 +42,18 @@ "aP" = (/obj/structure/window/reinforced,/turf/unsimulated/wall{tag = "icon-iron12"; icon_state = "iron12"},/area/space) "aQ" = (/turf/unsimulated/wall{tag = "icon-iron14"; icon_state = "iron14"},/area/space) "aR" = (/turf/unsimulated/wall{tag = "icon-iron10"; icon_state = "iron10"},/area/space) +"aS" = (/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (SOUTHWEST)"; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership) +"aT" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) +"aU" = (/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) "aV" = (/obj/machinery/door/airlock/external{id_tag = "syndicate_away"; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "aW" = (/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_away"; name = "syndicate recon outpost"; turf_type = /turf/unsimulated/floor/snow; width = 18},/turf/space,/area/space) "aX" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (NORTHEAST)"; icon_state = "gravsnow_corner"; dir = 5},/area/syndicate_mothership) "aY" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/unsimulated/floor/snow,/area/syndicate_mothership) +"aZ" = (/obj/machinery/light{dir = 1; on = 1},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "ba" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (NORTH)"; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership) +"bb" = (/obj/machinery/light{dir = 4},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"bc" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (NORTH)"; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership) +"bd" = (/obj/machinery/door/airlock/centcom{name = "Shuttle Dock #2"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "be" = (/obj/machinery/computer/shuttle/ert,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/specops) "bf" = (/obj/machinery/door/airlock/external{id_tag = "specops_away"; name = "Shuttle Hatch"; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops) "bg" = (/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 11; id = "specops_away"; name = "centcom bay 3"; width = 5},/turf/space,/area/space) @@ -424,6 +436,7 @@ "it" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_mothership) "iu" = (/obj/effect/decal/warning_stripes/southeast,/turf/simulated/floor/plating/airless,/area/syndicate_mothership) "iv" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/assault_pod) +"iw" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (SOUTHWEST)"; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership) "ix" = (/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/wizard_station) "iy" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/wizard_station) "iz" = (/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/wizard_station) @@ -434,6 +447,7 @@ "iE" = (/turf/space,/turf/unsimulated/wall{dir = 1; icon = 'icons/turf/shuttle.dmi'; icon_state = "diagonalWall3"},/area/space) "iF" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_one_access_txt = "150"},/turf/simulated/floor/plating,/area/shuttle/assault_pod) "iG" = (/obj/effect/decal/warning_stripes/southwest,/turf/simulated/floor/plating/airless,/area/syndicate_mothership) +"iH" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) "iI" = (/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plating/airless,/area/syndicate_mothership) "iJ" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/assault_pod) "iK" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/assault_pod) @@ -470,6 +484,8 @@ "jp" = (/turf/simulated/floor/plasteel,/area/tdome/arena_source) "jq" = (/turf/simulated/floor/plasteel{icon_state = "green"; dir = 4},/area/tdome/arena_source) "jr" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/energy/sword/saber/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source) +"js" = (/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) +"jt" = (/obj/item/weapon/storage/fancy/crayons,/obj/machinery/light{dir = 1; on = 1},/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "ju" = (/obj/effect/decal/warning_stripes/northeast,/turf/simulated/floor/plating/airless,/area/syndicate_mothership) "jv" = (/obj/effect/decal/warning_stripes/northeastcorner,/turf/simulated/floor/plating/airless,/area/syndicate_mothership) "jw" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_one_access_txt = "150"},/obj/docking_port/mobile/assault_pod,/turf/simulated/floor/plating,/area/shuttle/assault_pod) @@ -728,8 +744,19 @@ "op" = (/obj/machinery/light/spot,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/escape) "oq" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/escape) "or" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape) +"os" = (/obj/structure/flora/tree/pine{pixel_x = 1},/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/area/syndicate_mothership) +"ot" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (EAST)"; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) +"ou" = (/obj/machinery/gun_turret/assault_pod,/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"ov" = (/obj/machinery/gun_turret/assault_pod,/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"ow" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) +"ox" = (/obj/machinery/gun_turret/assault_pod,/turf/space,/turf/simulated/shuttle/wall{tag = "icon-diagonalWall3"; icon_state = "diagonalWall3"; dir = 2},/area/shuttle/assault_pod) +"oy" = (/obj/machinery/gun_turret/assault_pod,/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"oz" = (/obj/structure/flora/bush,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (NORTH)"; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership) +"oA" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) "oB" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (WEST)"; icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) "oC" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (EAST)"; icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership) +"oD" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) +"oE" = (/obj/structure/flora/bush,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) "oH" = (/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "oI" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "oO" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) @@ -751,7 +778,6 @@ "pA" = (/obj/machinery/light,/turf/unsimulated/floor{icon_state = "floor"},/area/syndicate_mothership) "pC" = (/obj/machinery/door/poddoor{id_tag = "nukeop_ready"; name = "Shuttle Dock Door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "pF" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership) -"pN" = (/obj/machinery/gun_turret/assault_pod,/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) "pR" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership) "pS" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership) "pT" = (/obj/structure/table/woodentable,/obj/item/device/syndicatedetonator,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership) @@ -764,7 +790,6 @@ "qh" = (/obj/effect/decal/warning_stripes/south,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership) "qi" = (/obj/effect/decal/warning_stripes/southwestcorner,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership) "qj" = (/obj/machinery/door/window{dir = 4; name = "Uplink Management Control"; req_access_txt = "151"},/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership) -"qp" = (/obj/machinery/gun_turret/assault_pod,/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) "qr" = (/obj/structure/sign/double/map/left{pixel_y = -32},/obj/effect/decal/warning_stripes/west,/obj/machinery/light,/obj/structure/rack/skeletal_bar/left,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership) "qt" = (/obj/machinery/computer/telecrystals/boss,/turf/unsimulated/floor{icon_state = "floor4"},/area/syndicate_mothership) "qu" = (/obj/structure/sign/double/map/right{pixel_y = -32},/obj/structure/rack/skeletal_bar/right,/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership) @@ -779,7 +804,6 @@ "qX" = (/turf/unsimulated/wall/fakeglass{dir = 8; icon_state = "fakewindows3"; tag = "icon-fakewindows (WEST)"},/area/syndicate_mothership) "re" = (/obj/structure/closet/syndicate/personal,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/syndicate_mothership) "rf" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/syndicate_mothership) -"rD" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) "rE" = (/turf/unsimulated/wall,/area/start) "rH" = (/obj/effect/landmark/start,/turf/unsimulated/floor,/area/start) "rK" = (/turf/unsimulated/wall/splashscreen,/area/start) @@ -1023,7 +1047,6 @@ "xm" = (/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/evac) "xn" = (/obj/machinery/door/window/westright{name = "security checkpoint"; req_access_txt = "104"},/obj/structure/table,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac) "xo" = (/obj/machinery/door/window/eastleft{name = "security checkpoint"; req_access_txt = "104"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac) -"xv" = (/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) "xx" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom) "xy" = (/turf/unsimulated/floor{icon_state = "green"; dir = 10},/area/centcom/evac) "xz" = (/obj/effect/spawner/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) @@ -1111,7 +1134,6 @@ "zW" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/centcom/evac) "zX" = (/obj/structure/grille,/obj/structure/window/full/shuttle{icon_state = "15"},/turf/simulated/floor/plating,/area/centcom/evac) "Al" = (/obj/machinery/door/airlock/hatch{name = "Infirmary"; req_access_txt = "0"},/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area/centcom/evac) -"Ar" = (/obj/machinery/gun_turret/assault_pod,/turf/space,/turf/simulated/shuttle/wall{tag = "icon-diagonalWall3"; icon_state = "diagonalWall3"; dir = 2},/area/shuttle/assault_pod) "Aw" = (/turf/unsimulated/wall,/area/centcom) "AD" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -30; pixel_y = 0; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/centcom/evac) "AM" = (/obj/structure/table,/turf/simulated/shuttle/floor,/area/centcom/evac) @@ -1131,10 +1153,6 @@ "Bq" = (/obj/structure/grille,/obj/structure/window/full/shuttle{icon_state = "window4"},/turf/simulated/floor/plating,/area/centcom/evac) "Br" = (/obj/structure/grille,/obj/structure/window/full/shuttle{dir = 10; icon_state = "9"},/turf/simulated/floor/plating,/area/centcom/evac) "Bs" = (/obj/structure/grille,/obj/structure/window/full/shuttle{icon_state = "17"},/turf/simulated/floor/plating,/area/centcom/evac) -"BF" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/syndicate_mothership) -"BG" = (/obj/machinery/light{dir = 4},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"CE" = (/turf/unsimulated/wall/fakeglass{dir = 0; icon_state = "fakewindows"; tag = "icon-fakewindows (EAST)"},/area/syndicate_mothership) -"CN" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (SOUTHWEST)"; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership) "Dt" = (/turf/space,/turf/unsimulated/wall{dir = 8; icon = 'icons/turf/shuttle.dmi'; icon_state = "diagonalWall3"},/area/admin) "Du" = (/turf/space,/turf/unsimulated/wall{dir = 1; icon = 'icons/turf/shuttle.dmi'; icon_state = "diagonalWall3"},/area/admin) "Dv" = (/turf/space,/area/admin) @@ -1413,24 +1431,6 @@ "IU" = (/obj/structure/table,/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "thunderdomegen"; name = "General Equiptment"; pixel_x = 0; pixel_y = 5; req_access_txt = "104"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin) "IV" = (/obj/structure/table,/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "thunderdomeaxe"; name = "Specialist Supply"; pixel_x = 0; pixel_y = 5; req_access_txt = "104"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin) "Jb" = (/mob/living/simple_animal/pet/cat/Syndi,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"Kw" = (/obj/machinery/door/airlock/external{id_tag = "syndicate_away"; req_access_txt = "150"},/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dir = 1; dwidth = 11; height = 13; id = "emergency_syndicate"; name = "404 Not Found"; turf_type = /turf/unsimulated/floor/snow; width = 24},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"KL" = (/obj/structure/flora/tree/pine{pixel_x = 1},/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/area/syndicate_mothership) -"LP" = (/obj/machinery/light{dir = 1; on = 1},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"LX" = (/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow,/area/syndicate_mothership) -"Oo" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) -"PE" = (/obj/structure/flora/bush,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (NORTH)"; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership) -"Qb" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) -"Qm" = (/obj/machinery/door/airlock/centcom{name = "Shuttle Dock #2"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"RK" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (EAST)"; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) -"Sc" = (/obj/machinery/door/airlock/external{id_tag = "syndicate_away"; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"TG" = (/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (SOUTHWEST)"; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership) -"TT" = (/obj/structure/flora/bush,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) -"Uu" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) -"Vp" = (/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) -"Vy" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) -"XB" = (/obj/item/weapon/storage/fancy/crayons,/obj/machinery/light{dir = 1; on = 1},/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"XS" = (/obj/machinery/gun_turret/assault_pod,/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) -"ZT" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (NORTH)"; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership) (1,1,1) = {" ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaOaPaPaPaPaPaQaPaPaPaPaPaQaPaPaPaPaPaQaPaPaPaPaPaQaPaPaPaPaPaQaPaPaPaPaPaQaPaPaPaPaPaQaPaPaPaPaPaR @@ -1486,8 +1486,8 @@ aNckckckckckckckckckawckckckckckaxckckckckckckckckckaNaNckckckckckckckckckckckck aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjaNaNaNmrmrmrmrmraNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababababababababacababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababacabababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNnlnmataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababacLXabababLXababababacabLXabababababababacababLXabababacabnjaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabLXabacababLXabababLXabababababacababLXabababababababacLXabababnjaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababacaeabababaeababababacabaeabababababababacababaeabababacabnjaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaeabacababaeabababaeabababababacababaeabababababababacaeabababnjaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN @@ -1501,36 +1501,36 @@ aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckck aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababaonjScnjKwnjalabaonjScnjScnjalababababababacabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababaoBFoOBFoOBFalabaoBFoOBFoOBFalabacababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbXbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababLXabamCEoOCEoOCEanagamCEoOCEoOCETGagagababLXabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabLXababacLXababaonjnjScnjScnjQbpvoCnjScnjScnjnjnjnjxvababacababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababLXababababacaonjLPoOoOoOLPoOoOoOLPoOoOoOLPoOoOnjalabababLXabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababLXabababaonjoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOnjalacababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjLXababababLXabLXaonjQbpvpvpvpvpvpvpvpvpvpvpvoCnjBGnjalabLXabacabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababLXacababagagagZTZTZTZTbababababababababaaXnjoOnjxvabacabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaiaNaNaNaNaNaNaNaiacababLXababagagamnjoOnjalabababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjacLXabababaNaNaNaNaNaNaNaNaNxvabababacamnjnjqXnjQmnjCNagVprDVpagnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaNaNaNaNaNaNaNaNaNalabababaonjnjoHoIXBoOnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaNaNaNaNaNaNaNaNaNalLXabadaonjaLoOoOoOoOfZoQoRnjfYjMmgnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabKLabababaiaNaNaNaNaNaNaNaiababababRKnjpaoOmfmfpcoOpdpepWpXpXganjnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErHrErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababaNaNaNaNaNCNagagagagVpamnjplmfpmjNmfoOmkppnjpXggnjnjghgjgigxgxhggxgxhxhGnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababLXabababaNaNaNaNaNpupvpvpvpvpvoCnjmhmfpwpxmfoOmkppnjnjnjnjnjgjgiiupNiviFivXSiGhxnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjacabaiaNaNaNaNaNaNaNaNaNpypzpApzpzpzpzpCoOJboOoOoOoOmkppnjnjnjnjnjgjiIpNiviJiSiKivXSiTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababaonjafnjahnjalabaonjafnjafnjalababababababacabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababaoajoOajoOajalabaoajoOajoOajalabacababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbXbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababaeabamakoOakoOakanagamakoOakoOakaSagagababaeabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaeababacaeababaonjnjafnjafnjaTpvoCnjafnjafnjnjnjnjaUababacababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaeababababacaonjaZoOoOoOaZoOoOoOaZoOoOoOaZoOoOnjalabababaeabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababaeabababaonjoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOnjalacababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjaeababababaeabaeaonjaTpvpvpvpvpvpvpvpvpvpvpvoCnjbbnjalabaeabacabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaeacababagagagbcbcbcbcbababababababababaaXnjoOnjaUabacabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaiaNaNaNaNaNaNaNaiacababaeababagagamnjoOnjalabababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjacaeabababaNaNaNaNaNaNaNaNaNaUabababacamnjnjqXnjbdnjiwagjsiHjsagnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaNaNaNaNaNaNaNaNaNalabababaonjnjoHoIjtoOnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaNaNaNaNaNaNaNaNaNalaeabadaonjaLoOoOoOoOfZoQoRnjfYjMmgnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabosabababaiaNaNaNaNaNaNaNaiababababotnjpaoOmfmfpcoOpdpepWpXpXganjnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErHrErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababaNaNaNaNaNiwagagagagjsamnjplmfpmjNmfoOmkppnjpXggnjnjghgjgigxgxhggxgxhxhGnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababaeabababaNaNaNaNaNpupvpvpvpvpvoCnjmhmfpwpxmfoOmkppnjnjnjnjnjgjgiiuouiviFivoviGhxnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjacabaiaNaNaNaNaNaNaNaNaNpypzpApzpzpzpzpCoOJboOoOoOoOmkppnjnjnjnjnjgjiIouiviJiSiKivoviTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaNaNaNaNaNaNaNaNaNaNpFaVoBpvpvpvoCnjmimfmfmfmhoOmkppoBpvpvpvpvpvpviviJiSiUiSiKiviTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaNaNaNaNaNaNaNaNaNaNaNaWaNaiababaXnjpRpSpTpSjOoOpUpViWiViViXiViViWiFiSiYjjjiiSiFiTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqasaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjaYabaNaNaNaNaNaNaNaNaNaNaNaNaNaNUuabaonjqfqgqhqiqjoOoOoOoBpvpvpvpvpvpviviJiSjkiSiSiviTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjLXabaNaNaNaNaNaNaNaNaNaNaNaNaNaNalabaonjnjppqtqrqunjqwoOnjnjnjnjnjgjiIAriviJiSiKivqpiTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -rKrErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWcPbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaNaNaNaNaNaNaNaNaNaNaNaNaNaNanabababnjnjnjnjnjnjqDqDqEqFqGqHnjgjjvjuArivjwivqpjxjynjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaiaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaiabababbabaPEaXnjqLqMqMqMqMqMnjjzgjjvjJjJjKjJjJjyjznjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqasaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjaYabaNaNaNaNaNaNaNaNaNaNaNaNaNaNowabaonjqfqgqhqiqjoOoOoOoBpvpvpvpvpvpviviJiSjkiSiSiviTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjaeabaNaNaNaNaNaNaNaNaNaNaNaNaNaNalabaonjnjppqtqrqunjqwoOnjnjnjnjnjgjiIoxiviJiSiKivoyiTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +rKrErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWcPbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaNaNaNaNaNaNaNaNaNaNaNaNaNaNanabababnjnjnjnjnjnjqDqDqEqFqGqHnjgjjvjuoxivjwivoyjxjynjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaiaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaiabababbabaozaXnjqLqMqMqMqMqMnjjzgjjvjJjJjKjJjJjyjznjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalababacababaoqXqMqMqMqMqMmlnjnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalababadVyOoamnjrerererererfnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalababadoDoAamnjrerererererfnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalababaonjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNTTLXababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNoEaeababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNbZbZbZbZbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNabaNaNaNaNaNabaNaNaNaNaNalabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNbZbZbZbZbZbZrPrQdebZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNabaiaNaNaNaiabaNaNaNaNaNalabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNbZcYlZrUrVrWrXrXrXbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaiaNaNaNaiabababababababaiaNaNaNaiababLXabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNbZcYlZrUrVrWrXrXrXbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaiaNaNaNaiabababababababaiaNaNaNaiababaeabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNbZrXrXrXrXrXrXrYrZbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNbZsasbsbsbscsdsesbbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNsfsgsgsgsgsashsisjbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN From 9635f803e013892e96d90c5f15e021d4a48ecc8f Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Fri, 13 Jan 2017 09:53:31 -0800 Subject: [PATCH 003/101] Update Meta z2 & Fix Cyberiad z2 --- _maps/map_files/MetaStation/z2.dmm | 156 +++++++++++++++-------------- _maps/map_files/cyberiad/z2.dmm | 6 +- 2 files changed, 86 insertions(+), 76 deletions(-) diff --git a/_maps/map_files/MetaStation/z2.dmm b/_maps/map_files/MetaStation/z2.dmm index 59ab53037cc..251bbbc604c 100644 --- a/_maps/map_files/MetaStation/z2.dmm +++ b/_maps/map_files/MetaStation/z2.dmm @@ -19,13 +19,13 @@ "as" = (/turf/unsimulated/wall{tag = "icon-iron10"; icon_state = "iron10"},/area/space) "at" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/area/syndicate_mothership) "au" = (/obj/structure/flora/bush,/turf/unsimulated/floor/snow,/area/syndicate_mothership) -"av" = (/obj/structure/flora/tree/pine{pixel_x = 2},/turf/unsimulated/floor/snow,/area/syndicate_mothership) -"aw" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor/snow,/area/syndicate_mothership) +"av" = (/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow,/area/syndicate_mothership) +"aw" = (/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dir = 1; dwidth = 5; height = 14; id = "emergency_syndicate"; name = "404 Not Found"; turf_type = /turf/unsimulated/floor/snow; width = 25},/turf/unsimulated/floor/snow,/area/syndicate_mothership) "ax" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) -"ay" = (/obj/structure/flora/tree/pine{pixel_x = 0},/turf/unsimulated/floor/snow,/area/syndicate_mothership) +"ay" = (/obj/machinery/door/airlock/external{id_tag = "syndicate_away"; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "az" = (/turf/unsimulated/floor/snow,/area/space) -"aA" = (/turf/unsimulated/floor/snow,/obj/structure/flora/bush,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) -"aB" = (/turf/unsimulated/floor/snow,/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) +"aA" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/syndicate_mothership) +"aB" = (/turf/unsimulated/wall/fakeglass{dir = 0; icon_state = "fakewindows"; tag = "icon-fakewindows (EAST)"},/area/syndicate_mothership) "aC" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) "aD" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (SOUTHEAST)"; icon_state = "gravsnow_corner"; dir = 6},/area/syndicate_mothership) "aE" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (SOUTHWEST)"; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership) @@ -48,7 +48,7 @@ "aV" = (/turf/unsimulated/wall,/area/vox_station) "aW" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (EAST)"; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) "aX" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"aY" = (/obj/item/device/radio/intercom/syndicate{pixel_x = 0; pixel_y = 25},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"aY" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) "aZ" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor{tag = "icon-asteroid"; icon_state = "asteroid"; dir = 2},/area/holodeck/source_desert) "ba" = (/turf/simulated/floor/holofloor{tag = "icon-asteroid8 (EAST)"; icon_state = "asteroid8"; dir = 4},/area/holodeck/source_desert) "bb" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) @@ -84,10 +84,10 @@ "bF" = (/obj/structure/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet11-12 (EAST)"; icon_state = "carpet11-12"; dir = 4},/area/holodeck/source_theatre) "bG" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/source_emptycourt) "bH" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/source_emptycourt) -"bI" = (/turf/unsimulated/floor/snow,/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (EAST)"; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) +"bI" = (/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) "bJ" = (/turf/simulated/floor/holofloor{tag = "icon-carpet2-0 (EAST)"; icon_state = "carpet2-0"; dir = 4},/area/holodeck/source_theatre) -"bK" = (/turf/unsimulated/floor/snow,/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (SOUTHWEST)"; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership) -"bL" = (/turf/unsimulated/floor/snow,/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) +"bK" = (/obj/machinery/light{dir = 1; on = 1},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"bL" = (/obj/machinery/light{dir = 4},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "bM" = (/mob/living/simple_animal/pet/cat/Syndi,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "bN" = (/obj/machinery/door/airlock/external{id_tag = "syndicate_away"; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "bO" = (/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_away"; name = "syndicate recon outpost"; turf_type = /turf/unsimulated/floor/snow; width = 18},/turf/space,/area/space) @@ -98,7 +98,7 @@ "bT" = (/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/vox_station) "bU" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/unsimulated/floor/snow,/area/syndicate_mothership) "bV" = (/turf/simulated/floor/holofloor{tag = "icon-asteroid1 (EAST)"; icon_state = "asteroid1"; dir = 4},/area/holodeck/source_desert) -"bW" = (/turf/unsimulated/floor/snow,/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) +"bW" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (NORTH)"; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership) "bX" = (/turf/simulated/floor/holofloor{tag = "icon-asteroid3 (EAST)"; icon_state = "asteroid3"; dir = 4},/area/holodeck/source_desert) "bY" = (/turf/simulated/floor/holofloor{tag = "icon-carpet1-0 (EAST)"; icon_state = "carpet1-0"; dir = 4},/area/holodeck/source_theatre) "bZ" = (/obj/structure/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet5-1 (EAST)"; icon_state = "carpet5-1"; dir = 4},/area/holodeck/source_theatre) @@ -116,9 +116,9 @@ "cl" = (/turf/unsimulated/wall{tag = "icon-iron11"; icon_state = "iron11"},/area/space) "cm" = (/obj/structure/sign/double/map/right{pixel_y = -32},/obj/structure/rack/skeletal_bar/right,/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership) "cn" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (NORTH)"; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership) -"co" = (/turf/unsimulated/floor/snow,/obj/structure/flora/bush,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (NORTH)"; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership) -"cp" = (/turf/unsimulated/floor/snow,/obj/structure/flora/tree/pine,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) -"cq" = (/turf/unsimulated/floor/snow,/obj/structure/flora/bush,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) +"co" = (/obj/machinery/door/airlock/centcom{name = "Shuttle Dock #2"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"cp" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (SOUTHWEST)"; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership) +"cq" = (/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) "cr" = (/turf/simulated/floor/holofloor{tag = "icon-1 (NORTHEAST)"; icon_state = "1"; dir = 5},/area/holodeck/source_space) "cs" = (/turf/simulated/floor/holofloor{tag = "icon-17 (NORTHEAST)"; icon_state = "17"; dir = 5},/area/holodeck/source_space) "ct" = (/turf/simulated/floor/holofloor{tag = "icon-22 (NORTHEAST)"; icon_state = "22"; dir = 5},/area/holodeck/source_space) @@ -332,7 +332,7 @@ "gt" = (/obj/structure/urinal{pixel_y = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "gu" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/suppy) "gv" = (/obj/structure/closet/crate,/turf/unsimulated/floor{tag = "icon-plating"; icon_state = "plating"},/area/centcom/suppy) -"gw" = (/obj/item/weapon/mop,/obj/structure/mirror{pixel_x = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) +"gw" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) "gx" = (/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "gy" = (/obj/structure/toilet{dir = 8},/obj/structure/window/reinforced/tinted{dir = 1},/obj/machinery/door/window{dir = 8; name = "Tactical Toilet"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "gz" = (/turf/unsimulated/wall/fakeglass,/area/centcom/suppy) @@ -372,10 +372,10 @@ "hh" = (/obj/structure/stool/bed/chair/office/dark,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac) "hi" = (/obj/effect/decal/warning_stripes/southeast,/turf/simulated/floor/plating/airless,/area/syndicate_mothership) "hj" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/assault_pod) -"hk" = (/turf/space,/obj/machinery/gun_turret/assault_pod,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"hk" = (/obj/item/weapon/storage/fancy/crayons,/obj/machinery/light{dir = 1; on = 1},/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "hl" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_one_access_txt = "150"},/turf/simulated/floor/plating,/area/shuttle/assault_pod) "hm" = (/obj/effect/decal/warning_stripes/southwest,/turf/simulated/floor/plating/airless,/area/syndicate_mothership) -"hn" = (/turf/space,/obj/machinery/gun_turret/assault_pod,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"hn" = (/obj/item/device/radio/intercom/syndicate{pixel_x = 0; pixel_y = 25},/obj/item/weapon/twohanded/required/kirbyplants,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "ho" = (/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plating/airless,/area/syndicate_mothership) "hp" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry) "hq" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry) @@ -396,7 +396,7 @@ "hF" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/light/small{tag = "icon-bulb1 (WEST)"; icon_state = "bulb1"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/assault_pod) "hG" = (/obj/machinery/computer/shuttle/syndicate/drop_pod,/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/assault_pod) "hH" = (/obj/structure/stool/bed/chair,/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/assault_pod) -"hI" = (/turf/space,/obj/machinery/gun_turret/assault_pod,/turf/simulated/shuttle/wall{tag = "icon-diagonalWall3"; icon_state = "diagonalWall3"; dir = 2},/area/shuttle/assault_pod) +"hI" = (/obj/item/weapon/mop,/obj/structure/mirror{pixel_x = 28},/obj/item/weapon/twohanded/required/kirbyplants,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "hJ" = (/obj/machinery/vending/clothing,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry) "hK" = (/turf/unsimulated/floor/grass,/area/centcom/control) "hL" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/control) @@ -407,7 +407,7 @@ "hQ" = (/obj/structure/rack,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac) "hR" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/obj/item/toy/sword,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac) "hS" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/evac) -"hT" = (/turf/space,/obj/machinery/gun_turret/assault_pod,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"hT" = (/obj/structure/flora/tree/pine{pixel_x = 1},/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/area/syndicate_mothership) "hU" = (/obj/effect/decal/warning_stripes/northeast,/turf/simulated/floor/plating/airless,/area/syndicate_mothership) "hV" = (/obj/effect/decal/warning_stripes/northeastcorner,/turf/simulated/floor/plating/airless,/area/syndicate_mothership) "hW" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_one_access_txt = "150"},/obj/docking_port/mobile/assault_pod,/turf/simulated/floor/plating,/area/shuttle/assault_pod) @@ -515,16 +515,29 @@ "jU" = (/obj/machinery/door/poddoor/preopen{id_tag = "CentComPort"; name = "security door"},/turf/unsimulated/floor{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/area/centcom/control) "jV" = (/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/evac) "jW" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/unsimulated/wall,/area/centcom/evac) +"jX" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (EAST)"; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) +"jY" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"jZ" = (/obj/structure/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/obj/effect/decal/warning_stripes/east,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"ka" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"kb" = (/obj/machinery/gun_turret/assault_pod,/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"kc" = (/obj/machinery/gun_turret/assault_pod,/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"kd" = (/obj/machinery/door_control{id = "nukeop_ready"; name = "Mission Launch Control"; pixel_x = -26; pixel_y = -2; req_access_txt = "151"},/obj/item/weapon/twohanded/required/kirbyplants,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "ke" = (/turf/unsimulated/floor{tag = "icon-darkgreencorners"; icon_state = "darkgreencorners"},/area/centcom/ferry) "kf" = (/turf/unsimulated/floor{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/centcom/evac) "kg" = (/turf/unsimulated/floor{tag = "icon-yellowsiding"; icon_state = "yellowsiding"},/area/centcom/evac) "kh" = (/turf/unsimulated/floor{tag = "icon-yellowcornersiding (WEST)"; icon_state = "yellowcornersiding"; dir = 8},/area/centcom/evac) +"ki" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) "kj" = (/turf/unsimulated/wall/fakeglass,/area/centcom/ferry) +"kk" = (/obj/machinery/gun_turret/assault_pod,/turf/space,/turf/simulated/shuttle/wall{tag = "icon-diagonalWall3"; icon_state = "diagonalWall3"; dir = 2},/area/shuttle/assault_pod) "kl" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control) "km" = (/turf/unsimulated/floor{tag = "icon-redcorner (WEST)"; icon_state = "redcorner"; dir = 8},/area/centcom/evac) "kn" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1},/area/centcom/evac) "ko" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1},/area/centcom/evac) "kp" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{tag = "icon-red (NORTHEAST)"; icon_state = "red"; dir = 5},/area/centcom/evac) +"kq" = (/obj/machinery/gun_turret/assault_pod,/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"kr" = (/obj/structure/flora/bush,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (NORTH)"; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership) +"ks" = (/obj/structure/stool,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/syndicate_mothership) +"kt" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) "ku" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry) "kv" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/ferry) "kw" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/ferry) @@ -532,6 +545,8 @@ "ky" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/centcom/evac) "kz" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac) "kA" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{tag = "icon-red (EAST)"; icon_state = "red"; dir = 4},/area/centcom/evac) +"kB" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) +"kC" = (/obj/structure/flora/bush,/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) "kF" = (/obj/structure/dresser,/obj/structure/mirror{pixel_x = 0; pixel_y = 30},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry) "kG" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 5},/obj/item/weapon/pen/blue,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/ferry) "kH" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry) @@ -561,7 +576,6 @@ "lD" = (/turf/unsimulated/wall/fakeglass,/area/centcom/evac) "lP" = (/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "lQ" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"lR" = (/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/obj/item/weapon/storage/fancy/crayons,/obj/machinery/light{dir = 1; on = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "lS" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry) "lW" = (/turf/unsimulated/floor{tag = "icon-darkred (EAST)"; icon_state = "darkred"; dir = 4},/area/centcom/ferry) "lX" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve) @@ -583,7 +597,6 @@ "mL" = (/turf/unsimulated/wall{tag = "icon-uranium5"; icon_state = "uranium5"},/area/wizard_station) "mM" = (/turf/unsimulated/wall{tag = "icon-uranium10"; icon_state = "uranium10"},/area/wizard_station) "mR" = (/obj/structure/noticeboard{pixel_x = -32},/obj/item/weapon/paper/syndimemo,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"mS" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "mT" = (/mob/living/simple_animal/pet/fox/Syndifox,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "mU" = (/obj/effect/decal/warning_stripes/southeastcorner,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "mV" = (/obj/effect/decal/warning_stripes/south,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) @@ -598,7 +611,6 @@ "np" = (/turf/unsimulated/wall{tag = "icon-uranium3"; icon_state = "uranium3"},/area/wizard_station) "nu" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "nv" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/cans/beer{pixel_x = -2; pixel_y = 5},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"nx" = (/obj/structure/stool{pixel_y = 8},/obj/effect/landmark{name = "Syndicate-Spawn"},/obj/effect/decal/warning_stripes/east,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "ny" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{icon_state = "floor4"},/area/syndicate_mothership) "nB" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = -5},/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{pixel_x = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry) "nC" = (/turf/unsimulated/floor{tag = "icon-darkblue"; icon_state = "darkblue"; dir = 2},/area/centcom/ferry) @@ -631,7 +643,6 @@ "oz" = (/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) "oA" = (/obj/structure/mirror{pixel_x = 28},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) "oD" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership) -"oF" = (/obj/machinery/door_control{id = "nukeop_ready"; name = "Mission Launch Control"; pixel_x = -26; pixel_y = -2; req_access_txt = "151"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "oK" = (/turf/simulated/shuttle/wall{icon_state = "swall0"; dir = 2},/area/wizard_station) "oL" = (/turf/unsimulated/wall/fakedoor{name = "Squad 4 Pod"},/area/wizard_station) "oM" = (/turf/simulated/shuttle/wall{icon_state = "swall4"; dir = 2},/area/wizard_station) @@ -693,7 +704,6 @@ "qC" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/rig/wizard,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) "qD" = (/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) "qO" = (/turf/unsimulated/wall/fakeglass{dir = 8; icon_state = "fakewindows3"; tag = "icon-fakewindows (WEST)"},/area/syndicate_mothership) -"qP" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/syndicate_mothership) "qQ" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) "qR" = (/obj/machinery/door/poddoor{id_tag = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) "qS" = (/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2) @@ -967,56 +977,56 @@ abababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfVabababababababgzgigjgjgjgjgAgvgvgvfVabgkgkgkgkgkgkgkgkgkabababababababababjqjrjrjrjrjrjrjrjsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfVabababababababfVgFgGgHgjgIfVgvgvgvfVabgkgogkgogkgogkgogkabababababababababjCjEjDjFjFjFjFjGjCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfVabababababababfVfVfVfVfVgMfVfVfVfVfVabgkgkgkgkgkgkgkgkgkabgNgNgNgNgNgNababjCjEjEjEjEjEjEjEjCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfVfVfVfVfVfVfVgOgPgPgPgQgRgQgPgPgPgOabgkgogkgogkgogkgogkabgNgSgTgTgUgNgOgOjCjEjEjEjEjEjEjEjCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgVgVgVgVgVgOgPgWgPgXgYgXgPgWgPgOabgkgkgkgkgkgkgkgkgkabgZhahahahajHgYjJjIjEjEjEjEjEjEjEjCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgVhbhchdhegVgPgPgPhfgYhfgPgPgPgOabababababababababababgNhahghhhagNgOgOjCjEjEjEjEjEjEjEjCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgVhphqhchcgVhrgOhrgOgYgOhrgOhrgOabababgNgNgNgNgNgNgNgNgNhshthuhvgNababjCjEjEjEjEjEjEjEjCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgVhchchchJgVhKgQhLgYgYgYhMhrhKgOabababgNhNhOhOhOhPhQhRhShahahahagNababjCjEjEjEjKjEjEjEjCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVhXgVgVhKgXhYgYgYgYhZgOhrgOgOgOgOgNiaibibibibibibichahahahagNababjLjrjrjrjrjrjrjrjMabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgViiiiiiiiiiiiiiiiiiiiiiiiiiijikilimgVhKgXhYgYgYgYgYgYinioipipiqgNiaibibibibibibirisitiuivgNfYfYababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgViiiDabababababababababiDiiiEikizimgVhKgXhYgYgYgYhMgOhrgOgOipiGgNiaibibibibibiHiIiJibibiKgNfYfYababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSababababababababababababababababababababababababababgViDabababababababababababiZjadlizimgVhKhfhYgYgYgYjbhrhKgOjcjdjegNjfibibibibjgjhjiiJibibiKgNfYfYababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababiSamamamamamamamamamamamatamamamamamamamamamamamamamamamamamamiSababababababababababababababababababababababababababgVabababababababababababeojtjuikizjvgVjwgVjxgYgYgYhZgOhrgOhrjyhrgNjzibibibibjAjAjAjBibibiKgNababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababiSamamamamatamamamamamamamamamamamamamamamamamamamamamamamamamiSababababababababababababababababababababababababababgViDabababababababababababiZjPikiziljQjRjRgYgYgYgYgYgYinjSipjTipjUjVibibibibibibibibibibiKjWababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababiSamamamamamamamamamauamamamamamamamamamamamamavamamatamawamamiSababababababababababababababababababababababababababgViiiDabababababababababiDiiiEikizkegVjwgVhLgYgYgYhMgOhrgOgOgOgOgNkfibibibibkgkgkgkhibibiKgNgNgNgNgNgNgNgNgNababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababiSamamamamamamamamamamamamamamamamamamamawamawamamamamawamamamiSababababababababababababababababababababababababababgViiiiiiiiiiiiiiiiiiiiiiiiiikjikilimgVhKgQhYgYgYgYklgQhKgOabababgNkmibibibibknkokpiJibibibibibibibibibibibgNababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababiSamamamamamamamamamamamamamamamamamatamamauamamatawamauamamamiSababababababababababababababababababababababababababgVgVgVgVgVgVgVkukvkvkwgVgVgVgVgVkxgVgVhKgXhYgYgYgYklgXhKgOabababgNkyibibibibibkzkAiJibibibibibibibibibibibgNababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababiSamamamamamamaxaxaxaxaxaxaxamamamamayamamatamayamamamatamamamiSabababababababababababababababababababababababababababababgVilkFilililililililkGkHilililgVhKhfhYgYgYgYklhfhKgOabababgNkyibibibibibibibibibibibibibibibibibibibgNababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababiSamamamamamazabababababababazatamamamamamaAaxaxaBaxaBamamawamiSabababababababababababababababababababababababababababababgVililililiAiliAililililililkUgVkVkVkWkXkYkZlakVkVkVabababgNkyibibibibibibibiLfZiLiMiLisisisiLfZiLfZiLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababiSamamamamamabababababababababaCamamamataDiSiSlmlniSiSaEaxaxaxiSabababababababababababababababababababababababababababababgVloilillplplplpiBililililillrgVlsltlulvlwlxlultltkVabababgNlylzlzlzlAlBlClAicibiciKicabababicibicibicababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababiSamamamamamabababababababababaCamamamaWiSiSlPlQlQlRiSiSiSiSiSiSiSiSabababababababababababababababababababababababababababgVlSiliClpjNjOlpilililililillWgVltlXlYlvlwlxlYlZltkVabababgNgNgNgNgNgNgNgNgNlDiNlDiNlDababablDfZlDfZlDababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamfmgmhmiaaaaaaaaaaaaaaaaaaaaaaababababababiSamamamamamabababababababababaCamamauaWiSaXmnmnmnmnaYmompiSgtiwgwiSabababababababababababababababababababababababababababgVmuilillplplplpiBilililililmvgVmwltmwlvlwlxmwltmwkVabababababababababababababababababababababiOabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaamHaamIgamKmLmMaaaaaaaaaaaaaaaaaaaaababababababiSamamamamamazabababababababazamamamambIiSmRmnmSmSmTmnmUmVpcpdpdgxiSiSiSiSiSiSiSiSiSiSiSiSababababababababababababababababgVmYililiFiliFilililililililnagVnbltltlvlwlxltltnckVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaamHnlnmnnmKnonpaaaaaaaaaaaaaaaaaaaaababababababiSamamamamamamamabababababbKaxaxamambLaDiSnumSnvixmSmnnxnyiSpdgyiSiSgBgDgCgEgEgJgEgEgKgLiSababababababababababababababababgVnBilililililililnCnDnEnFnanGgVnHnInIlvlwlxnJnJnKkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaanpnXnYnonZoanpaaaaaaaaaaaaaaaaaaaaababababababiSamamamamamamamabababababodoeoeoeoeoelniSmnmSofogmSmnnxnyiSiSiSiSiSgDgChihkhjhlhjhnhmgKiSababababababababababababababababgVgVgVgVgVohgVgVgVgVgVgVgVgVgVgVkVkVkVkVlwkVkVkVkVkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaamLmMolomolonooaaaaaaaaaaaaaaaaaaaaababababababiSamamazabababababababababopoqoroqoqoqoqotmnbMmnmnmnmnnxnyiSiSiSiSiSgDhohkhjhwhyhxhjhnhziSabababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaamHmHoooyozoAmLaaaaaaaaaaaaaaaaaaaaaaababababababiSamamababababababababababoDbNlmoeoeoelniSoFmSmSmSmnmnnxnylmoeoeoeoeoeoehjhwhyhAhyhxhjhziSabababababababababababababababababababababababababababababababababababkVkYkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaoKoLoMoNoOoPmKoQmHaaaaaaaaaaaaaaaaaaaaababababababiSamamabababababababababababbOabazamambPiSoXoYoZoYiymnpapbhChBhBhDhBhBhChlhyhEhGhFhyhlhziSabababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaphpipjpkploOmKnYpmpnmHmHaaaaaaaaaaaaaaaaababababababiSbUamababababababababababababababbWamaWiScfpvpwpxpymnmnmnlmoeoeoeoeoeoehjhwhyhHhyhyhjhziSabababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaamHaaoMpDpDpEoOmKpFnYpnaapGpHaaaaaaaaaaaaaaababababababiSamamababababababababababababababaCamaWiSiSnypPcgcmiSpSmniSiSiSiSiSgDhohIhjhwhyhxhjhThziSabababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaoQmHaaaamHpTpUnnpVnnoQmHmHaaaaaaaaaaaaaaaaababababababiSamamababababababababababababababaEamamamiSiSiSiSiSiSqcqcqdqeqfqgiSgDhVhUhIhjhWhjhTidieiSabababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaonqiqjqkqlqmqlqlqiqnqkqlqlqmqlqlaamHaaaaaaaaaaababababababiSamazabababababababababababababababazamamamcncncobPiSqrqsqsqsqsqsiSifgDhVigigihigigieifiSabababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaqwqxmKmKqxqwqyqzmKmKmKqAqBqwqCozoQqDmHmHaaaaaaababababababiSamabababababababababababababababababaCamamatamamaWqOqsqsqsqsqsqPiSiSiSiSiSiSiSiSiSiSiSiSabababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaqYqZmKmKqZqYqDqDmKmKmKmKraqYrbrcpDpDrdaaaaaaaaababababababiSamabababababababababababababababababaCamamaucpaBaDiSrjrjrjrjrjrkiSababababababababababababababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaarnromKnYmKrppFnYmKgbmKmKrrrnrsrtrurvrwrxaaaaaaababababababiSamabababababababababababababababababaCamamaWiSiSiSiSiSiSiSiSiSiSiSababababababababababababababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaarGqZmKnnpFrHnnmKmKrImKmKmKrGrJrKrdrLoKaaaaaaaaababababababiSamabababababababababababababababababcqamamamiSababababababababababababababababababababababababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaamirWmKmKrWmirXmKnYnnmKmKrXmirYrZsasbaaaaaaaaaaababababababiSamabababababababababababababababababaCamamamiSababababababababababababababababababababababababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaamLqisfqkqlsgqlqiolsholqkqlsgqlqimHmHmHaaaaaaaaababababababiSamabababababamabababababamabababababaCamamamiSababababababababababababababababababababababababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaapTnYaamHaamHsooPpTaaaamHaaaaaaaamHaaaaaaaaababababababiSamabababababamazabababazamabababababaCamamamiSababababababababababababababababababababababababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaamHmHaastnYaasusvpTmHaapFaaaaaaaaaaaaaaaaaaababababababiSamazabababazamamamamamamamazabababazamamamamiSabababababababababababababababababababababababababababababababababababababababababababababababababsJsJsJsJsJsJsJsJiPsJsJsJsJsJsJsJsJababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaamHmHaasBnYsCaaaaaamHaaaaaaaaaaaaaaaaababababababiSamamamamamamamamamamamamamamamamamamamamamamiSabababababababababababababababababababababababababababababababababababababababababababababababababsJiQiRiRiRiRiRiQiQiQiRiRiRiRiRiQsJababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaamHqmqisIqkqmmHaamHmHaaaaaaaaaaaaaaababababababiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSabababababababababababababababababababababababababababababababababababababababababababababababababiTiQiQiQiUiQiQiQiQiQiQiQiUiQiQiQiTababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaqwsMsNsOqwstrcplsPsQmHaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababsJiQiRiRiRiRiRiQiQiQiRiRiRiRiRiQsJababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaolsVsWsXolnYsYpksZmKnpaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababsJsxsysysysysysysysysysysysysyszsJababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaoPmHmitatbtcminntdpksZaamHaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqtqtqtqtqtqtqtqtqtquqvqvqvqvqvqvqvqvqvqvqvqvqvquqtqtqtqtqtqtqtqtqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaamHqmteqiolqkteqmtftgsZaamHaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqtqQqRqSqSqSqSqSqTqUqvqvqvqvqvqvqvqvqvqvqvqvqvqVqTqWqWqWqWqWqRqXqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaamHqwmKtitjtimKqwaatkaaaamHaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqtqQqRqSrlqSrlqSqTqUqvqvqvqvqvqvqvqvqvqvqvqvqvqVqTqWrmqWrmqWqRqXqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaamHnYtxmKmKmKmKmKtxaaaaaaaanYaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqtqQqRqSqSrCqSqSqTqUqvqvqvqvqvrDrErDqvqvqvqvqvqVqTqWqWrFqWqWqRqXqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaamHmHoPmKmitBmKmKmKtBmiaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqtqQqRqSqSqSqSqSqTqUqvqvqvqvqvrDrVrDqvqvqvqvqvqVqTqWqWqWqWqWqRqXqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaamHqlqltHtItItItItItJaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqtqQqRqSrlqSrlqSqTqUqvqvqvqvqvqvqvqvqvqvqvqvqvqVqTqWrmqWrmqWqRqXqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaamLqitMtMtMqkooaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqtqQqRqSqSqSqSqSqTqUqvqvqvqvqvqvqvqvqvqvqvqvqvqVqTqWqWqWqWqWqRqXqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatPtPtPaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqtqtqtssssssssssqtquqvqvqvqvqvqvqvqvqvqvqvqvqvquqtssssssssssqtqtqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqtswswswswswkVkZqhqhqhqhqhqhqhqhqhqhqhqhqhkXkVsAsAsAsAsAqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSababababababababababababababababababababababababababababababababababfVfVfVfVfVfVfVgOgPgPgPgQgRgQgPgPgPgOabgkgogkgogkgogkgogkabgNgSgTgTgUgNgOgOjCjEjEjEjEjEjEjEjCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababiSamamamamamamamamamamamamamamamamamatamamamamamamamamamamamamamamiSababababababababababababababababababababababababababababababababababababgVgVgVgVgVgOgPgWgPgXgYgXgPgWgPgOabgkgkgkgkgkgkgkgkgkabgZhahahahajHgYjJjIjEjEjEjEjEjEjEjCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababiSamamamamamamatamamamamamamamamamamamamamamamamamamamamamamamamamiSababababababababababababababababababababababababababababababababababababgVhbhchdhegVgPgPgPhfgYhfgPgPgPgOabababababababababababgNhahghhhagNgOgOjCjEjEjEjEjEjEjEjCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababiSamamamatavamamamavamamamamatamavamamamamamamamatamamavamamamatamiSababababababababababababababababababababababababababababababababababababgVhphqhchcgVhrgOhrgOgYgOhrgOhrgOabababgNgNgNgNgNgNgNgNgNhshthuhvgNababjCjEjEjEjEjEjEjEjCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababiSamavamatamamavamamamavamamamamamatamamavamamamamamamamatavamamamiSababababababababababababababababababababababababababababababababababababgVhchchchJgVhKgQhLgYgYgYhMhrhKgOabababgNhNhOhOhOhPhQhRhShahahahagNababjCjEjEjEjKjEjEjEjCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababiSamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamiSabababababababababababababababababababababababgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVhXgVgVhKgXhYgYgYgYhZgOhrgOgOgOgOgNiaibibibibibibichahahahagNababjLjrjrjrjrjrjrjrjMabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababiSamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamiSabababababababababababababababababababababababgViiiiiiiiiiiiiiiiiiiiiiiiiiijikilimgVhKgXhYgYgYgYgYgYinioipipiqgNiaibibibibibibirisitiuivgNfYfYababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababiSamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamiSabababababababababababababababababababababababgViiiDabababababababababiDiiiEikizimgVhKgXhYgYgYgYhMgOhrgOgOipiGgNiaibibibibibiHiIiJibibiKgNfYfYababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababiSamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamiSabababababababababababababababababababababababgViDabababababababababababiZjadlizimgVhKhfhYgYgYgYjbhrhKgOjcjdjegNjfibibibibjgjhjiiJibibiKgNfYfYababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababiSamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamiSabababababababababababababababababababababababgVabababababababababababeojtjuikizjvgVjwgVjxgYgYgYhZgOhrgOhrjyhrgNjzibibibibjAjAjAjBibibiKgNababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababiSamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamiSabababababababababababababababababababababababgViDabababababababababababiZjPikiziljQjRjRgYgYgYgYgYgYinjSipjTipjUjVibibibibibibibibibibiKjWababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababiSamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamiSabababababababababababababababababababababababgViiiDabababababababababiDiiiEikizkegVjwgVhLgYgYgYhMgOhrgOgOgOgOgNkfibibibibkgkgkgkhibibiKgNgNgNgNgNgNgNgNgNababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababiSamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamiSabababababababababababababababababababababababgViiiiiiiiiiiiiiiiiiiiiiiiiikjikilimgVhKgQhYgYgYgYklgQhKgOabababgNkmibibibibknkokpiJibibibibibibibibibibibgNababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababiSamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamiSabababababababababababababababababababababababgVgVgVgVgVgVgVkukvkvkwgVgVgVgVgVkxgVgVhKgXhYgYgYgYklgXhKgOabababgNkyibibibibibkzkAiJibibibibibibibibibibibgNababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababiSamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamiSababababababababababababababababababababababababababgVilkFilililililililkGkHilililgVhKhfhYgYgYgYklhfhKgOabababgNkyibibibibibibibibibibibibibibibibibibibgNababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababiSamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamiSababababababababababababababababababababababababababgVililililiAiliAililililililkUgVkVkVkWkXkYkZlakVkVkVabababgNkyibibibibibibibiLfZiLiMiLisisisiLfZiLfZiLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababiSamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamiSababababababababababababababababababababababababababgVloilillplplplpiBililililillrgVlsltlulvlwlxlultltkVabababgNlylzlzlzlAlBlClAicibiciKicabababicibicibicababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababiSamamamamamamamamamamamamawamamamamamamamamamamamamamamamamamamamiSababababababababababababababababababababababababababgVlSiliClpjNjOlpilililililillWgVltlXlYlvlwlxlYlZltkVabababgNgNgNgNgNgNgNgNgNlDiNlDiNlDababablDfZlDfZlDababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamfmgmhmiaaaaaaaaaaaaaaaaaaaaaaabababababababiSamamamamamamamamamiSayiSayiSaCamaWiSayiSayiSaCamamamamamamamatamiSababababababababababababababababababababababababababgVmuilillplplplpiBilililililmvgVmwltmwlvlwlxmwltmwkVabababababababababababababababababababababiOabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaamHaamIgamKmLmMaaaaaaaaaaaaaaaaaaaaabababababababiSamamamamamamamamamaAmnaAmnaAaCamaWaAmnaAmnaAaCamamatamamamamamamiSababababababababababababababababababababababababababgVmYililiFiliFilililililililnagVnbltltlvlwlxltltnckVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaamHnlnmnnmKnonpaaaaaaaaaaaaaaaaaaaaabababababababiSamamamamamamamavamaBmnaBmnaBaEaxaDaBmnaBmnaBaEavaxaxamamavamamamiSababababababababababababababababababababababababababgVnBilililililililnCnDnEnFnanGgVnHnInIlvlwlxnJnJnKkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaanpnXnYnonZoanpaaaaaaaaaaaaaaaaaaaaabababababababiSamavamamatavamamaWiSayiSayiSaYoelniSayiSayiSiSiSiSiSbIamamatamamiSababababababababababababababababababababababababababgVgVgVgVgVohgVgVgVgVgVgVgVgVgVgVkVkVkVkVlwkVkVkVkVkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaamLmMolomolonooaaaaaaaaaaaaaaaaaaaaabababababababiSamamavamamamamataWiSbKmnmnmnbKmnmnmnbKmnmnmnbKmnmniSaCamamamavamiSabababababababababababababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaamHmHoooyozoAmLaaaaaaaaaaaaaaaaaaaaaaabababababababiSamamamamavamamamaWiSmnmnmnmnmnmnmnmnmnmnmnmnmnmnmniSaCatamamamamiSabababababababababababababababababababababababababababababababababababababababababababababkVkYkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaoKoLoMoNoOoPmKoQmHaaaaaaaaaaaaaaaaaaaaabababababababiSavamamamamavamavaWiSaYoeoeoeoeoeoeoeoeoeoeoelniSbLiSaCamavamatamiSabababababababababababababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaphpipjpkploOmKnYpmpnmHmHaaaaaaaaaaaaaaaaabababababababiSamamavatamamaxaxaxbWbWbWbWcncncncncncncncncnbPiSmniSbIamatamamamiSabababababababababababababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaamHaaoMpDpDpEoOmKpFnYpnaapGpHaaaaaaaaaaaaaaabababababababiSamamamamamazabababababababazatamamavamamaxaxaDiSmniSaCamamamamamiSabababababababababababababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaoQmHaaaamHpTpUnnpVnnoQmHmHaaaaaaaaaaaaaaaaabababababababiSatavamamamabababababababababbIamamamataDiSiSqOiScoiScpaxcqgwcqaxiSabababababababababababababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaonqiqjqkqlqmqlqlqiqnqkqlqlqmqlqlaamHaaaaaaaaaaabababababababiSamamamamamabababababababababaCamamamaWiSiSlPlQhkmniSiSiSiSiSiSiSiSabababababababababababababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaqwqxmKmKqxqwqyqzmKmKmKqAqBqwqCozoQqDmHmHaaaaaaabababababababiSamamamamamabababababababababaCavamauaWiSaXmnmnmnmnhnmompiSgtiwhIiSabababababababababababababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaqYqZmKmKqZqYqDqDmKmKmKmKraqYrbrcpDpDrdaaaaaaaaabababababababiSamhTamamamazabababababababazamamamamjXiSmRmnjYjYmTmnmUmVpcpdpdgxiSiSiSiSiSiSiSiSiSiSiSiSababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaarnromKnYmKrppFnYmKgbmKmKrrrnrsrtrurvrwrxaaaaaaabababababababiSamamamamamamamabababababcpaxaxaxaxcqaDiSnujYnvixjYmnjZnyiSpdgyiSiSgBgDgCgEgEgJgEgEgKgLiSababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaarGqZmKnnpFrHnnmKmKrImKmKmKrGrJrKrdrLoKaaaaaaaaabababababababiSamamamavamamamabababababodoeoeoeoeoelniSkajYofogjYmnjZnyiSiSiSiSiSgDgChikbhjhlhjkchmgKiSababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaamirWmKmKrWmirXmKnYnnmKmKrXmirYrZsasbaaaaaaaaaaabababababababiSatamazabababababababababopoqoroqoqoqoqotmnbMmnmnmnmnjZnyiSiSiSiSiSgDhokbhjhwhyhxhjkchziSababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaamLqisfqkqlsgqlqiolsholqkqlsgqlqimHmHmHaaaaaaaaabababababababiSamamababababababababababoDbNlmoeoeoelniSkdjYjYjYkamnjZnylmoeoeoeoeoeoehjhwhyhAhyhxhjhziSababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaapTnYaamHaamHsooPpTaaaamHaaaaaaaamHaaaaaaaaabababababababiSamamabababababababababababbOabazamambPiSoXoYoZoYiymnpapbhChBhBhDhBhBhChlhyhEhGhFhyhlhziSababababababababababababababababababababababababababababababababababkVlwkVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaamHmHaastnYaasusvpTmHaapFaaaaaaaaaaaaaaaaaaabababababababiSbUamababababababababababababababkiamaWiScfpvpwpxpymnmnmnlmoeoeoeoeoeoehjhwhyhHhyhyhjhziSabababababababababababababababababababababababababababsJsJsJsJsJsJsJsJiPsJsJsJsJsJsJsJsJababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaamHmHaasBnYsCaaaaaamHaaaaaaaaaaaaaaaaabababababababiSavamababababababababababababababaCamaWiSiSnypPcgcmiSpSmniSiSiSiSiSgDhokkhjhwhyhxhjkqhziSabababababababababababababababababababababababababababsJiQiRiRiRiRiRiQiQiQiRiRiRiRiRiQsJababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaamHqmqisIqkqmmHaamHmHaaaaaaaaaaaaaaabababababababiSamamababababababababababababababaEamamamiSiSiSiSiSiSqcqcqdqeqfqgiSgDhVhUkkhjhWhjkqidieiSabababababababababababababababababababababababababababiTiQiQiQiUiQiQiQiQiQiQiQiUiQiQiQiTababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaqwsMsNsOqwstrcplsPsQmHaaaaaaaaaaabababababababiSamazabababababababababababababababazamamamcncnkrbPiSqrqsqsqsqsqsiSifgDhVigigihigigieifiSabababababababababababababababababababababababababababsJiQiRiRiRiRiRiQiQiQiRiRiRiRiRiQsJababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaolsVsWsXolnYsYpksZmKnpaaaaaaaaaaabababababababiSamabababababababababababababababababaCamamatamamaWqOqsqsqsqsqsksiSiSiSiSiSiSiSiSiSiSiSiSabababababababababababababababababababababababababababsJsxsysysysysysysysysysysysysyszsJababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaoPmHmitatbtcminntdpksZaamHaaaaaaaaaaabababababababiSamabababababababababababababababababaCamamauktkBaDiSrjrjrjrjrjrkiSababababababababababababababababababababababababababababababqtqtqtqtqtqtqtqtqtquqvqvqvqvqvqvqvqvqvqvqvqvqvquqtqtqtqtqtqtqtqtqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaamHqmteqiolqkteqmtftgsZaamHaaaaaaaaaaabababababababiSamabababababababababababababababababaCamamaWiSiSiSiSiSiSiSiSiSiSiSababababababababababababababababababababababababababababababqtqQqRqSqSqSqSqSqTqUqvqvqvqvqvqvqvqvqvqvqvqvqvqVqTqWqWqWqWqWqRqXqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaamHqwmKtitjtimKqwaatkaaaamHaaaaaaaaaaabababababababiSamabababababababababababababababababkCavamamiSababababababababababababababababababababababababababababababababababababababababqtqQqRqSrlqSrlqSqTqUqvqvqvqvqvqvqvqvqvqvqvqvqvqVqTqWrmqWrmqWqRqXqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaamHnYtxmKmKmKmKmKtxaaaaaaaanYaaaaaaaaaaabababababababiSamabababababababababababababababababaCamamamiSababababababababababababababababababababababababababababababababababababababababqtqQqRqSqSrCqSqSqTqUqvqvqvqvqvrDrErDqvqvqvqvqvqVqTqWqWrFqWqWqRqXqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaamHmHoPmKmitBmKmKmKtBmiaaaaaaaaaaaaaaaaaaaaabababababababiSamabababababamabababababamabababababaCamamamiSababababababababababababababababababababababababababababababababababababababababqtqQqRqSqSqSqSqSqTqUqvqvqvqvqvrDrVrDqvqvqvqvqvqVqTqWqWqWqWqWqRqXqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaamHqlqltHtItItItItItJaaaaaaaaaaaaaaaaaaaaabababababababiSamabababababamazabababazamabababababaCamamamiSababababababababababababababababababababababababababababababababababababababababqtqQqRqSrlqSrlqSqTqUqvqvqvqvqvqvqvqvqvqvqvqvqvqVqTqWrmqWrmqWqRqXqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaamLqitMtMtMqkooaaaaaaaaaaaaaaaaaaaaabababababababiSamazabababazamamamamamamamazabababazamamavamiSababababababababababababababababababababababababababababababababababababababababqtqQqRqSqSqSqSqSqTqUqvqvqvqvqvqvqvqvqvqvqvqvqvqVqTqWqWqWqWqWqRqXqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatPtPtPaaaaaaaaaaaaaaaaaaaaaaaaabababababababiSamamamamamamamamamamamamamamamamamamamamamamiSababababababababababababababababababababababababababababababababababababababababqtqtqtssssssssssqtquqvqvqvqvqvqvqvqvqvqvqvqvqvquqtssssssssssqtqtqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSiSababababababababababababababababababababababababababababababababababababababababababqtswswswswswkVkZqhqhqhqhqhqhqhqhqhqhqhqhqhkXkVsAsAsAsAsAqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqtqtqtqtqtqtkViViWiWiWiWiWiXjjiYiWiWiWiWiWiVkVqtqtqtqtqtqtababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababkViViViVjkiVltltltltltiVjkiViViVkVababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababkVkVjlkVkVkVkVjmjojnkVkVkVkVjlkVkVababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm index 736f2aa4831..30d0cae1643 100644 --- a/_maps/map_files/cyberiad/z2.dmm +++ b/_maps/map_files/cyberiad/z2.dmm @@ -5,7 +5,7 @@ "ae" = (/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow,/area/syndicate_mothership) "af" = (/obj/machinery/door/airlock/external{id_tag = "syndicate_away"; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "ag" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership) -"ah" = (/obj/machinery/door/airlock/external{id_tag = "syndicate_away"; req_access_txt = "150"},/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dir = 1; dwidth = 11; height = 13; id = "emergency_syndicate"; name = "404 Not Found"; turf_type = /turf/unsimulated/floor/snow; width = 24},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"ah" = (/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dir = 1; dwidth = 11; height = 13; id = "emergency_syndicate"; name = "404 Not Found"; turf_type = /turf/unsimulated/floor/snow; width = 24},/turf/unsimulated/floor/snow,/area/syndicate_mothership) "ai" = (/turf/unsimulated/floor/snow,/area/space) "aj" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/syndicate_mothership) "ak" = (/turf/unsimulated/wall/fakeglass{dir = 0; icon_state = "fakewindows"; tag = "icon-fakewindows (EAST)"},/area/syndicate_mothership) @@ -1500,8 +1500,8 @@ aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckck aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNatatatatatatatatatatatatatatatatatatatatataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababaonjafnjahnjalabaonjafnjafnjalababababababacabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababababahababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababaonjafnjafnjalabaonjafnjafnjalababababababacabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababaoajoOajoOajalabaoajoOajoOajalabacababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbXbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababaeabamakoOakoOakanagamakoOakoOakaSagagababaeabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaeababacaeababaonjnjafnjafnjaTpvoCnjafnjafnjnjnjnjaUababacababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN From 5fa8d3319362f54d58782888f8b8f2db5112711d Mon Sep 17 00:00:00 2001 From: uraniummeltdown Date: Sun, 22 Jan 2017 07:07:32 +0400 Subject: [PATCH 004/101] tweaked event delay, enabled morph, enabled immovable rod --- code/modules/events/event_container.dm | 12 ++++++++++-- code/modules/events/immovable_rod.dm | 11 ++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index deaa1b85aa8..c2dc2109cd2 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -101,8 +101,15 @@ var/list/event_last_fired = list() playercount_modifier = 1 if(26 to 35) playercount_modifier = 0.9 - if(36 to 100000) + if(36 to 50) playercount_modifier = 0.8 + if(50 to 70) + playercount_modifier = 0.7 + if(70 to 90) + playercount_modifier = 0.6 + if(90 to 50000) + playercount_modifier = 0.5 + playercount_modifier = playercount_modifier * delay_modifier var/event_delay = rand(config.event_delay_lower[severity], config.event_delay_upper[severity]) * playercount_modifier @@ -155,6 +162,7 @@ var/list/event_last_fired = list() new /datum/event_meta(EVENT_LEVEL_MODERATE, "Spider Infestation", /datum/event/spider_infestation, 100, list(ASSIGNMENT_SECURITY = 30), 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Ion Storm", /datum/event/ion_storm, 0, list(ASSIGNMENT_AI = 50, ASSIGNMENT_CYBORG = 50, ASSIGNMENT_ENGINEER = 15, ASSIGNMENT_SCIENTIST = 5)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Borer Infestation", /datum/event/borer_infestation, 40, list(ASSIGNMENT_SECURITY = 30), 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Immovable Rod", /datum/event/immovable_rod, 0, list(ASSIGNMENT_ENGINEER = 30), 1), //new /datum/event_meta/ninja(EVENT_LEVEL_MODERATE, "Space Ninja", /datum/event/space_ninja, 0, list(ASSIGNMENT_SECURITY = 15), 1), // NON-BAY EVENTS new /datum/event_meta(EVENT_LEVEL_MODERATE, "Mass Hallucination", /datum/event/mass_hallucination, 300), @@ -170,7 +178,7 @@ var/list/event_last_fired = list() new /datum/event_meta(EVENT_LEVEL_MODERATE, "Gravitational Anomaly", /datum/event/anomaly/anomaly_grav, 200), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Revenant", /datum/event/revenant, 150), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Swarmer Spawn", /datum/event/spawn_swarmer, 150, is_one_shot = 1), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Morph Spawn", /datum/event/spawn_morph, 0, is_one_shot = 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Morph Spawn", /datum/event/spawn_morph, 100, is_one_shot = 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Disease Outbreak", /datum/event/disease_outbreak, 0, list(ASSIGNMENT_MEDICAL = 150), 1) ) diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm index b1a5a0f054a..5c643d95d80 100644 --- a/code/modules/events/immovable_rod.dm +++ b/code/modules/events/immovable_rod.dm @@ -11,7 +11,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 announceWhen = 5 /datum/event/immovable_rod/announce() - event_announcement.Announce("What the fuck was that?!", "General Alert") + event_announcement.Announce("Immovable object inbound. Brace for impact.", "Collision Alert") /datum/event/immovable_rod/start() var/startside = pick(cardinal) @@ -34,6 +34,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 loc = start z_original = z destination = end + notify_ghosts("\A [src] is inbound!", source = src) if(end && end.z==z_original) walk_towards(src, destination, 1) @@ -43,7 +44,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 return ..() /obj/effect/immovablerod/ex_act(test) - return 0 + return FALSE /obj/effect/immovablerod/Bump(atom/clong) if(prob(10)) @@ -54,12 +55,12 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 x = clong.x y = clong.y - if(istype(clong, /turf) || istype(clong, /obj)) + if(isturf(clong) || isobj(clong)) if(clong.density) clong.ex_act(2) - else if(istype(clong, /mob)) - if(istype(clong, /mob/living/carbon/human)) + else if(ismob(clong)) + if(ishuman(clong)) var/mob/living/carbon/human/H = clong H.visible_message("[H.name] is penetrated by an immovable rod!" , "The rod penetrates you!" , "You hear a CLANG!") H.adjustBruteLoss(160) From 1eec76088bfa081ef79e4aa3451242a621c116ee Mon Sep 17 00:00:00 2001 From: uraniummeltdown Date: Mon, 23 Jan 2017 21:52:45 +0400 Subject: [PATCH 005/101] tweaked playercount and decreased morph weight --- code/modules/events/event_container.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index c2dc2109cd2..af407b4a25e 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -105,9 +105,9 @@ var/list/event_last_fired = list() playercount_modifier = 0.8 if(50 to 70) playercount_modifier = 0.7 - if(70 to 90) + if(70 to 100) playercount_modifier = 0.6 - if(90 to 50000) + if(100 to 50000) playercount_modifier = 0.5 playercount_modifier = playercount_modifier * delay_modifier @@ -178,7 +178,7 @@ var/list/event_last_fired = list() new /datum/event_meta(EVENT_LEVEL_MODERATE, "Gravitational Anomaly", /datum/event/anomaly/anomaly_grav, 200), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Revenant", /datum/event/revenant, 150), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Swarmer Spawn", /datum/event/spawn_swarmer, 150, is_one_shot = 1), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Morph Spawn", /datum/event/spawn_morph, 100, is_one_shot = 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Morph Spawn", /datum/event/spawn_morph, 40, is_one_shot = 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Disease Outbreak", /datum/event/disease_outbreak, 0, list(ASSIGNMENT_MEDICAL = 150), 1) ) From 28f9496713bd6866169d20ccadd8a23113789297 Mon Sep 17 00:00:00 2001 From: KasparoVy Date: Thu, 19 Jan 2017 22:13:16 -0500 Subject: [PATCH 006/101] Adds Colourblindness for Vulpkanin&Tajara, Refactors Darksight, tidying up, etc. Adds colourblindness for Vulpkanin and Tajara that can be turned on by a preference in character creation. By default, Vulpkanin and Tajara still see in full colour, however their darksight is reduced to Human levels unless they choose the 'unaugmented' eyes option. Refactors darksight so it's tied to the eye organ. Refactors noir glasses. You can now visually distinguish mechanical/mechassisted organs from their organic counterparts due to their names and icons. Resolves issue w/ Colour-vision after Cloning/Lesser-to-greater Formswapping. Cloned Vulpkanin and Tajara get unaugmented vision (colourblind and darksight) by default since the cloners can't administer the eye-augmentation surgery. Same goes for swapping from lesser to greater form as a Changeling. The monkey-forms of Vulpkanin and Tajara now have almost the same organs as their greater forms, meaning they get the same colourblindness but excellent darksight. --- code/__DEFINES/misc.dm | 13 +---- code/__HELPERS/AnimationLibrary.dm | 2 +- code/modules/client/client procs.dm | 3 + code/modules/client/preference/preferences.dm | 16 ++++-- code/modules/clothing/glasses/glasses.dm | 34 +---------- code/modules/mob/living/carbon/carbon.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 18 +++--- .../mob/living/carbon/human/inventory.dm | 2 + .../living/carbon/human/species/abductor.dm | 10 +++- .../mob/living/carbon/human/species/apollo.dm | 9 ++- .../mob/living/carbon/human/species/golem.dm | 3 +- .../mob/living/carbon/human/species/monkey.dm | 21 +++++++ .../living/carbon/human/species/plasmaman.dm | 2 + .../mob/living/carbon/human/species/shadow.dm | 4 +- .../living/carbon/human/species/skeleton.dm | 2 +- .../living/carbon/human/species/species.dm | 18 ++++-- .../living/carbon/human/species/station.dm | 53 ++++++++++++------ code/modules/mob/login.dm | 2 + code/modules/mob/mob_helpers.dm | 26 +++++++-- code/modules/mob/new_player/new_player.dm | 2 +- .../designs/mechfabricator_designs.dm | 2 +- code/modules/surgery/organs/helpers.dm | 1 - code/modules/surgery/organs/organ.dm | 28 ++++----- code/modules/surgery/organs/organ_internal.dm | 44 +++++++++++++-- .../surgery/organs/subtypes/abductor.dm | 4 ++ code/modules/surgery/organs/subtypes/diona.dm | 44 ++------------- code/modules/surgery/organs/subtypes/drask.dm | 26 +-------- code/modules/surgery/organs/subtypes/grey.dm | 5 ++ .../surgery/organs/subtypes/machine.dm | 20 ++----- .../surgery/organs/subtypes/nucleation.dm | 7 +-- .../modules/surgery/organs/subtypes/shadow.dm | 4 ++ .../surgery/organs/subtypes/tajaran.dm | 9 +++ .../modules/surgery/organs/subtypes/unathi.dm | 5 ++ .../surgery/organs/subtypes/vulpkanin.dm | 9 +++ code/modules/surgery/organs/subtypes/wryn.dm | 4 ++ code/modules/surgery/organs_internal.dm | 4 +- icons/obj/surgery.dmi | Bin 31763 -> 31898 bytes paradise.dme | 2 + 38 files changed, 258 insertions(+), 202 deletions(-) create mode 100644 code/modules/surgery/organs/subtypes/abductor.dm create mode 100644 code/modules/surgery/organs/subtypes/shadow.dm diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 5e9815b7758..09ea7bf366f 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -250,16 +250,9 @@ #define MAP_MAXZ 6 //Matricies -#define MATRIX_DEFAULT list(1, 0, 0, 0,\ - 0, 1, 0, 0,\ - 0, 0, 1, 0,\ - 0, 0, 0, 1) - -#define MATRIX_GREYSCALE list(0.33, 0.33, 0.33, 0,\ - 0.33, 0.33, 0.33, 0,\ - 0.33, 0.33, 0.33, 0,\ - 0.00, 0.00, 0.00, 1,\ - 0.00, 0.00, 0.00, 0) +#define MATRIX_GREYSCALE list(0.33, 0.33, 0.33,\ + 0.33, 0.33, 0.33,\ + 0.33, 0.33, 0.33) //Gun trigger guards #define TRIGGER_GUARD_ALLOW_ALL -1 #define TRIGGER_GUARD_NONE 0 diff --git a/code/__HELPERS/AnimationLibrary.dm b/code/__HELPERS/AnimationLibrary.dm index fcabe2e0a78..fd79fe197f2 100644 --- a/code/__HELPERS/AnimationLibrary.dm +++ b/code/__HELPERS/AnimationLibrary.dm @@ -7,7 +7,7 @@ /proc/animate_fade_grayscale(var/atom/A, var/time = 5) if(!istype(A) && !istype(A, /client)) return - A.color = MATRIX_DEFAULT + A.color = null animate(A, color = MATRIX_GREYSCALE, time = time, easing = SINE_EASING) /proc/animate_melt_pixel(var/atom/A) diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index 6e1fe9126fd..3e2e1f54e0c 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -621,3 +621,6 @@ if(lang.flags & RESTRICTED) message += " (RESTRICTED)" to_chat(world, "[message]") + +/client/proc/colour_transition(var/list/colour_to = null, var/time = 10) //Call this with no parameters to reset to default. + animate(src, color=colour_to, time=time, easing=SINE_EASING) diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index ba51996f4e7..4ec7516a409 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -282,6 +282,8 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts dat += "Species: [species]
" if(species == "Vox") dat += "N2 Tank: [speciesprefs ? "Large N2 Tank" : "Specialized N2 Tank"]
" + else if(species in list("Vulpkanin", "Tajaran")) + dat += "Colour Vision: [speciesprefs ? "Unaugmented" : "Surgically Corrected"]
" dat += "Secondary Language: [language]
" dat += "Blood Type: [b_type]
" if(species in list("Human", "Drask", "Vox")) @@ -1337,9 +1339,13 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts //Reset prosthetics. organ_data = list() rlimb_data = list() - if("speciesprefs")//oldvox code - speciesprefs = !speciesprefs - + if("speciesprefs") + if(species == "Vox") //oldvox code + speciesprefs = !speciesprefs //Starts 0, so if someone clicks the button up top there, this won't be 0 anymore. If they click it again, it'll go back to 0. + else if(species in list("Vulpkanin", "Tajaran")) //Species that can be colourblind. + var/list/vision_options = list("Surgically Corrected", "Unaugmented") //Surgically corrected eyes (default option) see in full colour but have 2 darksight. Unaugmented eyes are colourblind but have 8 darksight. + speciesprefs = input("Please select your vision preference. \nOverridden by mech. assisted or mechanical eyes. \nSurgically Corrected: Full colour, low darksight. \n Unaugmented: Colourblind, full darksight.", "Character Generation", 0) in vision_options + speciesprefs = (speciesprefs != "Surgically Corrected") //Ensure the default option (surgically corrected) returns 0. I would've set up the vision_options list such that Surgically Corrected = 0, but input() didn't care for it. if("language") // var/languages_available var/list/new_languages = list("None") @@ -2020,8 +2026,6 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts return 1 /datum/preferences/proc/copy_to(mob/living/carbon/human/character) - var/datum/species/S = all_species[species] - character.change_species(species) // Yell at me if this causes everything to melt if(be_random_name) real_name = random_name(gender,species) @@ -2173,7 +2177,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts character.dna.SetSEState(MUTEBLOCK,1,1) character.disabilities |= MUTE - S.handle_dna(character) + character.species.handle_dna(character) if(character.dna.dirtySE) character.dna.UpdateSE() diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 4fde338ba54..5b38adc6a82 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -232,8 +232,6 @@ name = "noir sunglasses" desc = "Somehow these seem even more out-of-date than normal sunglasses." actions_types = list(/datum/action/item_action/noir) - var/noir_mode = 0 - color_view = MATRIX_GREYSCALE /obj/item/clothing/glasses/sunglasses/noir/attack_self() toggle_noir() @@ -243,36 +241,8 @@ return 1 /obj/item/clothing/glasses/sunglasses/noir/proc/toggle_noir() - var/list/difference = difflist(usr.client.color, color_view) - - if(!noir_mode) - if(color_view && usr.client && (!usr.client.color || difference)) - animate(usr.client, color = color_view, time = 10) - noir_mode = 1 - else - if(usr.client && usr.client.color && !difference) - animate(usr.client, color = initial(usr.client.color), time = 10) - noir_mode = 0 - -/obj/item/clothing/glasses/sunglasses/noir/equipped(mob/user, slot) - var/list/difference = difflist(user.client.color, color_view) - - if(slot == slot_glasses) - if(noir_mode) - if(color_view && user.client && (!user.client.color || difference.len)) - animate(user.client, color = color_view, time = 10) - else - if(user.client && user.client.color && !difference.len) - animate(user.client, color = initial(user.client.color), time = 10) - ..(user, slot) - -/obj/item/clothing/glasses/sunglasses/noir/dropped(mob/living/carbon/human/user) - var/list/difference = difflist(user.client.color, color_view) - - if(istype(user) && user.glasses == src) - if(user.client && user.client.color && !difference.len) - animate(user.client, color = initial(user.client.color), time = 10) - ..(user) + color_view = color_view ? null : MATRIX_GREYSCALE //Toggles between null and grayscale, with null being the default option. + usr.update_client_colour() /obj/item/clothing/glasses/sunglasses/yeah name = "agreeable glasses" diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 827f0ded62e..1ec1695352a 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -309,7 +309,7 @@ Stun(2) var/obj/item/organ/internal/eyes/E = get_int_organ(/obj/item/organ/internal/eyes) - if(!E) + if(!E || (E && E.weld_proof)) return switch(damage) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index ae88df869d9..c2e2f090bb2 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -721,8 +721,6 @@ if(istype(id)) return id - - /mob/living/carbon/human/update_sight() if(!client) return @@ -1533,12 +1531,6 @@ if(species.default_language) add_language(species.default_language) - see_in_dark = species.darksight - if(see_in_dark > 2) - see_invisible = SEE_INVISIBLE_LEVEL_ONE - else - see_invisible = SEE_INVISIBLE_LIVING - hunger_drain = species.hunger_drain digestion_ratio = species.digestion_ratio @@ -1608,8 +1600,17 @@ dna.real_name = real_name species.handle_post_spawn(src) + + see_in_dark = species.get_resultant_darksight(src) + if(see_in_dark > 2) + see_invisible = SEE_INVISIBLE_LEVEL_ONE + else + see_invisible = SEE_INVISIBLE_LIVING + species.handle_dna(src) //Give them whatever special dna business they got. + update_client_colour(0) + spawn(0) overlays.Cut() update_mutantrace(1) @@ -1632,7 +1633,6 @@ return null return species.default_language ? all_languages[species.default_language] : null - /mob/living/carbon/human/proc/bloody_doodle() set category = "IC" set name = "Write in blood" diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 4e90d763e9e..c375d718e3d 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -119,6 +119,7 @@ if(G.vision_flags || G.darkness_view || G.invis_override || G.invis_view) update_sight() update_inv_glasses() + update_client_colour() else if(I == head) head = null if(I.flags & BLOCKHAIR || I.flags & BLOCKHEADHAIR) @@ -271,6 +272,7 @@ if(G.vision_flags || G.darkness_view || G.invis_override || G.invis_view) update_sight() update_inv_glasses(redraw_mob) + update_client_colour() if(slot_gloves) gloves = W update_inv_gloves(redraw_mob) diff --git a/code/modules/mob/living/carbon/human/species/abductor.dm b/code/modules/mob/living/carbon/human/species/abductor.dm index 3bcade9f00d..4690529524f 100644 --- a/code/modules/mob/living/carbon/human/species/abductor.dm +++ b/code/modules/mob/living/carbon/human/species/abductor.dm @@ -7,8 +7,16 @@ language = "Abductor Mindlink" default_language = "Abductor Mindlink" unarmed_type = /datum/unarmed_attack/punch - darksight = 3 eyes = "blank_eyes" + has_organ = list( + "heart" = /obj/item/organ/internal/heart, + "lungs" = /obj/item/organ/internal/lungs, + "liver" = /obj/item/organ/internal/liver, + "kidneys" = /obj/item/organ/internal/kidneys, + "brain" = /obj/item/organ/internal/brain, + "appendix" = /obj/item/organ/internal/appendix, + "eyes" = /obj/item/organ/internal/eyes/abductor //3 darksight. + ) flags = HAS_LIPS | NO_BLOOD | NO_BREATHE diff --git a/code/modules/mob/living/carbon/human/species/apollo.dm b/code/modules/mob/living/carbon/human/species/apollo.dm index faeecdfcc5f..476f1aa9049 100644 --- a/code/modules/mob/living/carbon/human/species/apollo.dm +++ b/code/modules/mob/living/carbon/human/species/apollo.dm @@ -9,7 +9,6 @@ punchdamagelow = 0 punchdamagehigh = 1 //primitive = /mob/living/carbon/monkey/wryn - darksight = 3 slowdown = 1 warning_low_pressure = -300 hazard_low_pressure = 1 @@ -32,7 +31,7 @@ has_organ = list( "heart" = /obj/item/organ/internal/heart, "brain" = /obj/item/organ/internal/brain, - "eyes" = /obj/item/organ/internal/eyes, + "eyes" = /obj/item/organ/internal/eyes/wryn, //3 darksight. "appendix" = /obj/item/organ/internal/appendix, "antennae" = /obj/item/organ/internal/wryn/hivenode ) @@ -89,7 +88,7 @@ name_plural = "Nucleations" icobase = 'icons/mob/human_races/r_nucleation.dmi' unarmed_type = /datum/unarmed_attack/punch - blurb = "A sub-race of unforunates who have been exposed to too much supermatter radiation. As a result, \ + blurb = "A sub-race of unfortunates who have been exposed to too much supermatter radiation. As a result, \ supermatter crystal clusters have begun to grow across their bodies. Research to find a cure for this ailment \ has been slow, and so this is a common fate for veteran engineers. The supermatter crystals produce oxygen, \ negating the need for the individual to breathe. Their massive change in biology, however, renders most medicines \ @@ -109,8 +108,8 @@ reagent_tag = PROCESS_ORG has_organ = list( "heart" = /obj/item/organ/internal/heart, - "crystalized brain" = /obj/item/organ/internal/brain/crystal, - "eyes" = /obj/item/organ/internal/eyes/luminescent_crystal, + "crystallized brain" = /obj/item/organ/internal/brain/crystal, + "eyes" = /obj/item/organ/internal/eyes/luminescent_crystal, //Standard darksight of 2. "strange crystal" = /obj/item/organ/internal/nucleation/strange_crystal, "resonant crystal" = /obj/item/organ/internal/nucleation/resonant_crystal ) diff --git a/code/modules/mob/living/carbon/human/species/golem.dm b/code/modules/mob/living/carbon/human/species/golem.dm index 1bb4ba8e214..a2f2eb30467 100644 --- a/code/modules/mob/living/carbon/human/species/golem.dm +++ b/code/modules/mob/living/carbon/human/species/golem.dm @@ -40,7 +40,8 @@ has_organ = list( "brain" = /obj/item/organ/internal/brain/golem - ) + ) //Has standard darksight of 2. + suicide_messages = list( "is crumbling into dust!", "is smashing their body apart!") diff --git a/code/modules/mob/living/carbon/human/species/monkey.dm b/code/modules/mob/living/carbon/human/species/monkey.dm index dffc73d4e1d..34f4e16bfdf 100644 --- a/code/modules/mob/living/carbon/human/species/monkey.dm +++ b/code/modules/mob/living/carbon/human/species/monkey.dm @@ -26,6 +26,7 @@ tail = "chimptail" bodyflags = FEET_PADDED | HAS_TAIL reagent_tag = PROCESS_ORG + //Has standard darksight of 2. //unarmed_types = list(/datum/unarmed_attack/bite, /datum/unarmed_attack/claws) //inherent_verbs = list(/mob/living/proc/ventcrawl) @@ -106,6 +107,16 @@ tail = "farwatail" reagent_tag = PROCESS_ORG + has_organ = list( + "heart" = /obj/item/organ/internal/heart, + "lungs" = /obj/item/organ/internal/lungs, + "liver" = /obj/item/organ/internal/liver/tajaran, + "kidneys" = /obj/item/organ/internal/kidneys, + "brain" = /obj/item/organ/internal/brain, + "appendix" = /obj/item/organ/internal/appendix, + "eyes" = /obj/item/organ/internal/eyes/tajaran //Tajara monkey-forms are uniquely colourblind and have excellent darksight. + ) + /datum/species/monkey/vulpkanin name = "Wolpin" @@ -121,6 +132,16 @@ tail = "wolpintail" reagent_tag = PROCESS_ORG + has_organ = list( + "heart" = /obj/item/organ/internal/heart, + "lungs" = /obj/item/organ/internal/lungs, + "liver" = /obj/item/organ/internal/liver/vulpkanin, + "kidneys" = /obj/item/organ/internal/kidneys, + "brain" = /obj/item/organ/internal/brain, + "appendix" = /obj/item/organ/internal/appendix, + "eyes" = /obj/item/organ/internal/eyes/vulpkanin //Vulpkanin monkey-forms are uniquely colourblind and have excellent darksight. + ) + /datum/species/monkey/skrell name = "Neara" diff --git a/code/modules/mob/living/carbon/human/species/plasmaman.dm b/code/modules/mob/living/carbon/human/species/plasmaman.dm index 1a79374407c..d0d9d10fd94 100644 --- a/code/modules/mob/living/carbon/human/species/plasmaman.dm +++ b/code/modules/mob/living/carbon/human/species/plasmaman.dm @@ -20,6 +20,8 @@ heat_level_2 = 400 // Heat damage level 2 above this point. heat_level_3 = 500 // Heat damage level 3 above this point. + //Has default darksight of 2. + suicide_messages = list( "is twisting their own neck!", "is letting some O2 in!", diff --git a/code/modules/mob/living/carbon/human/species/shadow.dm b/code/modules/mob/living/carbon/human/species/shadow.dm index ca26348d188..35f008af802 100644 --- a/code/modules/mob/living/carbon/human/species/shadow.dm +++ b/code/modules/mob/living/carbon/human/species/shadow.dm @@ -7,12 +7,12 @@ default_language = "Galactic Common" unarmed_type = /datum/unarmed_attack/claws - darksight = 8 blood_color = "#CCCCCC" flesh_color = "#AAAAAA" has_organ = list( - "brain" = /obj/item/organ/internal/brain + "brain" = /obj/item/organ/internal/brain, + "eyes" = /obj/item/organ/internal/eyes/shadow //8 darksight. ) flags = NO_BLOOD | NO_BREATHE | RADIMMUNE diff --git a/code/modules/mob/living/carbon/human/species/skeleton.dm b/code/modules/mob/living/carbon/human/species/skeleton.dm index 4a3b087e93d..d09c8dd1699 100644 --- a/code/modules/mob/living/carbon/human/species/skeleton.dm +++ b/code/modules/mob/living/carbon/human/species/skeleton.dm @@ -41,7 +41,7 @@ "is twisting their skull off!") has_organ = list( "brain" = /obj/item/organ/internal/brain/golem, - ) + ) //Has default darksight of 2. /datum/species/skeleton/handle_reagents(var/mob/living/carbon/human/H, var/datum/reagent/R) // Crazylemon is still silly diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index e2238057533..73c557c9c58 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -49,7 +49,6 @@ var/siemens_coeff = 1 //base electrocution coefficient var/invis_sight = SEE_INVISIBLE_LIVING - var/darksight = 2 var/hazard_high_pressure = HAZARD_HIGH_PRESSURE // Dangerously high pressure. var/warning_high_pressure = WARNING_HIGH_PRESSURE // High pressure warning. var/warning_low_pressure = WARNING_LOW_PRESSURE // Low pressure warning. @@ -586,12 +585,23 @@ It'll return null if the organ doesn't correspond, so include null checks when u return null return has_organ[organ_slot] +/datum/species/proc/get_resultant_darksight(mob/living/carbon/human/H) //Returns default value of 2 if the mob doesn't have eyes, otherwise it grabs the eyes darksight. + var/resultant_darksight = 2 + var/obj/item/organ/internal/eyes/eyes = H.get_int_organ(/obj/item/organ/internal/eyes) + if(eyes && eyes.dark_view) + resultant_darksight = eyes.dark_view + return resultant_darksight /datum/species/proc/update_sight(mob/living/carbon/human/H) H.sight = initial(H.sight) - H.see_in_dark = darksight + H.see_in_dark = get_resultant_darksight(H) H.see_invisible = invis_sight + if(H.see_in_dark > 2) //Preliminary see_invisible handling as per set_species() in code\modules\mob\living\carbon\human\human.dm. + H.see_invisible = SEE_INVISIBLE_LEVEL_ONE + else + H.see_invisible = SEE_INVISIBLE_LIVING + if(H.client.eye != H) var/atom/A = H.client.eye if(A.update_remote_sight(H)) //returns 1 if we override all other sight updates. @@ -642,7 +652,7 @@ It'll return null if the organ doesn't correspond, so include null checks when u if(rig.visor && rig.visor.vision && rig.visor.active && rig.visor.vision.glasses) var/obj/item/clothing/glasses/G = rig.visor.vision.glasses if(istype(G)) - H.see_in_dark = (G.darkness_view ? G.darkness_view : darksight) // Otherwise we keep our darkness view with togglable nightvision. + H.see_in_dark = (G.darkness_view ? G.darkness_view : get_resultant_darksight(H)) // Otherwise we keep our darkness view with togglable nightvision. if(G.vision_flags) // MESONS H.sight |= G.vision_flags @@ -652,7 +662,7 @@ It'll return null if the organ doesn't correspond, so include null checks when u H.see_in_dark = max(lesser_darkview_bonus, H.see_in_dark) if(H.vision_type) - H.see_in_dark = max(H.see_in_dark, H.vision_type.see_in_dark, darksight) + H.see_in_dark = max(H.see_in_dark, H.vision_type.see_in_dark, get_resultant_darksight(H)) H.see_invisible = H.vision_type.see_invisible if(H.vision_type.light_sensitive) H.weakeyes = 1 diff --git a/code/modules/mob/living/carbon/human/species/station.dm b/code/modules/mob/living/carbon/human/species/station.dm index 5bde6ce8e5b..4ae52431e9a 100644 --- a/code/modules/mob/living/carbon/human/species/station.dm +++ b/code/modules/mob/living/carbon/human/species/station.dm @@ -18,6 +18,7 @@ worlds tumultous at best." reagent_tag = PROCESS_ORG + //Has standard darksight of 2. /datum/species/unathi name = "Unathi" @@ -30,7 +31,6 @@ tail = "sogtail" unarmed_type = /datum/unarmed_attack/claws primitive_form = "Stok" - darksight = 3 blurb = "A heavily reptillian species, Unathi (or 'Sinta as they call themselves) hail from the \ Uuosa-Eso system, which roughly translates to 'burning mother'.

Coming from a harsh, radioactive \ @@ -66,7 +66,7 @@ "kidneys" = /obj/item/organ/internal/kidneys, "brain" = /obj/item/organ/internal/brain, "appendix" = /obj/item/organ/internal/appendix, - "eyes" = /obj/item/organ/internal/eyes, + "eyes" = /obj/item/organ/internal/eyes/unathi //3 darksight. ) allowed_consumed_mobs = list(/mob/living/simple_animal/mouse, /mob/living/simple_animal/lizard, /mob/living/simple_animal/chick, /mob/living/simple_animal/chicken, @@ -91,7 +91,6 @@ language = "Siik'tajr" tail = "tajtail" unarmed_type = /datum/unarmed_attack/claws - darksight = 8 blurb = "The Tajaran race is a species of feline-like bipeds hailing from the planet of Ahdomai in the \ S'randarr system. They have been brought up into the space age by the Humans and Skrell, and have been \ @@ -126,7 +125,8 @@ "kidneys" = /obj/item/organ/internal/kidneys, "brain" = /obj/item/organ/internal/brain, "appendix" = /obj/item/organ/internal/appendix, - "eyes" = /obj/item/organ/internal/eyes, + "eyes" = /obj/item/organ/internal/eyes/tajaran /*Most Tajara are surgically augmented at birth for full colour vision, although it cost them their darksight (darksight = 2) unless they choose otherwise in character creation (darksight = 8 but colourblind). + However, this organ define is for unaugmented eyes so cloned Tajara are colourblind but have excellent darksight.*/ ) allowed_consumed_mobs = list(/mob/living/simple_animal/mouse, /mob/living/simple_animal/chick, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/parrot, @@ -138,6 +138,15 @@ "is twisting their own neck!", "is holding their breath!") +/datum/species/tajaran/equip(var/mob/living/carbon/human/H) //Handles colourblindness preferences. Should only happen if the client is in a mob otherwise it won't work. + var/sight_pref = H.client.prefs.speciesprefs + if(!sight_pref) + var/obj/item/organ/internal/eyes/tajaran/tajeyes = H.get_int_organ(/obj/item/organ/internal/eyes) + if(tajeyes && !tajeyes.robotic) //To avoid overriding the properties of cybernetic/mechassisted eyes, apply the colour matrix and darksight modifier only if the organ is organic. Robotic/mechassisted eyes currently do this, too, as is necessary. + tajeyes.colourmatrix = null //For individuals who recieved the modification, they lose much of their darksight and gain full colour vision. + tajeyes.dark_view = 2 //If they didn't, they would have their unique colour-vision and full darksight. See code\modules\surgery\organs\subtypes\tajaran.dm + H.update_client_colour(0) + /datum/species/tajaran/handle_death(var/mob/living/carbon/human/H) H.stop_tail_wagging(1) @@ -152,7 +161,6 @@ primitive_form = "Wolpin" tail = "vulptail" unarmed_type = /datum/unarmed_attack/claws - darksight = 8 blurb = "Vulpkanin are a species of sharp-witted canine-pideds residing on the planet Altam just barely within the \ dual-star Vazzend system. Their politically de-centralized society and independent natures have led them to become a species and \ @@ -176,7 +184,8 @@ "kidneys" = /obj/item/organ/internal/kidneys, "brain" = /obj/item/organ/internal/brain, "appendix" = /obj/item/organ/internal/appendix, - "eyes" = /obj/item/organ/internal/eyes, + "eyes" = /obj/item/organ/internal/eyes/vulpkanin /*Most Vulpkanin are surgically augmented at birth for full colour vision, although it cost them their darksight (darksight = 2) unless they choose otherwise in character creation (darksight = 8 but colourblind). + However, this organ define is for unaugmented eyes so cloned Vulpkanin are colourblind but have excellent darksight.*/ ) allowed_consumed_mobs = list(/mob/living/simple_animal/mouse, /mob/living/simple_animal/lizard, /mob/living/simple_animal/chick, /mob/living/simple_animal/chicken, @@ -188,6 +197,15 @@ "is twisting their own neck!", "is holding their breath!") +/datum/species/vulpkanin/equip(var/mob/living/carbon/human/H) //Handles colourblindness preferences. Should only happen if the client is in a mob otherwise it won't work. + var/sight_pref = H.client.prefs.speciesprefs + if(!sight_pref) + var/obj/item/organ/internal/eyes/vulpkanin/vulpeyes = H.get_int_organ(/obj/item/organ/internal/eyes) + if(vulpeyes && !vulpeyes.robotic) //To avoid overriding the properties of cybernetic/mechassisted eyes, apply the colour matrix and darksight modifier only if the organ is organic. Robotic/mechassisted eyes currently do this, too, as is necessary. + vulpeyes.colourmatrix = null //For individuals who recieved the modification, they lose much of their darksight and gain full colour vision. + vulpeyes.dark_view = 2 //If they didn't, they would have their unique colour-vision and full darksight. See code\modules\surgery\organs\subtypes\vulpkanin.dm + H.update_client_colour(0) + /datum/species/vulpkanin/handle_death(var/mob/living/carbon/human/H) H.stop_tail_wagging(1) @@ -226,7 +244,7 @@ "kidneys" = /obj/item/organ/internal/kidneys, "brain" = /obj/item/organ/internal/brain, "appendix" = /obj/item/organ/internal/appendix, - "eyes" = /obj/item/organ/internal/eyes, + "eyes" = /obj/item/organ/internal/eyes //Default darksight of 2. ) suicide_messages = list( @@ -315,7 +333,7 @@ "kidneys" = /obj/item/organ/internal/kidneys, "brain" = /obj/item/organ/internal/brain, "appendix" = /obj/item/organ/internal/appendix, - "eyes" = /obj/item/organ/internal/eyes, + "eyes" = /obj/item/organ/internal/eyes, //Default darksight of 2. "stack" = /obj/item/organ/internal/stack/vox //Not the same as the cortical stack implant Vox Raiders spawn with. The cortical stack implant is used ) //for determining the success of the heist game-mode's 'leave nobody behind' objective, while this is just an organ. @@ -439,7 +457,7 @@ "liver" = /obj/item/organ/internal/liver, "kidneys" = /obj/item/organ/internal/kidneys, "brain" = /obj/item/organ/internal/brain, - "eyes" = /obj/item/organ/internal/eyes, + "eyes" = /obj/item/organ/internal/eyes, //Default darksight of 2. "stack" = /obj/item/organ/internal/stack/vox //Not the same as the cortical stack implant Vox Raiders spawn with. The cortical stack implant is used ) //for determining the success of the heist game-mode's 'leave nobody behind' objective, while this is just an organ. @@ -478,7 +496,7 @@ "kidneys" = /obj/item/organ/internal/kidneys, "brain" = /obj/item/organ/internal/brain, "appendix" = /obj/item/organ/internal/appendix, - "eyes" = /obj/item/organ/internal/eyes, + "eyes" = /obj/item/organ/internal/eyes //Default darksight of 2. ) allowed_consumed_mobs = list(/mob/living/simple_animal/diona) @@ -517,6 +535,7 @@ exotic_blood = "water" //ventcrawler = 1 //ventcrawling commented out butt_sprite = "slime" + //Has default darksight of 2. has_organ = list( "brain" = /obj/item/organ/internal/brain/slime @@ -685,7 +704,6 @@ default_language = "Galactic Common" language = "Psionic Communication" unarmed_type = /datum/unarmed_attack/punch - darksight = 5 // BOOSTED from 2 eyes = "grey_eyes_s" butt_sprite = "grey" @@ -696,7 +714,7 @@ "kidneys" = /obj/item/organ/internal/kidneys, "brain" = /obj/item/organ/internal/brain/grey, "appendix" = /obj/item/organ/internal/appendix, - "eyes" = /obj/item/organ/internal/eyes, + "eyes" = /obj/item/organ/internal/eyes/grey //5 darksight. ) brute_mod = 1.25 //greys are fragile @@ -771,13 +789,13 @@ has_organ = list( "nutrient channel" = /obj/item/organ/internal/liver/diona, "neural strata" = /obj/item/organ/internal/heart/diona, - "receptor node" = /obj/item/organ/internal/diona_receptor, + "receptor node" = /obj/item/organ/internal/eyes/diona, //Default darksight of 2. "gas bladder" = /obj/item/organ/internal/brain/diona, "polyp segment" = /obj/item/organ/internal/kidneys/diona, "anchoring ligament" = /obj/item/organ/internal/appendix/diona ) - vision_organ = /obj/item/organ/internal/diona_receptor + vision_organ = /obj/item/organ/internal/eyes/diona has_limbs = list( "chest" = list("path" = /obj/item/organ/external/chest/diona), "groin" = list("path" = /obj/item/organ/external/groin/diona), @@ -878,10 +896,10 @@ has_organ = list( "brain" = /obj/item/organ/internal/brain/mmi_holder/posibrain, "cell" = /obj/item/organ/internal/cell, - "optics" = /obj/item/organ/internal/optical_sensor + "optics" = /obj/item/organ/internal/eyes/optical_sensor //Default darksight of 2. ) - vision_organ = /obj/item/organ/internal/optical_sensor + vision_organ = /obj/item/organ/internal/eyes/optical_sensor has_limbs = list( "chest" = list("path" = /obj/item/organ/external/chest/ipc), "groin" = list("path" = /obj/item/organ/external/groin/ipc), @@ -927,7 +945,6 @@ language = "Orluum" unarmed_type = /datum/unarmed_attack/punch eyes = "drask_eyes_s" - darksight = 5 speech_sounds = list('sound/voice/DraskTalk.ogg') speech_chance = 20 @@ -977,7 +994,7 @@ "heart" = /obj/item/organ/internal/heart/drask, "lungs" = /obj/item/organ/internal/lungs/drask, "metabolic strainer" = /obj/item/organ/internal/liver/drask, - "eyes" = /obj/item/organ/internal/eyes/drask, + "eyes" = /obj/item/organ/internal/eyes/drask, //5 darksight. "brain" = /obj/item/organ/internal/brain/drask ) diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 8cc51882ebf..27197474c00 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -72,6 +72,8 @@ for(var/datum/alternate_appearance/AA in viewing_alternate_appearances) AA.display_to(list(src)) + update_client_colour(0) + callHook("mob_login", list("client" = client, "mob" = src)) // Calling update_interface() in /mob/Login() causes the Cyborg to immediately be ghosted; because of winget(). diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 0b04647d094..e07fb765ce7 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -22,6 +22,24 @@ return 0 return 1 +/mob/proc/get_screen_colour() + +/mob/proc/update_client_colour(var/time = 10) //Update the mob's client.color with an animation the specified time in length. + if(!client) + return + client.colour_transition(get_screen_colour(), time = time) + +/mob/living/carbon/human/get_screen_colour() //Fetch the colour matrix from wherever (e.g. eyes) so it can be compared to client.color. + . = ..() + if(.) + return . + var/obj/item/clothing/glasses/worn_glasses = glasses + var/obj/item/organ/internal/eyes/eyes = get_int_organ(/obj/item/organ/internal/eyes) + if(istype(worn_glasses) && worn_glasses.color_view) //Check to see if they got those magic glasses and they're augmenting the colour of what the wearer sees. If they're not, color_view should be null. + return worn_glasses.color_view + else if(eyes && eyes.colourmatrix) //If they're not, check to see if their eyes got one of them there colour matrices. + return eyes.colourmatrix + /proc/isloyal(A) //Checks to see if the person contains a mindshield implant, then checks that the implant is actually inside of them for(var/obj/item/weapon/implant/loyalty/L in A) if(L && L.implanted) @@ -291,10 +309,10 @@ proc/muffledspeech(phrase) /mob/proc/abiotic(var/full_body = 0) - if(full_body && ((src.l_hand && !(src.l_hand.flags & ABSTRACT)) || (src.r_hand && !(src.r_hand.flags & ABSTRACT)) || (src.back || src.wear_mask))) + if(full_body && ((l_hand && !(l_hand.flags & ABSTRACT)) || (r_hand && !(r_hand.flags & ABSTRACT)) || (back || wear_mask))) return 1 - if((src.l_hand && !(src.l_hand.flags & ABSTRACT)) || (src.r_hand && !(src.r_hand.flags & ABSTRACT))) + if((l_hand && !(l_hand.flags & ABSTRACT)) || (r_hand && !(r_hand.flags & ABSTRACT))) return 1 return 0 @@ -586,8 +604,8 @@ var/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HARM) if(5) newletter="glor" newphrase+="[newletter]";counter-=1 - return newphrase - + return newphrase + /mob/proc/get_preference(toggleflag) if(!client) return FALSE diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index bccd7990de9..2233c617b6e 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -483,7 +483,7 @@ close_spawn_windows() check_prefs_are_sane() - var/mob/living/carbon/human/new_character = new(loc) + var/mob/living/carbon/human/new_character = new(loc, client.prefs.species) new_character.lastarea = get_area(loc) if(ticker.random_players || appearance_isbanned(new_character)) diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 702afa68f2f..46e5a478c88 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -1100,7 +1100,7 @@ name = "IPC Optical Sensor" id = "ipc_optics" build_type = MECHFAB - build_path = /obj/item/organ/internal/optical_sensor + build_path = /obj/item/organ/internal/eyes/optical_sensor materials = list(MAT_METAL=1000, MAT_GLASS=2500) construction_time = 200 category = list("Misc") diff --git a/code/modules/surgery/organs/helpers.dm b/code/modules/surgery/organs/helpers.dm index a61537f1985..24ae966cd14 100644 --- a/code/modules/surgery/organs/helpers.dm +++ b/code/modules/surgery/organs/helpers.dm @@ -13,7 +13,6 @@ /mob/living/carbon/get_int_organ(typepath) return (locate(typepath) in internal_organs) - /mob/living/carbon/get_organs_zone(zone, var/subzones = 0) var/list/returnorg = list() if(subzones) diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm index 66436d22b64..f2da2d0a949 100644 --- a/code/modules/surgery/organs/organ.dm +++ b/code/modules/surgery/organs/organ.dm @@ -228,10 +228,10 @@ var/list/organ_cache = list() /obj/item/organ/proc/take_damage(amount, var/silent=0) if(tough) return - if(src.status & ORGAN_ROBOT) - src.damage = between(0, src.damage + (amount * 0.8), max_damage) + if(status & ORGAN_ROBOT) + damage = between(0, damage + (amount * 0.8), max_damage) else - src.damage = between(0, src.damage + amount, max_damage) + damage = between(0, damage + amount, max_damage) //only show this if the organ is not robotic if(owner && parent_organ && amount > 0) @@ -241,18 +241,18 @@ var/list/organ_cache = list() /obj/item/organ/proc/robotize() //Being used to make robutt hearts, etc robotic = 2 - src.status &= ~ORGAN_BROKEN - src.status &= ~ORGAN_BLEEDING - src.status &= ~ORGAN_SPLINTED - src.status &= ~ORGAN_CUT_AWAY - src.status &= ~ORGAN_ATTACHABLE - src.status &= ~ORGAN_DESTROYED - src.status |= ORGAN_ROBOT - src.status |= ORGAN_ASSISTED + status &= ~ORGAN_BROKEN + status &= ~ORGAN_BLEEDING + status &= ~ORGAN_SPLINTED + status &= ~ORGAN_CUT_AWAY + status &= ~ORGAN_ATTACHABLE + status &= ~ORGAN_DESTROYED + status |= ORGAN_ROBOT + status |= ORGAN_ASSISTED /obj/item/organ/proc/mechassist() //Used to add things like pacemakers, etc - robotize() - src.status &= ~ORGAN_ROBOT + robotize(1) //Skip the icon/name setting that occurs in robotize to avoid having to reset the icon file. + status &= ~ORGAN_ROBOT robotic = 1 min_bruised_damage = 15 min_broken_damage = 35 @@ -325,7 +325,7 @@ var/list/organ_cache = list() affected.internal_organs |= src if(!target.get_int_organ(src)) target.internal_organs += src - src.loc = target + loc = target if(robotic) status |= ORGAN_ROBOT diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 5dd4d570ee2..79d1ed5faae 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -201,7 +201,7 @@ /obj/item/organ/internal/heart/prepare_eat() var/obj/S = ..() - S.icon_state = "heart-off" + S.icon_state = dead_icon return S /obj/item/organ/internal/heart/cursed @@ -343,16 +343,17 @@ parent_organ = "head" slot = "eyes" var/list/eye_colour = list(0,0,0) + var/list/colourmatrix = null + var/dark_view = 2 //Default dark_view for Humans. + var/weld_proof = null //If set, the eyes will not take damage during welding. eg. IPC optical sensors do not take damage when they weld things while all other eyes will. /obj/item/organ/internal/eyes/proc/update_colour() dna.write_eyes_attributes(src) -/obj/item/organ/internal/eyes/insert(mob/living/carbon/M, special = 0) +/obj/item/organ/internal/eyes/insert(mob/living/carbon/human/M, special = 0) ..() if(istype(M) && eye_colour) - var/mob/living/carbon/human/H = M - // Apply our eye colour to the target. - H.update_body() + M.update_body() //Apply our eye colour to the target. /obj/item/organ/internal/eyes/surgeryize() if(!owner) @@ -362,6 +363,38 @@ owner.SetEyeBlurry(0) owner.SetEyeBlind(0) +/obj/item/organ/internal/robotize(var/icon_bypass) //If icon bypass isn't null, skip the processing here and go straight to the parent call. + if(!icon_bypass && !(status & ORGAN_ROBOT)) //Don't override the icons for the already-mechanical IPC organs. + var/list/states = icon_states('icons/obj/surgery.dmi') //Insensitive to specially-defined icon files for species like the Drask or whomever else. Everyone gets the same robotic heart. + if(slot == "heart" && ("[slot]-prosthetic-on" in states) && ("[slot]-prosthetic-off" in states)) //Give the robotic heart its robotic heart icons if they exist. + var/obj/item/organ/internal/heart/H = src + H.icon = icon('icons/obj/surgery.dmi') + H.icon_base = "[slot]-prosthetic" + H.dead_icon = "[slot]-prosthetic-off" + H.update_icon() + else if("[slot]-prosthetic" in states) //Give the robotic organ its robotic organ icons if they exist. + icon = icon('icons/obj/surgery.dmi') + icon_state = "[slot]-prosthetic" + name = "mechanical [slot]" + ..() //Go apply all the organ flags/robotic statuses. + +/obj/item/organ/internal/eyes/robotize() + colourmatrix = null + dark_view = 2 + ..() //Make sure the organ's got the robotic status indicators before updating the client colour. + owner.update_client_colour(0) //Since both mechassisted and mechanical eyes give dark_view of 2 and full colour vision atm, just having this here is fine as mechassist() will call it anyway. + +/obj/item/organ/internal/mechassist() + ..() //Go back, call robotize(), adjust the robotic status indicators and the organ damage parameters. + var/list/states = icon_states(icon) //Sensitive to specially-defined icon files since the organs are not fully synthetic. + if(slot == "heart" && ("[organ_tag]-assisted-on" in states) && ("[organ_tag]-assisted-off" in states)) //Give the mechassisted heart its mechassisted heart icons if they exist. + var/obj/item/organ/internal/heart/H = src + H.icon_base = "[organ_tag]-assisted" + H.dead_icon = "[organ_tag]-assisted-off" + H.update_icon() + else if("[organ_tag]-assisted" in states) //Give the mechassisted organ its mechassisted organ icons if they exist. + icon_state = "[organ_tag]-assisted" + name = "mechanically assisted [initial(name)]" //Avoid setting the organ's name to something like "mechanically assisted mechanical eyes". /obj/item/organ/internal/liver name = "liver" @@ -372,7 +405,6 @@ var/alcohol_intensity = 1 /obj/item/organ/internal/liver/process() - ..() if(!owner) diff --git a/code/modules/surgery/organs/subtypes/abductor.dm b/code/modules/surgery/organs/subtypes/abductor.dm new file mode 100644 index 00000000000..6fd234bc501 --- /dev/null +++ b/code/modules/surgery/organs/subtypes/abductor.dm @@ -0,0 +1,4 @@ +/obj/item/organ/internal/eyes/abductor + name = "abductor eyeballs" + dark_view = 3 + species = "Abductor" diff --git a/code/modules/surgery/organs/subtypes/diona.dm b/code/modules/surgery/organs/subtypes/diona.dm index a4b0d8fb92b..729a87d2819 100644 --- a/code/modules/surgery/organs/subtypes/diona.dm +++ b/code/modules/surgery/organs/subtypes/diona.dm @@ -116,74 +116,42 @@ /obj/item/organ/diona/process() return -/obj/item/organ/internal/heart/diona +/obj/item/organ/internal/heart/diona // Turns into a nymph instantly, no transplanting possible. name = "neural strata" icon = 'icons/obj/objects.dmi' icon_state = "nymph" - organ_tag = "heart" // Turns into a nymph instantly, no transplanting possible. - origin_tech = "biotech=3" - parent_organ = "chest" - slot = "heart" species = "Diona" -/obj/item/organ/internal/brain/diona +/obj/item/organ/internal/brain/diona // Turns into a nymph instantly, no transplanting possible. name = "gas bladder" - parent_organ = "head" icon = 'icons/obj/objects.dmi' icon_state = "nymph" - organ_tag = "brain" // Turns into a nymph instantly, no transplanting possible. - origin_tech = "biotech=3" - slot = "brain" species = "Diona" -/obj/item/organ/internal/kidneys/diona +/obj/item/organ/internal/kidneys/diona // Turns into a nymph instantly, no transplanting possible. name = "polyp segment" icon = 'icons/obj/objects.dmi' icon_state = "nymph" - organ_tag = "kidneys" // Turns into a nymph instantly, no transplanting possible. - origin_tech = "biotech=3" - parent_organ = "groin" - slot = "kidneys" species = "Diona" -/obj/item/organ/internal/appendix/diona +/obj/item/organ/internal/appendix/diona // Turns into a nymph instantly, no transplanting possible. name = "anchoring ligament" icon = 'icons/obj/objects.dmi' icon_state = "nymph" - organ_tag = "appendix" // Turns into a nymph instantly, no transplanting possible. - origin_tech = "biotech=3" - parent_organ = "groin" - slot = "appendix" species = "Diona" -/obj/item/organ/internal/diona_receptor +/obj/item/organ/internal/eyes/diona // Turns into a nymph instantly, no transplanting possible. name = "receptor node" - organ_tag = "eyes" icon = 'icons/mob/alien.dmi' icon_state = "claw" - origin_tech = "biotech=3" - parent_organ = "head" - slot = "eyes" species = "Diona" -/obj/item/organ/internal/diona_receptor/surgeryize() - if(!owner) - return - owner.CureNearsighted() - owner.CureBlind() - owner.SetEyeBlurry(0) - owner.SetEyeBlind(0) - - //TODO:Make absorb rads on insert -/obj/item/organ/internal/liver/diona +/obj/item/organ/internal/liver/diona // Turns into a nymph instantly, no transplanting possible. name = "nutrient vessel" - parent_organ = "chest" - organ_tag = "liver" icon = 'icons/mob/alien.dmi' icon_state = "claw" - slot = "liver" alcohol_intensity = 0.5 species = "Diona" diff --git a/code/modules/surgery/organs/subtypes/drask.dm b/code/modules/surgery/organs/subtypes/drask.dm index b3b260a28a0..6e1e6662d0a 100644 --- a/code/modules/surgery/organs/subtypes/drask.dm +++ b/code/modules/surgery/organs/subtypes/drask.dm @@ -9,51 +9,29 @@ /obj/item/organ/internal/heart/drask name = "drask heart" icon = 'icons/obj/surgery_drask.dmi' - icon_state = "heart-on" - dead_icon = "heart-off" - organ_tag = "heart" parent_organ = "head" - slot = "heart" species = "Drask" /obj/item/organ/internal/lungs/drask - name = "lungs" icon = 'icons/obj/surgery_drask.dmi' - icon_state = "lungs" - gender = PLURAL - organ_tag = "lungs" - parent_organ = "chest" - slot = "lungs" species = "Drask" /obj/item/organ/internal/liver/drask name = "metabolic strainer" icon = 'icons/obj/surgery_drask.dmi' - icon_state = "kidneys" - gender = PLURAL - organ_tag = "kidneys" - parent_organ = "groin" - slot = "kidneys" alcohol_intensity = 0.8 species = "Drask" /obj/item/organ/internal/brain/drask - name = "brain" icon = 'icons/obj/surgery_drask.dmi' icon_state = "brain2" - organ_tag = "brain" - slot = "brain" mmi_icon = 'icons/obj/surgery_drask.dmi' mmi_icon_state = "mmi_full" species = "Drask" /obj/item/organ/internal/eyes/drask - name = "eyes" + name = "drask eyeballs" icon = 'icons/obj/surgery_drask.dmi' - icon_state = "eyes" - gender = PLURAL - organ_tag = "eyes" - parent_organ = "head" - slot = "eyes" desc = "Drask eyes. They look even stranger disembodied" + dark_view = 5 species = "Drask" diff --git a/code/modules/surgery/organs/subtypes/grey.dm b/code/modules/surgery/organs/subtypes/grey.dm index a47ab801d6f..6c06da373b7 100644 --- a/code/modules/surgery/organs/subtypes/grey.dm +++ b/code/modules/surgery/organs/subtypes/grey.dm @@ -14,3 +14,8 @@ /obj/item/organ/internal/brain/grey/remove(var/mob/living/carbon/M, var/special = 0) . = ..() M.remove_language("Psionic Communication") + +/obj/item/organ/internal/eyes/grey + name = "grey eyeballs" + dark_view = 5 + species = "Grey" diff --git a/code/modules/surgery/organs/subtypes/machine.dm b/code/modules/surgery/organs/subtypes/machine.dm index 0f402a42e5d..b3bb3f61e07 100644 --- a/code/modules/surgery/organs/subtypes/machine.dm +++ b/code/modules/surgery/organs/subtypes/machine.dm @@ -117,37 +117,26 @@ robotize() ..() -/obj/item/organ/internal/optical_sensor +/obj/item/organ/internal/eyes/optical_sensor name = "optical sensor" - organ_tag = "eyes" - parent_organ = "head" icon = 'icons/obj/robot_component.dmi' icon_state = "camera" - slot = "eyes" status = ORGAN_ROBOT species = "Machine" // dead_icon = "camera_broken" + weld_proof = 1 -/obj/item/organ/internal/optical_sensor/New() +/obj/item/organ/internal/eyes/optical_sensor/New() robotize() ..() -/obj/item/organ/internal/optical_sensor/remove(var/mob/living/user,special = 0) +/obj/item/organ/internal/eyes/optical_sensor/remove(var/mob/living/user,special = 0) if(!special) to_chat(owner, "Error 404:Optical Sensors not found.") . = ..() -/obj/item/organ/internal/optical_sensor/surgeryize() - if(!owner) - return - owner.CureNearsighted() - owner.CureBlind() - owner.SetEyeBlurry(0) - owner.SetEyeBlind(0) - - // Used for an MMI or posibrain being installed into a human. /obj/item/organ/internal/brain/mmi_holder name = "brain" @@ -160,7 +149,6 @@ species = "Machine" var/obj/item/device/mmi/stored_mmi - /obj/item/organ/internal/brain/mmi_holder/Destroy() if(stored_mmi) qdel(stored_mmi) diff --git a/code/modules/surgery/organs/subtypes/nucleation.dm b/code/modules/surgery/organs/subtypes/nucleation.dm index d234b666ae3..4223834501d 100644 --- a/code/modules/surgery/organs/subtypes/nucleation.dm +++ b/code/modules/surgery/organs/subtypes/nucleation.dm @@ -26,8 +26,6 @@ icon_state = "crystal-eyes" organ_tag = "luminescent eyes" light_color = "#1C1C00" - parent_organ = "head" - slot = "eyes" species = "Nucleation" /obj/item/organ/internal/eyes/luminescent_crystal/New() @@ -35,8 +33,7 @@ ..() /obj/item/organ/internal/brain/crystal - name = "crystalized brain" + name = "crystallized brain" icon_state = "crystal-brain" - organ_tag = "crystalized brain" - slot = "brain" + organ_tag = "crystallized brain" species = "Nucleation" diff --git a/code/modules/surgery/organs/subtypes/shadow.dm b/code/modules/surgery/organs/subtypes/shadow.dm new file mode 100644 index 00000000000..f81fc54bfb1 --- /dev/null +++ b/code/modules/surgery/organs/subtypes/shadow.dm @@ -0,0 +1,4 @@ +/obj/item/organ/internal/eyes/shadow + name = "dark orbs" + dark_view = 8 + species = "Shadow" diff --git a/code/modules/surgery/organs/subtypes/tajaran.dm b/code/modules/surgery/organs/subtypes/tajaran.dm index e37686a05ca..f65070feb6c 100644 --- a/code/modules/surgery/organs/subtypes/tajaran.dm +++ b/code/modules/surgery/organs/subtypes/tajaran.dm @@ -1,3 +1,12 @@ /obj/item/organ/internal/liver/tajaran alcohol_intensity = 1.4 species = "Tajaran" + +/obj/item/organ/internal/eyes/tajaran /*Most Tajara are surgically augmented at birth for full colour vision, although it cost them their darksight (darksight = 2) unless they choose otherwise in character creation (darksight = 8 but colourblind). + However, this organ define is for unaugmented eyes so cloned Tajara are colourblind but have excellent darksight.*/ + name = "tajaran eyeballs" + species = "Tajaran" + dark_view = 8 + colourmatrix = list(0.4,0.2,0.4,\ + 0.4,0.6,0.0,\ + 0.2,0.2,0.6) //Slightly less richness of hues or saturation of colours than Vulpkanin eyes. Pastel colour scheme, blues slightly green-shifted, reds slightly blue-shifted, greens yellow-shifted. diff --git a/code/modules/surgery/organs/subtypes/unathi.dm b/code/modules/surgery/organs/subtypes/unathi.dm index a769bce7a02..0fb45319ce5 100644 --- a/code/modules/surgery/organs/subtypes/unathi.dm +++ b/code/modules/surgery/organs/subtypes/unathi.dm @@ -1,3 +1,8 @@ /obj/item/organ/internal/liver/unathi alcohol_intensity = 0.8 species = "Unathi" + +/obj/item/organ/internal/eyes/unathi + name = "unathi eyeballs" + dark_view = 3 + species = "Unathi" diff --git a/code/modules/surgery/organs/subtypes/vulpkanin.dm b/code/modules/surgery/organs/subtypes/vulpkanin.dm index ca47ac83ddd..39ee9463425 100644 --- a/code/modules/surgery/organs/subtypes/vulpkanin.dm +++ b/code/modules/surgery/organs/subtypes/vulpkanin.dm @@ -1,3 +1,12 @@ /obj/item/organ/internal/liver/vulpkanin alcohol_intensity = 1.4 species = "Vulpkanin" + +/obj/item/organ/internal/eyes/vulpkanin /*Most Vulpkanin are surgically augmented at birth for full colour vision, although it cost them their darksight (darksight = 2) unless they choose otherwise in character creation (darksight = 8 but colourblind). + However, this organ define is for unaugmented eyes so cloned Vulpkanin are colourblind but have excellent darksight.*/ + name = "vulpkanin eyeballs" + species = "Vulpkanin" + dark_view = 8 + colourmatrix = list(0.5,0.4,0.1,\ + 0.5,0.4,0.1,\ + 0.0,0.2,0.8) //Seeing in tones of blues and yellows, blind to greens. More richness of hue and saturation of colour than Tajara. diff --git a/code/modules/surgery/organs/subtypes/wryn.dm b/code/modules/surgery/organs/subtypes/wryn.dm index f51adb6054e..ee1a12fd1ab 100644 --- a/code/modules/surgery/organs/subtypes/wryn.dm +++ b/code/modules/surgery/organs/subtypes/wryn.dm @@ -7,3 +7,7 @@ parent_organ = "head" slot = "hivenode" species = "Wryn" + +/obj/item/organ/internal/eyes/wryn + dark_view = 3 + species = "Wryn" diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index f86cf41bcd0..73416045624 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -182,7 +182,7 @@ H.custom_pain("The pain in your [affected.name] is living hell!", 1) else if(istype(tool, /obj/item/weapon/reagent_containers/food/snacks/organ)) - to_chat(user, "[tool] was biten by someone! It's too damaged to use!") + to_chat(user, "[tool] was bitten by someone! It's too damaged to use!") return -1 ..() @@ -244,6 +244,8 @@ thing.forceMove(get_turf(target)) else user.put_in_hands(thing) + + target.update_icons() else user.visible_message("[user] can't seem to extract anything from [target]'s [parse_zone(target_zone)]!", "You can't extract anything from [target]'s [parse_zone(target_zone)]!") diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi index 88161a20b5c2e7c031a5ab2afdee7c9e2421fdbc..db3343f1ca25a0e2671e4a37bd38bbfd5c016be1 100644 GIT binary patch literal 31898 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 Date: Fri, 20 Jan 2017 22:36:45 -0500 Subject: [PATCH 007/101] Changes Colourblindness from a Preference to a Disability For Vulpkanin and Tajara, it gives them their species-specific colourblindness but their excellent darksight, too. Otherwise it gives noir vision. You can choose this disability at character creation. It is off by default. You can turn it off via genetics and mutadone. Fixes Cling Transform&Lesser/Greater form & Darksight bugs Transforming to an identity will now, with 100% reliability, give you the exact appearance as that ability bar the body_accessory and the secondary hair/facial hair colours. Same thing with going from lesser form to an identity that was not the one you lesser formed with. Fixes the darksight bug from the last commit, happened 'cause typo. Woops. Eye Transplantation Applies Eye-dependent Genes Transplanting colourblind Vulpkanin/Tajara eyes into a Human gives the Human the dark_view and unique colourblindness of said Vulpkanin eyes. Removing colourblind eyes will take the disability with it, meaning the person will have colour vision/low darksight. --- code/__DEFINES/genetics.dm | 11 ++++-- code/__DEFINES/misc.dm | 10 ++++++ code/_globalvars/genetics.dm | 1 + code/game/dna/dna2.dm | 1 + code/game/dna/dna2_domutcheck.dm | 4 ++- code/game/dna/genes/disabilities.dm | 35 ++++++++++++++++++- code/game/dna/genes/gene.dm | 3 ++ .../gamemodes/changeling/powers/humanform.dm | 15 ++++---- .../gamemodes/changeling/powers/lesserform.dm | 7 +++- .../gamemodes/changeling/powers/transform.dm | 13 ++++--- code/game/gamemodes/setupgame.dm | 3 ++ code/modules/client/preference/preferences.dm | 14 ++++---- .../mob/living/carbon/human/species/monkey.dm | 31 ++++++++++++---- .../living/carbon/human/species/station.dm | 28 +++------------ code/modules/mob/transform_procs.dm | 1 - code/modules/surgery/organs/organ_internal.dm | 14 ++++++++ .../surgery/organs/subtypes/tajaran.dm | 9 ++--- .../surgery/organs/subtypes/vulpkanin.dm | 9 ++--- 18 files changed, 141 insertions(+), 68 deletions(-) diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm index 11393957fc1..822179bf4cd 100644 --- a/code/__DEFINES/genetics.dm +++ b/code/__DEFINES/genetics.dm @@ -12,6 +12,7 @@ #define DISABILITY_FLAG_DEAF 8 #define DISABILITY_FLAG_BLIND 16 #define DISABILITY_FLAG_MUTE 32 +#define DISABILITY_FLAG_COLOURBLIND 64 /////////////////////////////////////// // MUTATIONS @@ -84,8 +85,9 @@ #define TOURETTES 8 #define NERVOUS 16 #define BLIND 32 -#define MUTE 64 -#define DEAF 128 +#define COLOURBLIND 64 +#define MUTE 128 +#define DEAF 256 //Nutrition levels for humans. No idea where else to put it #define NUTRITION_LEVEL_FAT 600 @@ -113,4 +115,7 @@ #define GENETIC_DAMAGE_STAGE_3 35 #define CLONER_FRESH_CLONE "fresh" -#define CLONER_MATURE_CLONE "mature" \ No newline at end of file +#define CLONER_MATURE_CLONE "mature" + +//Gene properties +#define GENE_EYE_DEPENDENT 1 diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 09ea7bf366f..bf19a447232 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -253,6 +253,16 @@ #define MATRIX_GREYSCALE list(0.33, 0.33, 0.33,\ 0.33, 0.33, 0.33,\ 0.33, 0.33, 0.33) + +#define MATRIX_VULP_CBLIND list(0.5,0.4,0.1,\ + 0.5,0.4,0.1,\ + 0.0,0.2,0.8) + +#define MATRIX_TAJ_CBLIND list(0.4,0.2,0.4,\ + 0.4,0.6,0.0,\ + 0.2,0.2,0.6) + + //Gun trigger guards #define TRIGGER_GUARD_ALLOW_ALL -1 #define TRIGGER_GUARD_NONE 0 diff --git a/code/_globalvars/genetics.dm b/code/_globalvars/genetics.dm index 73b2b7304f6..116aa0797cb 100644 --- a/code/_globalvars/genetics.dm +++ b/code/_globalvars/genetics.dm @@ -1,5 +1,6 @@ /////////// var/BLINDBLOCK = 0 +var/COLOURBLINDBLOCK = 0 var/DEAFBLOCK = 0 var/HULKBLOCK = 0 var/TELEBLOCK = 0 diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index 82f7ffb2e93..2967dafe5ae 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -65,6 +65,7 @@ var/global/list/assigned_gene_blocks[DNA_SE_LENGTH] var/global/list/assigned_blocks[DNA_SE_LENGTH] var/global/list/datum/dna/gene/dna_genes[0] +var/global/list/datum/dna/gene/eye_dependent_genes[0] var/global/list/good_blocks[0] var/global/list/bad_blocks[0] diff --git a/code/game/dna/dna2_domutcheck.dm b/code/game/dna/dna2_domutcheck.dm index 6175d547d63..61ecb735459 100644 --- a/code/game/dna/dna2_domutcheck.dm +++ b/code/game/dna/dna2_domutcheck.dm @@ -44,7 +44,7 @@ var/mob/living/carbon/human/H = M defaultgenes = H.species.default_genes - if((gene in defaultgenes) && gene_active) + if((gene in defaultgenes) && gene_active && !gene.update) //Unless we want to update them with current information they depend on. return // Prior state @@ -65,3 +65,5 @@ gene.deactivate(M,connected,flags) if(M) M.active_genes -= gene.type + else if(gene.update && gene_active && (gene.type in M.active_genes)) //Update the gene. It should already be in the list of active genes. Updating is only useful if it's active. + gene.activate(M,connected,flags) diff --git a/code/game/dna/genes/disabilities.dm b/code/game/dna/genes/disabilities.dm index 4cfa6f45750..28c9c1c76b6 100644 --- a/code/game/dna/genes/disabilities.dm +++ b/code/game/dna/genes/disabilities.dm @@ -115,6 +115,40 @@ /datum/dna/gene/disability/blindness/New() block=BLINDBLOCK +/datum/dna/gene/disability/colourblindness + name="Colourblindness" + activation_message="Your perception of colour warps and distorts." + deactivation_message ="Your perception of colour returns to normal." + instability = -GENE_INSTABILITY_MODERATE + disability = COLOURBLIND + flags = GENE_EYE_DEPENDENT + update = 1 + +/datum/dna/gene/disability/colourblindness/New() + block=COLOURBLINDBLOCK + +/datum/dna/gene/disability/colourblindness/activate(var/mob/M, var/connected, var/flags) + ..(M,connected,flags) + var/mob/living/carbon/human/H = M + if(istype(M)) + var/obj/item/organ/internal/eyes/eyes = H.get_int_organ(/obj/item/organ/internal/eyes) + if(eyes && !eyes.robotic) //To avoid overriding the properties of cybernetic/mechassisted eyes, apply the colour matrix and darksight modifier only if the organ is organic. Robotic/mechassisted eyes currently do this, too, as is necessary. + var/list/cblind_properties = (eyes.colourblind_special) ? eyes.colourblind_special : null //If the mob's species has its own colourblindness parameters, gather them. + eyes.colourmatrix = (cblind_properties && cblind_properties["colour_matrix"]) ? cblind_properties["colour_matrix"] : MATRIX_GREYSCALE //If the mob's species has its own colourblindness colour matrix parameter, use it. + eyes.dark_view = (cblind_properties && cblind_properties["darkview"]) ? cblind_properties["darkview"] : eyes.dark_view //If the mob's species has its own colourblindness dark view parameter, use it. + H.update_client_colour() + +/datum/dna/gene/disability/colourblindness/deactivate(var/mob/M, var/connected, var/flags) + ..(M,connected,flags) + var/mob/living/carbon/human/H = M + if(istype(M)) + var/obj/item/organ/internal/eyes/eyes = H.get_int_organ(/obj/item/organ/internal/eyes) + if(eyes && !eyes.robotic) //To avoid overriding the properties of cybernetic/mechassisted eyes, apply the colour matrix and darksight modifier only if the organ is organic. Robotic/mechassisted eyes currently do this, too, as is necessary. + var/list/cblind_properties = (eyes.colourblind_special) ? eyes.colourblind_special : null //If the mob's species has its own colourblindness parameters, gather them. + eyes.colourmatrix = null //The only time a mob will have this set is if they're colourblind, so it's fine to null this out. + eyes.dark_view = (cblind_properties && cblind_properties["darkview"]) ? initial(eyes.dark_view) : eyes.dark_view //If the mob's species has its own colourblindness dark view parameter, set the mob's dark_view back to normal. + H.update_client_colour() + /datum/dna/gene/disability/deaf name="Deafness" activation_message="It's kinda quiet." @@ -139,7 +173,6 @@ /datum/dna/gene/disability/nearsighted/New() block=GLASSESBLOCK - /datum/dna/gene/disability/lisp name = "Lisp" desc = "I wonder wath thith doeth." diff --git a/code/game/dna/genes/gene.dm b/code/game/dna/genes/gene.dm index f74d0c7d2a0..63992e16a5f 100644 --- a/code/game/dna/genes/gene.dm +++ b/code/game/dna/genes/gene.dm @@ -26,6 +26,9 @@ // Chance of the gene to cause adverse effects when active var/instability=0 + // Whether the gene needs to be updated regardless of whether the mob has it or not. Useful for colour vision modifiers. + var/update=0 + /* * Is the gene active in this mob's DNA? */ diff --git a/code/game/gamemodes/changeling/powers/humanform.dm b/code/game/gamemodes/changeling/powers/humanform.dm index e587a7db0ab..aa333a865b5 100644 --- a/code/game/gamemodes/changeling/powers/humanform.dm +++ b/code/game/gamemodes/changeling/powers/humanform.dm @@ -24,15 +24,18 @@ if(!user) return 0 to_chat(user, "We transform our appearance.") - user.dna.SetSEState(MONKEYBLOCK,0) - domutcheck(user, null) // Do a pre-mutcheck to cleanly switch from monkey form. - user.dna = chosen_dna + user.dna.SetSEState(MONKEYBLOCK,0,1) + genemutcheck(user,MONKEYBLOCK,null,MUTCHK_FORCED) user.real_name = chosen_dna.real_name - user.flavor_text = "" if(ishuman(user)) - user.set_species() + user.set_species(chosen_dna.species) + user.dna = chosen_dna.Clone() + domutcheck(user, null, MUTCHK_FORCED) + user.flavor_text = "" + user.dna.UpdateSE() + user.dna.UpdateUI() + user.sync_organ_dna(1) user.UpdateAppearance() - domutcheck(user, null) changeling.purchasedpowers -= src //O.mind.changeling.purchasedpowers += new /obj/effect/proc_holder/changeling/lesserform(null) diff --git a/code/game/gamemodes/changeling/powers/lesserform.dm b/code/game/gamemodes/changeling/powers/lesserform.dm index e5040af282f..7316d635acf 100644 --- a/code/game/gamemodes/changeling/powers/lesserform.dm +++ b/code/game/gamemodes/changeling/powers/lesserform.dm @@ -21,13 +21,18 @@ to_chat(H, "We cannot perform this ability in this form!") return + var/datum/dna/DNA = changeling.GetDNA(user.dna.real_name) + user.dna = DNA ? DNA.Clone() : user.dna + H.visible_message("[H] transforms!") changeling.geneticdamage = 30 to_chat(H, "Our genes cry out!") var/list/implants = list() //Try to preserve implants. for(var/obj/item/weapon/implant/W in H) implants += W - H.monkeyize() + + user.dna.SetSEState(MONKEYBLOCK,1,1) + genemutcheck(user,MONKEYBLOCK,null,MUTCHK_FORCED) changeling.purchasedpowers += new /obj/effect/proc_holder/changeling/humanform(null) feedback_add_details("changeling_powers","LF") return 1 \ No newline at end of file diff --git a/code/game/gamemodes/changeling/powers/transform.dm b/code/game/gamemodes/changeling/powers/transform.dm index f1ff51a42a2..5ca928c77c7 100644 --- a/code/game/gamemodes/changeling/powers/transform.dm +++ b/code/game/gamemodes/changeling/powers/transform.dm @@ -14,14 +14,17 @@ if(!chosen_dna) return - user.dna = chosen_dna.Clone() user.real_name = chosen_dna.real_name - user.flavor_text = "" if(ishuman(user)) - user.set_species() + user.set_species(chosen_dna.species) + user.dna = chosen_dna.Clone() + domutcheck(user, null, MUTCHK_FORCED) //Ensures species that get powers by the species proc handle_dna keep them + user.flavor_text = "" + user.dna.UpdateSE() + user.dna.UpdateUI() + user.sync_organ_dna(1) user.UpdateAppearance() - domutcheck(user, null) - + user.changeling_update_languages(changeling.absorbed_languages) feedback_add_details("changeling_powers","TR") diff --git a/code/game/gamemodes/setupgame.dm b/code/game/gamemodes/setupgame.dm index c177e85f870..e55d99c4c9e 100644 --- a/code/game/gamemodes/setupgame.dm +++ b/code/game/gamemodes/setupgame.dm @@ -35,6 +35,7 @@ // Standard muts BLINDBLOCK = getAssignedBlock("BLIND", numsToAssign) + COLOURBLINDBLOCK = getAssignedBlock("COLOURBLIND", numsToAssign) DEAFBLOCK = getAssignedBlock("DEAF", numsToAssign) HULKBLOCK = getAssignedBlock("HULK", numsToAssign, DNA_HARD_BOUNDS, good=1) TELEBLOCK = getAssignedBlock("TELE", numsToAssign, DNA_HARD_BOUNDS, good=1) @@ -115,6 +116,8 @@ if(G.block in blocks_assigned) warning("DNA2: Gene [G.name] trying to use already-assigned block [G.block] (used by [english_list(blocks_assigned[G.block])])") dna_genes.Add(G) + if(G.flags & GENE_EYE_DEPENDENT) + eye_dependent_genes.Add(G) var/list/assignedToBlock[0] if(blocks_assigned[G.block]) assignedToBlock=blocks_assigned[G.block] diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index 4ec7516a409..8a2bec6a7ef 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -282,8 +282,6 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts dat += "Species: [species]
" if(species == "Vox") dat += "N2 Tank: [speciesprefs ? "Large N2 Tank" : "Specialized N2 Tank"]
" - else if(species in list("Vulpkanin", "Tajaran")) - dat += "Colour Vision: [speciesprefs ? "Unaugmented" : "Surgically Corrected"]
" dat += "Secondary Language: [language]
" dat += "Blood Type: [b_type]
" if(species in list("Human", "Drask", "Vox")) @@ -817,6 +815,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts HTML += ShowDisabilityState(user,DISABILITY_FLAG_EPILEPTIC,"Seizures") HTML += ShowDisabilityState(user,DISABILITY_FLAG_DEAF,"Deaf") HTML += ShowDisabilityState(user,DISABILITY_FLAG_BLIND,"Blind") + HTML += ShowDisabilityState(user,DISABILITY_FLAG_COLOURBLIND,"Colourblind") HTML += ShowDisabilityState(user,DISABILITY_FLAG_MUTE,"Mute") @@ -1340,12 +1339,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts organ_data = list() rlimb_data = list() if("speciesprefs") - if(species == "Vox") //oldvox code - speciesprefs = !speciesprefs //Starts 0, so if someone clicks the button up top there, this won't be 0 anymore. If they click it again, it'll go back to 0. - else if(species in list("Vulpkanin", "Tajaran")) //Species that can be colourblind. - var/list/vision_options = list("Surgically Corrected", "Unaugmented") //Surgically corrected eyes (default option) see in full colour but have 2 darksight. Unaugmented eyes are colourblind but have 8 darksight. - speciesprefs = input("Please select your vision preference. \nOverridden by mech. assisted or mechanical eyes. \nSurgically Corrected: Full colour, low darksight. \n Unaugmented: Colourblind, full darksight.", "Character Generation", 0) in vision_options - speciesprefs = (speciesprefs != "Surgically Corrected") //Ensure the default option (surgically corrected) returns 0. I would've set up the vision_options list such that Surgically Corrected = 0, but input() didn't care for it. + speciesprefs = !speciesprefs //Starts 0, so if someone clicks the button up top there, this won't be 0 anymore. If they click it again, it'll go back to 0. if("language") // var/languages_available var/list/new_languages = list("None") @@ -2173,6 +2167,10 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts character.dna.SetSEState(BLINDBLOCK,1,1) character.disabilities |= BLIND + if(disabilities & DISABILITY_FLAG_COLOURBLIND) + character.dna.SetSEState(COLOURBLINDBLOCK,1,1) + character.disabilities |= COLOURBLIND + if(disabilities & DISABILITY_FLAG_MUTE) character.dna.SetSEState(MUTEBLOCK,1,1) character.disabilities |= MUTE diff --git a/code/modules/mob/living/carbon/human/species/monkey.dm b/code/modules/mob/living/carbon/human/species/monkey.dm index 34f4e16bfdf..0108d693c18 100644 --- a/code/modules/mob/living/carbon/human/species/monkey.dm +++ b/code/modules/mob/living/carbon/human/species/monkey.dm @@ -54,8 +54,9 @@ ..() /datum/species/monkey/handle_dna(var/mob/living/carbon/human/H) - H.dna.SetSEState(MONKEYBLOCK,1) - genemutcheck(H, MONKEYBLOCK) + if(!is_type_in_list(/datum/dna/gene/monkey, H.active_genes)) //Only activate the monkey gene if it isn't already. + H.dna.SetSEState(MONKEYBLOCK,1,1) + genemutcheck(H,MONKEYBLOCK,null,MUTCHK_FORCED) /datum/species/monkey/handle_can_equip(obj/item/I, slot, disable_warning = 0, mob/living/carbon/human/user) switch(slot) @@ -106,7 +107,6 @@ base_color = "#000000" tail = "farwatail" reagent_tag = PROCESS_ORG - has_organ = list( "heart" = /obj/item/organ/internal/heart, "lungs" = /obj/item/organ/internal/lungs, @@ -114,8 +114,18 @@ "kidneys" = /obj/item/organ/internal/kidneys, "brain" = /obj/item/organ/internal/brain, "appendix" = /obj/item/organ/internal/appendix, - "eyes" = /obj/item/organ/internal/eyes/tajaran //Tajara monkey-forms are uniquely colourblind and have excellent darksight. + "eyes" = /obj/item/organ/internal/eyes/tajaran //Tajara monkey-forms are uniquely colourblind and have excellent darksight, which is why they need the same organ as the Tajara. ) + default_genes = list(COLOURBLIND) + +/datum/species/monkey/tajaran/handle_dna(var/mob/living/carbon/C, var/remove) + if(!remove) + C.dna.SetSEState(COLOURBLINDBLOCK,1,1) + genemutcheck(C,COLOURBLINDBLOCK,null,MUTCHK_FORCED) + else + C.dna.SetSEState(COLOURBLINDBLOCK,0,1) + genemutcheck(C,COLOURBLINDBLOCK,null,MUTCHK_FORCED) + ..() /datum/species/monkey/vulpkanin @@ -131,7 +141,6 @@ base_color = "#000000" tail = "wolpintail" reagent_tag = PROCESS_ORG - has_organ = list( "heart" = /obj/item/organ/internal/heart, "lungs" = /obj/item/organ/internal/lungs, @@ -139,8 +148,18 @@ "kidneys" = /obj/item/organ/internal/kidneys, "brain" = /obj/item/organ/internal/brain, "appendix" = /obj/item/organ/internal/appendix, - "eyes" = /obj/item/organ/internal/eyes/vulpkanin //Vulpkanin monkey-forms are uniquely colourblind and have excellent darksight. + "eyes" = /obj/item/organ/internal/eyes/vulpkanin //Vulpkanin monkey-forms are uniquely colourblind and have excellent darksight, which is why they need the same organ as the Vulpkanin. ) + default_genes = list(COLOURBLIND) + +/datum/species/monkey/vulpkanin/handle_dna(var/mob/living/carbon/C, var/remove) + if(!remove) + C.dna.SetSEState(COLOURBLINDBLOCK,1,1) + genemutcheck(C,COLOURBLINDBLOCK,null,MUTCHK_FORCED) + else + C.dna.SetSEState(COLOURBLINDBLOCK,0,1) + genemutcheck(C,COLOURBLINDBLOCK,null,MUTCHK_FORCED) + ..() /datum/species/monkey/skrell diff --git a/code/modules/mob/living/carbon/human/species/station.dm b/code/modules/mob/living/carbon/human/species/station.dm index 4ae52431e9a..f7635e2a9c4 100644 --- a/code/modules/mob/living/carbon/human/species/station.dm +++ b/code/modules/mob/living/carbon/human/species/station.dm @@ -125,8 +125,8 @@ "kidneys" = /obj/item/organ/internal/kidneys, "brain" = /obj/item/organ/internal/brain, "appendix" = /obj/item/organ/internal/appendix, - "eyes" = /obj/item/organ/internal/eyes/tajaran /*Most Tajara are surgically augmented at birth for full colour vision, although it cost them their darksight (darksight = 2) unless they choose otherwise in character creation (darksight = 8 but colourblind). - However, this organ define is for unaugmented eyes so cloned Tajara are colourblind but have excellent darksight.*/ + "eyes" = /obj/item/organ/internal/eyes/tajaran /*Most Tajara see in full colour as a result of genetic augmentation, although it cost them their darksight (darksight = 2) + unless they choose otherwise by selecting the colourblind disability in character creation (darksight = 8 but colourblind).*/ ) allowed_consumed_mobs = list(/mob/living/simple_animal/mouse, /mob/living/simple_animal/chick, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/parrot, @@ -138,15 +138,6 @@ "is twisting their own neck!", "is holding their breath!") -/datum/species/tajaran/equip(var/mob/living/carbon/human/H) //Handles colourblindness preferences. Should only happen if the client is in a mob otherwise it won't work. - var/sight_pref = H.client.prefs.speciesprefs - if(!sight_pref) - var/obj/item/organ/internal/eyes/tajaran/tajeyes = H.get_int_organ(/obj/item/organ/internal/eyes) - if(tajeyes && !tajeyes.robotic) //To avoid overriding the properties of cybernetic/mechassisted eyes, apply the colour matrix and darksight modifier only if the organ is organic. Robotic/mechassisted eyes currently do this, too, as is necessary. - tajeyes.colourmatrix = null //For individuals who recieved the modification, they lose much of their darksight and gain full colour vision. - tajeyes.dark_view = 2 //If they didn't, they would have their unique colour-vision and full darksight. See code\modules\surgery\organs\subtypes\tajaran.dm - H.update_client_colour(0) - /datum/species/tajaran/handle_death(var/mob/living/carbon/human/H) H.stop_tail_wagging(1) @@ -184,8 +175,8 @@ "kidneys" = /obj/item/organ/internal/kidneys, "brain" = /obj/item/organ/internal/brain, "appendix" = /obj/item/organ/internal/appendix, - "eyes" = /obj/item/organ/internal/eyes/vulpkanin /*Most Vulpkanin are surgically augmented at birth for full colour vision, although it cost them their darksight (darksight = 2) unless they choose otherwise in character creation (darksight = 8 but colourblind). - However, this organ define is for unaugmented eyes so cloned Vulpkanin are colourblind but have excellent darksight.*/ + "eyes" = /obj/item/organ/internal/eyes/vulpkanin /*Most Vulpkanin see in full colour as a result of genetic augmentation, although it cost them their darksight (darksight = 2) + unless they choose otherwise by selecting the colourblind disability in character creation (darksight = 8 but colourblind).*/ ) allowed_consumed_mobs = list(/mob/living/simple_animal/mouse, /mob/living/simple_animal/lizard, /mob/living/simple_animal/chick, /mob/living/simple_animal/chicken, @@ -197,15 +188,6 @@ "is twisting their own neck!", "is holding their breath!") -/datum/species/vulpkanin/equip(var/mob/living/carbon/human/H) //Handles colourblindness preferences. Should only happen if the client is in a mob otherwise it won't work. - var/sight_pref = H.client.prefs.speciesprefs - if(!sight_pref) - var/obj/item/organ/internal/eyes/vulpkanin/vulpeyes = H.get_int_organ(/obj/item/organ/internal/eyes) - if(vulpeyes && !vulpeyes.robotic) //To avoid overriding the properties of cybernetic/mechassisted eyes, apply the colour matrix and darksight modifier only if the organ is organic. Robotic/mechassisted eyes currently do this, too, as is necessary. - vulpeyes.colourmatrix = null //For individuals who recieved the modification, they lose much of their darksight and gain full colour vision. - vulpeyes.dark_view = 2 //If they didn't, they would have their unique colour-vision and full darksight. See code\modules\surgery\organs\subtypes\vulpkanin.dm - H.update_client_colour(0) - /datum/species/vulpkanin/handle_death(var/mob/living/carbon/human/H) H.stop_tail_wagging(1) @@ -732,11 +714,9 @@ /datum/species/grey/handle_dna(var/mob/living/carbon/C, var/remove) if(!remove) C.dna.SetSEState(REMOTETALKBLOCK,1,1) - C.mutations |= REMOTE_TALK genemutcheck(C,REMOTETALKBLOCK,null,MUTCHK_FORCED) else C.dna.SetSEState(REMOTETALKBLOCK,0,1) - C.mutations -= REMOTE_TALK genemutcheck(C,REMOTETALKBLOCK,null,MUTCHK_FORCED) ..() diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 8adc505102b..a484324560d 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -1,7 +1,6 @@ /mob/living/carbon/human/proc/monkeyize() var/mob/H = src H.dna.SetSEState(MONKEYBLOCK,1) - domutcheck(H, null) /mob/new_player/AIize() spawning = 1 diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 79d1ed5faae..514d836bfc3 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -344,6 +344,7 @@ slot = "eyes" var/list/eye_colour = list(0,0,0) var/list/colourmatrix = null + var/list/colourblind_special = list("colour_matrix" = null, "darkview" = null) //Special colourblindness parameters. var/dark_view = 2 //Default dark_view for Humans. var/weld_proof = null //If set, the eyes will not take damage during welding. eg. IPC optical sensors do not take damage when they weld things while all other eyes will. @@ -355,6 +356,19 @@ if(istype(M) && eye_colour) M.update_body() //Apply our eye colour to the target. + for(var/datum/dna/gene/G in eye_dependent_genes) //Handle the application of the eye-dependent genes from the eye to the new host mob if the genes are active. + if(dna && dna.GetSEState(G.block)) //If the eye-dependent gene in the eye's DNA is active, activate it on the human and genemutcheck to apply its effects. + M.dna.SetSEState(G.block,1,1) + genemutcheck(M,G.block,null,MUTCHK_FORCED) + +/obj/item/organ/internal/eyes/remove(mob/living/carbon/human/M, special = 0) + for(var/datum/dna/gene/G in eye_dependent_genes) //Handle the removal of the eye-dependent genes from the eye to the new host mob if the genes are active. + if(G.type in M.active_genes) //If there's an active eye-dependent gene on the mob, turn it off. + dna = M.dna.Clone() //Preserve the eye-dependent genes by ensuring the genome on the eyes remains intact. + M.dna.SetSEState(G.block,0,1) + genemutcheck(M,G.block,null,MUTCHK_FORCED) + .=..() + /obj/item/organ/internal/eyes/surgeryize() if(!owner) return diff --git a/code/modules/surgery/organs/subtypes/tajaran.dm b/code/modules/surgery/organs/subtypes/tajaran.dm index f65070feb6c..7feacd4fbc4 100644 --- a/code/modules/surgery/organs/subtypes/tajaran.dm +++ b/code/modules/surgery/organs/subtypes/tajaran.dm @@ -2,11 +2,8 @@ alcohol_intensity = 1.4 species = "Tajaran" -/obj/item/organ/internal/eyes/tajaran /*Most Tajara are surgically augmented at birth for full colour vision, although it cost them their darksight (darksight = 2) unless they choose otherwise in character creation (darksight = 8 but colourblind). - However, this organ define is for unaugmented eyes so cloned Tajara are colourblind but have excellent darksight.*/ +/obj/item/organ/internal/eyes/tajaran /*Most Tajara see in full colour as a result of genetic augmentation, although it cost them their darksight (darksight = 2) + unless they choose otherwise by selecting the colourblind disability in character creation (darksight = 8 but colourblind).*/ name = "tajaran eyeballs" species = "Tajaran" - dark_view = 8 - colourmatrix = list(0.4,0.2,0.4,\ - 0.4,0.6,0.0,\ - 0.2,0.2,0.6) //Slightly less richness of hues or saturation of colours than Vulpkanin eyes. Pastel colour scheme, blues slightly green-shifted, reds slightly blue-shifted, greens yellow-shifted. + colourblind_special = list("colour_matrix" = MATRIX_TAJ_CBLIND, "darkview" = 8) //The colour matrix and darksight parameters that the mob will recieve when they get the disability. diff --git a/code/modules/surgery/organs/subtypes/vulpkanin.dm b/code/modules/surgery/organs/subtypes/vulpkanin.dm index 39ee9463425..27172e50215 100644 --- a/code/modules/surgery/organs/subtypes/vulpkanin.dm +++ b/code/modules/surgery/organs/subtypes/vulpkanin.dm @@ -2,11 +2,8 @@ alcohol_intensity = 1.4 species = "Vulpkanin" -/obj/item/organ/internal/eyes/vulpkanin /*Most Vulpkanin are surgically augmented at birth for full colour vision, although it cost them their darksight (darksight = 2) unless they choose otherwise in character creation (darksight = 8 but colourblind). - However, this organ define is for unaugmented eyes so cloned Vulpkanin are colourblind but have excellent darksight.*/ +/obj/item/organ/internal/eyes/vulpkanin /*Most Vulpkanin see in full colour as a result of genetic augmentation, although it cost them their darksight (darksight = 2) + unless they choose otherwise by selecting the colourblind disability in character creation (darksight = 8 but colourblind).*/ name = "vulpkanin eyeballs" species = "Vulpkanin" - dark_view = 8 - colourmatrix = list(0.5,0.4,0.1,\ - 0.5,0.4,0.1,\ - 0.0,0.2,0.8) //Seeing in tones of blues and yellows, blind to greens. More richness of hue and saturation of colour than Tajara. + colourblind_special = list("colour_matrix" = MATRIX_VULP_CBLIND, "darkview" = 8) //The colour matrix and darksight parameters that the mob will recieve when they get the disability. From d73413b04662b6e0f2a0d0622943a865a734c351 Mon Sep 17 00:00:00 2001 From: KasparoVy Date: Mon, 23 Jan 2017 05:51:46 -0500 Subject: [PATCH 008/101] Uses the Disabilities system more correctly Allows eyes to track eye-dependent disabilities when removed from the mob. Farwas and Wolpins are now incurably colourblind (non-genetics based), so going lesser-form and back won't wipe your colourblindness. Eyes being straight-up deleted (as per how set_species() handles setting up the organs required for the species we're changing to) no longer wipes colourblindness. Now with more helper procs, less unnecessary commenting, random changes and other cleanliness-related tweaks. --- code/__DEFINES/genetics.dm | 3 -- code/game/dna/dna2.dm | 1 - code/game/dna/dna2_domutcheck.dm | 4 +-- code/game/dna/genes/disabilities.dm | 32 +++++-------------- code/game/dna/genes/gene.dm | 3 -- .../gamemodes/changeling/powers/humanform.dm | 8 ++--- .../gamemodes/changeling/powers/lesserform.dm | 5 +-- .../gamemodes/changeling/powers/transform.dm | 2 +- code/game/gamemodes/setupgame.dm | 2 -- code/game/machinery/adv_med.dm | 3 ++ code/game/objects/items/devices/flashlight.dm | 17 +++++----- code/modules/client/preference/preferences.dm | 5 +-- .../mob/living/carbon/human/species/monkey.dm | 24 ++------------ .../living/carbon/human/species/species.dm | 4 +-- code/modules/mob/mob_helpers.dm | 9 +++--- code/modules/mob/new_player/new_player.dm | 2 +- code/modules/mob/transform_procs.dm | 1 + code/modules/surgery/organs/helpers.dm | 1 + code/modules/surgery/organs/organ_internal.dm | 32 ++++++++++++------- .../surgery/organs/subtypes/tajaran.dm | 9 +++++- .../surgery/organs/subtypes/vulpkanin.dm | 9 +++++- nano/templates/adv_med.tmpl | 7 ++-- 22 files changed, 84 insertions(+), 99 deletions(-) diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm index 822179bf4cd..8e7be007d12 100644 --- a/code/__DEFINES/genetics.dm +++ b/code/__DEFINES/genetics.dm @@ -116,6 +116,3 @@ #define CLONER_FRESH_CLONE "fresh" #define CLONER_MATURE_CLONE "mature" - -//Gene properties -#define GENE_EYE_DEPENDENT 1 diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index 2967dafe5ae..82f7ffb2e93 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -65,7 +65,6 @@ var/global/list/assigned_gene_blocks[DNA_SE_LENGTH] var/global/list/assigned_blocks[DNA_SE_LENGTH] var/global/list/datum/dna/gene/dna_genes[0] -var/global/list/datum/dna/gene/eye_dependent_genes[0] var/global/list/good_blocks[0] var/global/list/bad_blocks[0] diff --git a/code/game/dna/dna2_domutcheck.dm b/code/game/dna/dna2_domutcheck.dm index 61ecb735459..6175d547d63 100644 --- a/code/game/dna/dna2_domutcheck.dm +++ b/code/game/dna/dna2_domutcheck.dm @@ -44,7 +44,7 @@ var/mob/living/carbon/human/H = M defaultgenes = H.species.default_genes - if((gene in defaultgenes) && gene_active && !gene.update) //Unless we want to update them with current information they depend on. + if((gene in defaultgenes) && gene_active) return // Prior state @@ -65,5 +65,3 @@ gene.deactivate(M,connected,flags) if(M) M.active_genes -= gene.type - else if(gene.update && gene_active && (gene.type in M.active_genes)) //Update the gene. It should already be in the list of active genes. Updating is only useful if it's active. - gene.activate(M,connected,flags) diff --git a/code/game/dna/genes/disabilities.dm b/code/game/dna/genes/disabilities.dm index 28c9c1c76b6..aaea991d5cf 100644 --- a/code/game/dna/genes/disabilities.dm +++ b/code/game/dna/genes/disabilities.dm @@ -116,38 +116,22 @@ block=BLINDBLOCK /datum/dna/gene/disability/colourblindness - name="Colourblindness" - activation_message="Your perception of colour warps and distorts." - deactivation_message ="Your perception of colour returns to normal." + name = "Colourblindness" + activation_message = "You feel a peculiar prickling in your eyes while your perception of colour changes." + deactivation_message ="Your eyes tingle unsettlingly, though everything seems to become alot more colourful." instability = -GENE_INSTABILITY_MODERATE disability = COLOURBLIND - flags = GENE_EYE_DEPENDENT - update = 1 /datum/dna/gene/disability/colourblindness/New() block=COLOURBLINDBLOCK /datum/dna/gene/disability/colourblindness/activate(var/mob/M, var/connected, var/flags) - ..(M,connected,flags) - var/mob/living/carbon/human/H = M - if(istype(M)) - var/obj/item/organ/internal/eyes/eyes = H.get_int_organ(/obj/item/organ/internal/eyes) - if(eyes && !eyes.robotic) //To avoid overriding the properties of cybernetic/mechassisted eyes, apply the colour matrix and darksight modifier only if the organ is organic. Robotic/mechassisted eyes currently do this, too, as is necessary. - var/list/cblind_properties = (eyes.colourblind_special) ? eyes.colourblind_special : null //If the mob's species has its own colourblindness parameters, gather them. - eyes.colourmatrix = (cblind_properties && cblind_properties["colour_matrix"]) ? cblind_properties["colour_matrix"] : MATRIX_GREYSCALE //If the mob's species has its own colourblindness colour matrix parameter, use it. - eyes.dark_view = (cblind_properties && cblind_properties["darkview"]) ? cblind_properties["darkview"] : eyes.dark_view //If the mob's species has its own colourblindness dark view parameter, use it. - H.update_client_colour() + ..() + M.update_client_colour() //Handle the activation of the colourblindness on the mob. /datum/dna/gene/disability/colourblindness/deactivate(var/mob/M, var/connected, var/flags) - ..(M,connected,flags) - var/mob/living/carbon/human/H = M - if(istype(M)) - var/obj/item/organ/internal/eyes/eyes = H.get_int_organ(/obj/item/organ/internal/eyes) - if(eyes && !eyes.robotic) //To avoid overriding the properties of cybernetic/mechassisted eyes, apply the colour matrix and darksight modifier only if the organ is organic. Robotic/mechassisted eyes currently do this, too, as is necessary. - var/list/cblind_properties = (eyes.colourblind_special) ? eyes.colourblind_special : null //If the mob's species has its own colourblindness parameters, gather them. - eyes.colourmatrix = null //The only time a mob will have this set is if they're colourblind, so it's fine to null this out. - eyes.dark_view = (cblind_properties && cblind_properties["darkview"]) ? initial(eyes.dark_view) : eyes.dark_view //If the mob's species has its own colourblindness dark view parameter, set the mob's dark_view back to normal. - H.update_client_colour() + ..() + M.update_client_colour() //Handle the deactivation of the colourblindness on the mob. /datum/dna/gene/disability/deaf name="Deafness" @@ -160,7 +144,7 @@ block=DEAFBLOCK /datum/dna/gene/disability/deaf/activate(var/mob/M, var/connected, var/flags) - ..(M,connected,flags) + ..() M.EarDeaf(1) /datum/dna/gene/disability/nearsighted diff --git a/code/game/dna/genes/gene.dm b/code/game/dna/genes/gene.dm index 63992e16a5f..f74d0c7d2a0 100644 --- a/code/game/dna/genes/gene.dm +++ b/code/game/dna/genes/gene.dm @@ -26,9 +26,6 @@ // Chance of the gene to cause adverse effects when active var/instability=0 - // Whether the gene needs to be updated regardless of whether the mob has it or not. Useful for colour vision modifiers. - var/update=0 - /* * Is the gene active in this mob's DNA? */ diff --git a/code/game/gamemodes/changeling/powers/humanform.dm b/code/game/gamemodes/changeling/powers/humanform.dm index aa333a865b5..fb3012cd274 100644 --- a/code/game/gamemodes/changeling/powers/humanform.dm +++ b/code/game/gamemodes/changeling/powers/humanform.dm @@ -26,11 +26,11 @@ to_chat(user, "We transform our appearance.") user.dna.SetSEState(MONKEYBLOCK,0,1) genemutcheck(user,MONKEYBLOCK,null,MUTCHK_FORCED) - user.real_name = chosen_dna.real_name - if(ishuman(user)) - user.set_species(chosen_dna.species) user.dna = chosen_dna.Clone() - domutcheck(user, null, MUTCHK_FORCED) + user.real_name = chosen_dna.real_name + if(istype(user)) + user.set_species(chosen_dna.species) + domutcheck(user,null,MUTCHK_FORCED) user.flavor_text = "" user.dna.UpdateSE() user.dna.UpdateUI() diff --git a/code/game/gamemodes/changeling/powers/lesserform.dm b/code/game/gamemodes/changeling/powers/lesserform.dm index 7316d635acf..9901768f1e5 100644 --- a/code/game/gamemodes/changeling/powers/lesserform.dm +++ b/code/game/gamemodes/changeling/powers/lesserform.dm @@ -23,16 +23,13 @@ var/datum/dna/DNA = changeling.GetDNA(user.dna.real_name) user.dna = DNA ? DNA.Clone() : user.dna - H.visible_message("[H] transforms!") changeling.geneticdamage = 30 to_chat(H, "Our genes cry out!") var/list/implants = list() //Try to preserve implants. for(var/obj/item/weapon/implant/W in H) implants += W - - user.dna.SetSEState(MONKEYBLOCK,1,1) - genemutcheck(user,MONKEYBLOCK,null,MUTCHK_FORCED) + H.monkeyize() changeling.purchasedpowers += new /obj/effect/proc_holder/changeling/humanform(null) feedback_add_details("changeling_powers","LF") return 1 \ No newline at end of file diff --git a/code/game/gamemodes/changeling/powers/transform.dm b/code/game/gamemodes/changeling/powers/transform.dm index 5ca928c77c7..b7c8abefd1d 100644 --- a/code/game/gamemodes/changeling/powers/transform.dm +++ b/code/game/gamemodes/changeling/powers/transform.dm @@ -14,10 +14,10 @@ if(!chosen_dna) return + user.dna = chosen_dna.Clone() user.real_name = chosen_dna.real_name if(ishuman(user)) user.set_species(chosen_dna.species) - user.dna = chosen_dna.Clone() domutcheck(user, null, MUTCHK_FORCED) //Ensures species that get powers by the species proc handle_dna keep them user.flavor_text = "" user.dna.UpdateSE() diff --git a/code/game/gamemodes/setupgame.dm b/code/game/gamemodes/setupgame.dm index e55d99c4c9e..c785c511304 100644 --- a/code/game/gamemodes/setupgame.dm +++ b/code/game/gamemodes/setupgame.dm @@ -116,8 +116,6 @@ if(G.block in blocks_assigned) warning("DNA2: Gene [G.name] trying to use already-assigned block [G.block] (used by [english_list(blocks_assigned[G.block])])") dna_genes.Add(G) - if(G.flags & GENE_EYE_DEPENDENT) - eye_dependent_genes.Add(G) var/list/assignedToBlock[0] if(blocks_assigned[G.block]) assignedToBlock=blocks_assigned[G.block] diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index f7b793b6033..4f9e357cd61 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -453,6 +453,7 @@ occupantData["intOrgan"] = intOrganData occupantData["blind"] = (H.disabilities & BLIND) + occupantData["colourblind"] = (H.disabilities & COLOURBLIND) occupantData["nearsighted"] = (H.disabilities & NEARSIGHTED) data["occupant"] = occupantData @@ -639,6 +640,8 @@ dat += "" if(occupant.disabilities & BLIND) dat += "Cataracts detected.
" + if(occupant.disabilities & COLOURBLIND) + dat += "Photoreceptor abnormalities detected.
" if(occupant.disabilities & NEARSIGHTED) dat += "Retinal misalignment detected.
" else diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 7806982a627..d8f17ac4335 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -54,8 +54,8 @@ return var/mob/living/carbon/human/H = M //mob has protective eyewear - if(istype(M, /mob/living/carbon/human) && ((H.head && H.head.flags & HEADCOVERSEYES) || (H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || (H.glasses && H.glasses.flags & GLASSESCOVERSEYES))) - to_chat(user, "You're going to need to remove that [(H.head && H.head.flags & HEADCOVERSEYES) ? "helmet" : (H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) ? "mask": "glasses"] first.") + if(istype(H) && ((H.head && H.head.flags & HEADCOVERSEYES) || (H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || (H.glasses && H.glasses.flags & GLASSESCOVERSEYES))) + to_chat(user, "You're going to need to remove that [(H.head && H.head.flags & HEADCOVERSEYES) ? "helmet" : (H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) ? "mask" : "glasses"] first.") return if(M == user) //they're using it on themselves @@ -70,12 +70,13 @@ user.visible_message("[user] directs [src] to [M]'s eyes.", \ "You direct [src] to [M]'s eyes.") - if(istype(M, /mob/living/carbon/human)) //robots and aliens are unaffected - if(M.stat == DEAD || M.disabilities & BLIND) //mob is dead or fully blind - to_chat(user, "[M] pupils does not react to the light!") - else if(XRAY in M.mutations) //mob has X-RAY vision - to_chat(user, "[M] pupils give an eerie glow!") - else //they're okay! + if(istype(H)) //robots and aliens are unaffected + var/obj/item/organ/internal/eyes/eyes = H.get_int_organ(/obj/item/organ/internal/eyes) + if(M.stat == DEAD || !eyes || M.disabilities & BLIND) //mob is dead or fully blind + to_chat(user, "[M]'s pupils are unresponsive to the light!") + else if((XRAY in M.mutations) || (eyes.colourblind_darkview && eyes.colourblind_darkview == eyes.dark_view)) //The mob's either got the X-RAY vision or has a tapetum lucidum (extreme nightvision). + to_chat(user, "[M]'s pupils glow eerily!") + else //they're okay! if(M.flash_eyes(visual = 1)) to_chat(user, "[M]'s pupils narrow.") else diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index 8a2bec6a7ef..fda5f7bedfb 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -2020,6 +2020,8 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts return 1 /datum/preferences/proc/copy_to(mob/living/carbon/human/character) + var/datum/species/S = all_species[species] + character.change_species(species) // Yell at me if this causes everything to melt if(be_random_name) real_name = random_name(gender,species) @@ -2169,13 +2171,12 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if(disabilities & DISABILITY_FLAG_COLOURBLIND) character.dna.SetSEState(COLOURBLINDBLOCK,1,1) - character.disabilities |= COLOURBLIND if(disabilities & DISABILITY_FLAG_MUTE) character.dna.SetSEState(MUTEBLOCK,1,1) character.disabilities |= MUTE - character.species.handle_dna(character) + S.handle_dna(character) if(character.dna.dirtySE) character.dna.UpdateSE() diff --git a/code/modules/mob/living/carbon/human/species/monkey.dm b/code/modules/mob/living/carbon/human/species/monkey.dm index 0108d693c18..c4c705829b4 100644 --- a/code/modules/mob/living/carbon/human/species/monkey.dm +++ b/code/modules/mob/living/carbon/human/species/monkey.dm @@ -114,18 +114,8 @@ "kidneys" = /obj/item/organ/internal/kidneys, "brain" = /obj/item/organ/internal/brain, "appendix" = /obj/item/organ/internal/appendix, - "eyes" = /obj/item/organ/internal/eyes/tajaran //Tajara monkey-forms are uniquely colourblind and have excellent darksight, which is why they need the same organ as the Tajara. + "eyes" = /obj/item/organ/internal/eyes/tajaran/farwa //Tajara monkey-forms are uniquely colourblind and have excellent darksight, which is why they need a subtype of their greater-form's organ.. ) - default_genes = list(COLOURBLIND) - -/datum/species/monkey/tajaran/handle_dna(var/mob/living/carbon/C, var/remove) - if(!remove) - C.dna.SetSEState(COLOURBLINDBLOCK,1,1) - genemutcheck(C,COLOURBLINDBLOCK,null,MUTCHK_FORCED) - else - C.dna.SetSEState(COLOURBLINDBLOCK,0,1) - genemutcheck(C,COLOURBLINDBLOCK,null,MUTCHK_FORCED) - ..() /datum/species/monkey/vulpkanin @@ -148,18 +138,8 @@ "kidneys" = /obj/item/organ/internal/kidneys, "brain" = /obj/item/organ/internal/brain, "appendix" = /obj/item/organ/internal/appendix, - "eyes" = /obj/item/organ/internal/eyes/vulpkanin //Vulpkanin monkey-forms are uniquely colourblind and have excellent darksight, which is why they need the same organ as the Vulpkanin. + "eyes" = /obj/item/organ/internal/eyes/vulpkanin/wolpin //Vulpkanin monkey-forms are uniquely colourblind and have excellent darksight, which is why they need a subtype of their greater-form's organ.. ) - default_genes = list(COLOURBLIND) - -/datum/species/monkey/vulpkanin/handle_dna(var/mob/living/carbon/C, var/remove) - if(!remove) - C.dna.SetSEState(COLOURBLINDBLOCK,1,1) - genemutcheck(C,COLOURBLINDBLOCK,null,MUTCHK_FORCED) - else - C.dna.SetSEState(COLOURBLINDBLOCK,0,1) - genemutcheck(C,COLOURBLINDBLOCK,null,MUTCHK_FORCED) - ..() /datum/species/monkey/skrell diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 73c557c9c58..7ac64189ce8 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -588,8 +588,8 @@ It'll return null if the organ doesn't correspond, so include null checks when u /datum/species/proc/get_resultant_darksight(mob/living/carbon/human/H) //Returns default value of 2 if the mob doesn't have eyes, otherwise it grabs the eyes darksight. var/resultant_darksight = 2 var/obj/item/organ/internal/eyes/eyes = H.get_int_organ(/obj/item/organ/internal/eyes) - if(eyes && eyes.dark_view) - resultant_darksight = eyes.dark_view + if(eyes) + resultant_darksight = eyes.get_dark_view() return resultant_darksight /datum/species/proc/update_sight(mob/living/carbon/human/H) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index e07fb765ce7..93c79aeebfc 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -25,20 +25,21 @@ /mob/proc/get_screen_colour() /mob/proc/update_client_colour(var/time = 10) //Update the mob's client.color with an animation the specified time in length. - if(!client) + if(!client) //No client_colour without client. If the player logs back in they'll be back through here anyway. return - client.colour_transition(get_screen_colour(), time = time) + client.colour_transition(get_screen_colour(), time = time) //Get the colour matrix we're going to transition to depending on relevance (magic glasses first, eyes second). /mob/living/carbon/human/get_screen_colour() //Fetch the colour matrix from wherever (e.g. eyes) so it can be compared to client.color. . = ..() if(.) return . + var/obj/item/clothing/glasses/worn_glasses = glasses var/obj/item/organ/internal/eyes/eyes = get_int_organ(/obj/item/organ/internal/eyes) if(istype(worn_glasses) && worn_glasses.color_view) //Check to see if they got those magic glasses and they're augmenting the colour of what the wearer sees. If they're not, color_view should be null. return worn_glasses.color_view - else if(eyes && eyes.colourmatrix) //If they're not, check to see if their eyes got one of them there colour matrices. - return eyes.colourmatrix + else if(eyes) //If they're not, check to see if their eyes got one of them there colour matrices. Will be null if eyes are robotic/the mob isn't colourblind and they have no default colour matrix. + return eyes.get_colourmatrix() /proc/isloyal(A) //Checks to see if the person contains a mindshield implant, then checks that the implant is actually inside of them for(var/obj/item/weapon/implant/loyalty/L in A) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 2233c617b6e..bccd7990de9 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -483,7 +483,7 @@ close_spawn_windows() check_prefs_are_sane() - var/mob/living/carbon/human/new_character = new(loc, client.prefs.species) + var/mob/living/carbon/human/new_character = new(loc) new_character.lastarea = get_area(loc) if(ticker.random_players || appearance_isbanned(new_character)) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index a484324560d..8adc505102b 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -1,6 +1,7 @@ /mob/living/carbon/human/proc/monkeyize() var/mob/H = src H.dna.SetSEState(MONKEYBLOCK,1) + domutcheck(H, null) /mob/new_player/AIize() spawning = 1 diff --git a/code/modules/surgery/organs/helpers.dm b/code/modules/surgery/organs/helpers.dm index 24ae966cd14..a61537f1985 100644 --- a/code/modules/surgery/organs/helpers.dm +++ b/code/modules/surgery/organs/helpers.dm @@ -13,6 +13,7 @@ /mob/living/carbon/get_int_organ(typepath) return (locate(typepath) in internal_organs) + /mob/living/carbon/get_organs_zone(zone, var/subzones = 0) var/list/returnorg = list() if(subzones) diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 514d836bfc3..c6a81e04481 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -344,30 +344,40 @@ slot = "eyes" var/list/eye_colour = list(0,0,0) var/list/colourmatrix = null - var/list/colourblind_special = list("colour_matrix" = null, "darkview" = null) //Special colourblindness parameters. + var/list/colourblind_matrix = null //Special colourblindness parameters. + var/colourblind_darkview = null + var/dependent_disabilities = null //Gets set by eye-dependent disabilities such as colourblindness so the eyes can transfer the disability during transplantation. var/dark_view = 2 //Default dark_view for Humans. var/weld_proof = null //If set, the eyes will not take damage during welding. eg. IPC optical sensors do not take damage when they weld things while all other eyes will. /obj/item/organ/internal/eyes/proc/update_colour() dna.write_eyes_attributes(src) +/obj/item/organ/internal/eyes/proc/get_colourmatrix() //Returns a colour matrix if the eyes are organic. + return !robotic && owner.disabilities & COLOURBLIND ? (colourblind_matrix ? colourblind_matrix : MATRIX_GREYSCALE) : colourmatrix //Returns special colourmatrix if colourblind and it exists and greyscale if it doesn't, otherwise returns current velue. + +/obj/item/organ/internal/eyes/proc/get_dark_view() //Returns dark_view (if the eyes are organic) for see_invisible handling in species.dm to be autoprocessed by life(). + return !robotic && colourblind_darkview && owner.disabilities & COLOURBLIND ? colourblind_darkview : dark_view //Returns special darkview value if colourblind and it exists, otherwise returns current velue. + /obj/item/organ/internal/eyes/insert(mob/living/carbon/human/M, special = 0) ..() if(istype(M) && eye_colour) M.update_body() //Apply our eye colour to the target. - for(var/datum/dna/gene/G in eye_dependent_genes) //Handle the application of the eye-dependent genes from the eye to the new host mob if the genes are active. - if(dna && dna.GetSEState(G.block)) //If the eye-dependent gene in the eye's DNA is active, activate it on the human and genemutcheck to apply its effects. - M.dna.SetSEState(G.block,1,1) - genemutcheck(M,G.block,null,MUTCHK_FORCED) + if(!(M.disabilities & COLOURBLIND) && (dependent_disabilities & COLOURBLIND)) //If the eyes are colourblind and we're not, carry over the gene. + dependent_disabilities &= ~COLOURBLIND + M.dna.SetSEState(COLOURBLINDBLOCK,1,1) + genemutcheck(M,COLOURBLINDBLOCK,null,MUTCHK_FORCED) + else + M.update_client_colour() //If we're here, that means the mob acquired the colourblindness gene while they didn't have eyes. Better handle it. /obj/item/organ/internal/eyes/remove(mob/living/carbon/human/M, special = 0) - for(var/datum/dna/gene/G in eye_dependent_genes) //Handle the removal of the eye-dependent genes from the eye to the new host mob if the genes are active. - if(G.type in M.active_genes) //If there's an active eye-dependent gene on the mob, turn it off. - dna = M.dna.Clone() //Preserve the eye-dependent genes by ensuring the genome on the eyes remains intact. - M.dna.SetSEState(G.block,0,1) - genemutcheck(M,G.block,null,MUTCHK_FORCED) - .=..() + if(!special && (M.disabilities & COLOURBLIND)) //If special is set, that means these eyes are getting deleted (i.e. during set_species()) + if(!(dependent_disabilities & COLOURBLIND)) //We only want to change COLOURBLINDBLOCK and such it the eyes are being surgically removed. + dependent_disabilities |= COLOURBLIND + M.dna.SetSEState(COLOURBLINDBLOCK,0,1) + genemutcheck(M,COLOURBLINDBLOCK,null,MUTCHK_FORCED) + . = ..() /obj/item/organ/internal/eyes/surgeryize() if(!owner) diff --git a/code/modules/surgery/organs/subtypes/tajaran.dm b/code/modules/surgery/organs/subtypes/tajaran.dm index 7feacd4fbc4..746abd6e601 100644 --- a/code/modules/surgery/organs/subtypes/tajaran.dm +++ b/code/modules/surgery/organs/subtypes/tajaran.dm @@ -6,4 +6,11 @@ unless they choose otherwise by selecting the colourblind disability in character creation (darksight = 8 but colourblind).*/ name = "tajaran eyeballs" species = "Tajaran" - colourblind_special = list("colour_matrix" = MATRIX_TAJ_CBLIND, "darkview" = 8) //The colour matrix and darksight parameters that the mob will recieve when they get the disability. + colourblind_matrix = MATRIX_TAJ_CBLIND //The colour matrix and darksight parameters that the mob will recieve when they get the disability. + colourblind_darkview = 8 + +/obj/item/organ/internal/eyes/tajaran/farwa //Being the lesser form of Tajara, Farwas have an utterly incurable version of their colourblindness. + name = "farwa eyeballs" + species = "Farwa" + colourmatrix = MATRIX_TAJ_CBLIND + dark_view = 8 diff --git a/code/modules/surgery/organs/subtypes/vulpkanin.dm b/code/modules/surgery/organs/subtypes/vulpkanin.dm index 27172e50215..af3d9deab09 100644 --- a/code/modules/surgery/organs/subtypes/vulpkanin.dm +++ b/code/modules/surgery/organs/subtypes/vulpkanin.dm @@ -6,4 +6,11 @@ unless they choose otherwise by selecting the colourblind disability in character creation (darksight = 8 but colourblind).*/ name = "vulpkanin eyeballs" species = "Vulpkanin" - colourblind_special = list("colour_matrix" = MATRIX_VULP_CBLIND, "darkview" = 8) //The colour matrix and darksight parameters that the mob will recieve when they get the disability. + colourblind_matrix = MATRIX_VULP_CBLIND //The colour matrix and darksight parameters that the mob will recieve when they get the disability. + colourblind_darkview = 8 + +/obj/item/organ/internal/eyes/vulpkanin/wolpin //Being the lesser form of Vulpkanin, Wolpins have an utterly incurable version of their colourblindness. + name = "wolpin eyeballs" + species = "Wolpin" + colourmatrix = MATRIX_VULP_CBLIND + dark_view = 8 diff --git a/nano/templates/adv_med.tmpl b/nano/templates/adv_med.tmpl index 51b74a12fda..e88db47456a 100644 --- a/nano/templates/adv_med.tmpl +++ b/nano/templates/adv_med.tmpl @@ -52,10 +52,13 @@ Used In File(s): \code\game\machinery\adv_med.dm Large growth detected in frontal lobe, possibly cancerous. Surgical removal is recommended.
{{/if}} {{if data.occupant.blind}} - Pupils unresponsive.
+ Cataracts detected.
+ {{/if}} + {{if data.occupant.colourblind}} + Photoreceptor abnormalities detected.
{{/if}} {{if data.occupant.nearsighted}} - Retinal misalignment detected
+ Retinal misalignment detected.
{{/if}}
From c27454497a315cdec9d16cfd9fbaff94016cd843 Mon Sep 17 00:00:00 2001 From: uraniummeltdown Date: Thu, 26 Jan 2017 20:47:16 +0400 Subject: [PATCH 009/101] increased playercount delay --- code/modules/events/event_container.dm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index af407b4a25e..18862df22e5 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -103,12 +103,10 @@ var/list/event_last_fired = list() playercount_modifier = 0.9 if(36 to 50) playercount_modifier = 0.8 - if(50 to 70) + if(50 to 80) playercount_modifier = 0.7 - if(70 to 100) + if(80 to 10000) playercount_modifier = 0.6 - if(100 to 50000) - playercount_modifier = 0.5 playercount_modifier = playercount_modifier * delay_modifier From 8be26937983c45883a06427fc6756dece48fdb15 Mon Sep 17 00:00:00 2001 From: KasparoVy Date: Fri, 27 Jan 2017 19:15:38 -0500 Subject: [PATCH 010/101] Minor Tweaks & Fixes - Updated the flashlight eye-shine check with the new get_dark_view() helper proc - Removed a useless check on the handle_dna() for monkeys - Increases reliability of the monkeyize() proc and fixes issues where calling it wouldn't turn a mob into a monkey on the spot. - Increases readability/maintainability of the get_colourmatrix() and get_dark_view() procs. --- .../gamemodes/changeling/powers/lesserform.dm | 3 +-- code/game/objects/items/devices/flashlight.dm | 2 +- .../mob/living/carbon/human/species/monkey.dm | 5 ++--- code/modules/mob/transform_procs.dm | 2 +- code/modules/surgery/organs/organ_internal.dm | 18 ++++++++++++------ 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/code/game/gamemodes/changeling/powers/lesserform.dm b/code/game/gamemodes/changeling/powers/lesserform.dm index 9901768f1e5..8ba1e53cb10 100644 --- a/code/game/gamemodes/changeling/powers/lesserform.dm +++ b/code/game/gamemodes/changeling/powers/lesserform.dm @@ -21,8 +21,7 @@ to_chat(H, "We cannot perform this ability in this form!") return - var/datum/dna/DNA = changeling.GetDNA(user.dna.real_name) - user.dna = DNA ? DNA.Clone() : user.dna + user.dna = user.dna.Clone() H.visible_message("[H] transforms!") changeling.geneticdamage = 30 to_chat(H, "Our genes cry out!") diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index d8f17ac4335..216c37e7a51 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -74,7 +74,7 @@ var/obj/item/organ/internal/eyes/eyes = H.get_int_organ(/obj/item/organ/internal/eyes) if(M.stat == DEAD || !eyes || M.disabilities & BLIND) //mob is dead or fully blind to_chat(user, "[M]'s pupils are unresponsive to the light!") - else if((XRAY in M.mutations) || (eyes.colourblind_darkview && eyes.colourblind_darkview == eyes.dark_view)) //The mob's either got the X-RAY vision or has a tapetum lucidum (extreme nightvision). + else if((XRAY in M.mutations) || (eyes.colourblind_darkview && eyes.colourblind_darkview == eyes.get_dark_view())) //The mob's either got the X-RAY vision or has a tapetum lucidum (extreme nightvision, i.e. Vulp/Tajara with COLOURBLIND & their monkey forms). to_chat(user, "[M]'s pupils glow eerily!") else //they're okay! if(M.flash_eyes(visual = 1)) diff --git a/code/modules/mob/living/carbon/human/species/monkey.dm b/code/modules/mob/living/carbon/human/species/monkey.dm index c4c705829b4..6e29d658cfe 100644 --- a/code/modules/mob/living/carbon/human/species/monkey.dm +++ b/code/modules/mob/living/carbon/human/species/monkey.dm @@ -54,9 +54,8 @@ ..() /datum/species/monkey/handle_dna(var/mob/living/carbon/human/H) - if(!is_type_in_list(/datum/dna/gene/monkey, H.active_genes)) //Only activate the monkey gene if it isn't already. - H.dna.SetSEState(MONKEYBLOCK,1,1) - genemutcheck(H,MONKEYBLOCK,null,MUTCHK_FORCED) + H.dna.SetSEState(MONKEYBLOCK,1) + genemutcheck(H,MONKEYBLOCK,null,MUTCHK_FORCED) /datum/species/monkey/handle_can_equip(obj/item/I, slot, disable_warning = 0, mob/living/carbon/human/user) switch(slot) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 8adc505102b..f7fb545d495 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -1,7 +1,7 @@ /mob/living/carbon/human/proc/monkeyize() var/mob/H = src H.dna.SetSEState(MONKEYBLOCK,1) - domutcheck(H, null) + genemutcheck(H,MONKEYBLOCK,null,MUTCHK_FORCED) /mob/new_player/AIize() spawning = 1 diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index c6a81e04481..b951b8c0774 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -344,7 +344,7 @@ slot = "eyes" var/list/eye_colour = list(0,0,0) var/list/colourmatrix = null - var/list/colourblind_matrix = null //Special colourblindness parameters. + var/list/colourblind_matrix = MATRIX_GREYSCALE //Special colourblindness parameters. By default, it's black-and-white. var/colourblind_darkview = null var/dependent_disabilities = null //Gets set by eye-dependent disabilities such as colourblindness so the eyes can transfer the disability during transplantation. var/dark_view = 2 //Default dark_view for Humans. @@ -353,11 +353,17 @@ /obj/item/organ/internal/eyes/proc/update_colour() dna.write_eyes_attributes(src) -/obj/item/organ/internal/eyes/proc/get_colourmatrix() //Returns a colour matrix if the eyes are organic. - return !robotic && owner.disabilities & COLOURBLIND ? (colourblind_matrix ? colourblind_matrix : MATRIX_GREYSCALE) : colourmatrix //Returns special colourmatrix if colourblind and it exists and greyscale if it doesn't, otherwise returns current velue. +/obj/item/organ/internal/eyes/proc/get_colourmatrix() //Returns a special colour matrix if the eyes are organic and the mob is colourblind, otherwise it uses the current one. + if(!robotic && owner.disabilities & COLOURBLIND) + return colourblind_matrix + else + return colourmatrix /obj/item/organ/internal/eyes/proc/get_dark_view() //Returns dark_view (if the eyes are organic) for see_invisible handling in species.dm to be autoprocessed by life(). - return !robotic && colourblind_darkview && owner.disabilities & COLOURBLIND ? colourblind_darkview : dark_view //Returns special darkview value if colourblind and it exists, otherwise returns current velue. + if(!robotic && colourblind_darkview && owner.disabilities & COLOURBLIND) //Returns special darkview value if colourblind and it exists, otherwise reuse current. + return colourblind_darkview + else + return dark_view /obj/item/organ/internal/eyes/insert(mob/living/carbon/human/M, special = 0) ..() @@ -366,7 +372,7 @@ if(!(M.disabilities & COLOURBLIND) && (dependent_disabilities & COLOURBLIND)) //If the eyes are colourblind and we're not, carry over the gene. dependent_disabilities &= ~COLOURBLIND - M.dna.SetSEState(COLOURBLINDBLOCK,1,1) + M.dna.SetSEState(COLOURBLINDBLOCK,1) genemutcheck(M,COLOURBLINDBLOCK,null,MUTCHK_FORCED) else M.update_client_colour() //If we're here, that means the mob acquired the colourblindness gene while they didn't have eyes. Better handle it. @@ -375,7 +381,7 @@ if(!special && (M.disabilities & COLOURBLIND)) //If special is set, that means these eyes are getting deleted (i.e. during set_species()) if(!(dependent_disabilities & COLOURBLIND)) //We only want to change COLOURBLINDBLOCK and such it the eyes are being surgically removed. dependent_disabilities |= COLOURBLIND - M.dna.SetSEState(COLOURBLINDBLOCK,0,1) + M.dna.SetSEState(COLOURBLINDBLOCK,0) genemutcheck(M,COLOURBLINDBLOCK,null,MUTCHK_FORCED) . = ..() From f7f08ae26596e2f61fe8febc905873e5b0387acf Mon Sep 17 00:00:00 2001 From: Markolie Date: Sat, 28 Jan 2017 22:13:32 +0100 Subject: [PATCH 011/101] Enable construction of glass airlocks --- code/game/machinery/doors/airlock.dm | 1 + .../items/stacks/sheets/sheet_types.dm | 2 +- code/game/objects/structures/door_assembly.dm | 66 +++++++++++------- icons/obj/doors/Doorfire.dmi | Bin 5696 -> 3783 bytes icons/obj/doors/door_assembly.dmi | Bin 47022 -> 47904 bytes 5 files changed, 42 insertions(+), 27 deletions(-) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 114bada5e19..d6b86307d63 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -94,6 +94,7 @@ name = "Glass Airlock" icon = 'icons/obj/doors/Doorglass.dmi' opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_glass glass = 1 doorOpen = 'sound/machines/windowdoor.ogg' doorClose = 'sound/machines/windowdoor.ogg' diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 509d6adb0a7..503e0e5a1be 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -63,13 +63,13 @@ var/global/list/datum/stack_recipe/metal_recipes = list( new /datum/stack_recipe("mining airlock assembly", /obj/structure/door_assembly/door_assembly_min, 4, time = 50, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("atmospherics airlock assembly", /obj/structure/door_assembly/door_assembly_atmo, 4, time = 50, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("research airlock assembly", /obj/structure/door_assembly/door_assembly_research, 4, time = 50, one_per_turf = 1, on_floor = 1), -/* new /datum/stack_recipe("science airlock assembly", /obj/structure/door_assembly/door_assembly_science, 4, time = 50, one_per_turf = 1, on_floor = 1), */ new /datum/stack_recipe("medical airlock assembly", /obj/structure/door_assembly/door_assembly_med, 4, time = 50, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("maintenance airlock assembly", /obj/structure/door_assembly/door_assembly_mai, 4, time = 50, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("external airlock assembly", /obj/structure/door_assembly/door_assembly_ext, 4, time = 50, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("freezer airlock assembly", /obj/structure/door_assembly/door_assembly_fre, 4, time = 50, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("airtight hatch assembly", /obj/structure/door_assembly/door_assembly_hatch, 4, time = 50, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("maintenance hatch assembly", /obj/structure/door_assembly/door_assembly_mhatch, 4, time = 50, one_per_turf = 1, on_floor = 1), + new /datum/stack_recipe("glass airlock assembly", /obj/structure/door_assembly/door_assembly_glass, 4, time = 50, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("high security airlock assembly", /obj/structure/door_assembly/door_assembly_highsecurity, 4, time = 50, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("multi-tile airlock assembly", /obj/structure/door_assembly/multi_tile, 4, time = 50, one_per_turf = 1, on_floor = 1), ), 4), diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 9dddd902740..affe4c12145 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -1,4 +1,4 @@ -obj/structure/door_assembly +/obj/structure/door_assembly icon = 'icons/obj/doors/door_assembly.dmi' name = "Airlock Assembly" @@ -14,119 +14,133 @@ obj/structure/door_assembly var/glass = 0 // 0 = glass can be installed. -1 = glass can't be installed. 1 = glass is already installed. Text = mineral plating is installed instead. var/created_name = null - New() - update_state() +/obj/structure/door_assembly/New() + update_state() -obj/structure/door_assembly/door_assembly_com +/obj/structure/door_assembly/door_assembly_com base_icon_state = "com" base_name = "Command Airlock" glass_type = "/glass_command" airlock_type = "/command" -obj/structure/door_assembly/door_assembly_sec +/obj/structure/door_assembly/door_assembly_sec base_icon_state = "sec" base_name = "Security Airlock" glass_type = "/glass_security" airlock_type = "/security" -obj/structure/door_assembly/door_assembly_eng +/obj/structure/door_assembly/door_assembly_eng base_icon_state = "eng" base_name = "Engineering Airlock" glass_type = "/glass_engineering" airlock_type = "/engineering" -obj/structure/door_assembly/door_assembly_min +/obj/structure/door_assembly/door_assembly_min base_icon_state = "min" base_name = "Mining Airlock" glass_type = "/glass_mining" airlock_type = "/mining" -obj/structure/door_assembly/door_assembly_atmo +/obj/structure/door_assembly/door_assembly_atmo base_icon_state = "atmo" base_name = "Atmospherics Airlock" glass_type = "/glass_atmos" airlock_type = "/atmos" -obj/structure/door_assembly/door_assembly_research +/obj/structure/door_assembly/door_assembly_research base_icon_state = "res" base_name = "Research Airlock" glass_type = "/glass_research" airlock_type = "/research" -obj/structure/door_assembly/door_assembly_science +/obj/structure/door_assembly/door_assembly_science base_icon_state = "sci" base_name = "Science Airlock" glass_type = "/glass_science" airlock_type = "/science" -obj/structure/door_assembly/door_assembly_med +/obj/structure/door_assembly/door_assembly_med base_icon_state = "med" base_name = "Medical Airlock" glass_type = "/glass_medical" airlock_type = "/medical" -obj/structure/door_assembly/door_assembly_mai +/obj/structure/door_assembly/door_assembly_mai base_icon_state = "mai" base_name = "Maintenance Airlock" airlock_type = "/maintenance" glass = -1 -obj/structure/door_assembly/door_assembly_ext +/obj/structure/door_assembly/door_assembly_ext base_icon_state = "ext" base_name = "External Airlock" airlock_type = "/external" glass = -1 -obj/structure/door_assembly/door_assembly_fre +/obj/structure/door_assembly/door_assembly_fre base_icon_state = "fre" base_name = "Freezer Airlock" airlock_type = "/freezer" glass = -1 -obj/structure/door_assembly/door_assembly_hatch +/obj/structure/door_assembly/door_assembly_hatch base_icon_state = "hatch" base_name = "Airtight Hatch" airlock_type = "/hatch" glass = -1 -obj/structure/door_assembly/door_assembly_mhatch +/obj/structure/door_assembly/door_assembly_mhatch base_icon_state = "mhatch" base_name = "Maintenance Hatch" airlock_type = "/maintenance_hatch" glass = -1 -obj/structure/door_assembly/door_assembly_highsecurity // Borrowing this until WJohnston makes sprites for the assembly +/obj/structure/door_assembly/door_assembly_glass + base_icon_state = "glass" + base_name = "Glass Airlock" + airlock_type = "/glass" + glass_type = "/glass" + var/list/items_allowed // The glass airlock does not have a "base" type to which glass can be inserted, so this list is used to ensure players have to insert reinforced glass first before constructing it + +/obj/structure/door_assembly/door_assembly_glass/New() + ..() + items_allowed = typecacheof(list(/obj/item/weapon/weldingtool, /obj/item/weapon/wrench, /obj/item/weapon/pen, /obj/item/stack/sheet/rglass)) + +/obj/structure/door_assembly/door_assembly_glass/attackby(obj/item/W as obj, mob/user as mob, params) + if(is_type_in_list(W, items_allowed) || glass == 1) + ..() + else if(istype(W, /obj/item/stack/cable_coil) + to_chat(user, "You need to insert the airlock's glass first.") + else + ..() + +/obj/structure/door_assembly/door_assembly_highsecurity // Borrowing this until WJohnston makes sprites for the assembly base_icon_state = "highsec" base_name = "High Security Airlock" airlock_type = "/highsecurity" glass = -1 -obj/structure/door_assembly/door_assembly_shuttle +/obj/structure/door_assembly/door_assembly_shuttle base_icon_state = "shuttle" base_name = "shuttle airlock" airlock_type = "/shuttle" glass = -1 -obj/structure/door_assembly/multi_tile +/obj/structure/door_assembly/multi_tile icon = 'icons/obj/doors/door_assembly2x1.dmi' dir = EAST var/width = 1 -/*Temporary until we get sprites. - glass_type = "/multi_tile/glass" - airlock_type = "/multi_tile/maint" - glass = 1*/ base_icon_state = "g" //Remember to delete this line when reverting "glass" var to 1. airlock_type = "/multi_tile/glass" glass = -1 //To prevent bugs in deconstruction process. - /obj/structure/door_assembly/door_assembly_cult base_name = "cult airlock assembly" icon = 'icons/obj/doors/Doorcult.dmi' base_icon_state ="construction" airlock_type = "/cult" -obj/structure/door_assembly/multi_tile/New() +/obj/structure/door_assembly/multi_tile/New() if(dir in list(EAST, WEST)) bound_width = width * world.icon_size bound_height = world.icon_size @@ -135,7 +149,7 @@ obj/structure/door_assembly/multi_tile/New() bound_height = width * world.icon_size update_state() -obj/structure/door_assembly/multi_tile/Move() +/obj/structure/door_assembly/multi_tile/Move() . = ..() if(dir in list(EAST, WEST)) bound_width = width * world.icon_size diff --git a/icons/obj/doors/Doorfire.dmi b/icons/obj/doors/Doorfire.dmi index 6686844372a65fbd930c36d92cdc711efef35c4b..1f3999b774e08340d7fc4bbdb39d94d9ad7fdb0c 100644 GIT binary patch literal 3783 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 literal 5696 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 pxtC61_x>AUe^bGjo*@y+s5Oy+s(k6HK&>61_!< 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 HD(wFNmK{Hs delta 5839 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 Date: Sat, 28 Jan 2017 23:18:16 +0100 Subject: [PATCH 012/101] Makes firelocks constructable --- _maps/map_files/MetaStation/z5.dmm | 130 ++--- _maps/map_files/cyberiad/cyberiad.dmm | 358 +++++++------ _maps/map_files/cyberiad/z4.dmm | 8 +- _maps/map_files/cyberiad/z5.dmm | 200 ++++---- _maps/map_files/cyberiad/z6.dmm | 7 +- code/game/area/Space Station 13 areas.dm | 1 - code/game/area/areas.dm | 47 +- code/game/machinery/alarm.dm | 28 -- code/game/machinery/doors/firedoor.dm | 474 +++++++++++------- code/game/machinery/vending.dm | 2 +- code/game/objects/structures/door_assembly.dm | 2 +- .../hostile/terror_spiders/terror_spiders.dm | 4 +- .../research/designs/autolathe_designs.dm | 8 + 13 files changed, 668 insertions(+), 601 deletions(-) diff --git a/_maps/map_files/MetaStation/z5.dmm b/_maps/map_files/MetaStation/z5.dmm index 186dfe33844..045a658d11a 100644 --- a/_maps/map_files/MetaStation/z5.dmm +++ b/_maps/map_files/MetaStation/z5.dmm @@ -10,8 +10,8 @@ "aj" = (/obj/machinery/light/small,/obj/structure/transit_tube,/turf/simulated/floor/plating/airless/asteroid,/area/mine/dangerous/unexplored) "ak" = (/obj/structure/transit_tube{icon_state = "W-SE"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/dangerous/unexplored) "al" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/simulated/mineral,/area/mine/dangerous/unexplored) -"am" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/machinery/door/firedoor{dir = 2},/turf/space,/area/research_outpost/hallway) -"an" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) +"am" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/machinery/door/firedoor,/turf/space,/area/research_outpost/hallway) +"an" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/hallway) "ao" = (/obj/structure/lattice,/obj/structure/transit_tube{icon_state = "NE-SW"},/turf/space,/area/space) "ap" = (/obj/structure/transit_tube{icon_state = "D-NW"},/obj/structure/lattice,/turf/space,/area/space) "aq" = (/turf/simulated/wall/r_wall,/area/research_outpost/spectro) @@ -21,10 +21,10 @@ "au" = (/obj/structure/transit_tube{icon_state = "NW-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/maintstore1) "av" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/simulated/mineral,/area/mine/dangerous/unexplored) "aw" = (/obj/structure/transit_tube{icon_state = "E-SW"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/dangerous/unexplored) -"ax" = (/obj/structure/transit_tube,/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/hallway) +"ax" = (/obj/structure/transit_tube,/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/hallway) "ay" = (/obj/structure/transit_tube/station,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/research_outpost/hallway) "az" = (/obj/structure/transit_tube,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) -"aA" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/transit_tube,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) +"aA" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/transit_tube,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/hallway) "aB" = (/obj/structure/transit_tube,/obj/structure/lattice,/turf/space,/area/space) "aC" = (/obj/structure/transit_tube{icon_state = "W-SE"},/obj/structure/lattice,/turf/space,/area/space) "aD" = (/obj/structure/lattice,/obj/structure/transit_tube{icon_state = "D-SW"},/turf/space,/area/space) @@ -75,14 +75,14 @@ "bw" = (/obj/structure/closet/crate/hydroponics,/obj/item/weapon/shovel/spade,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/minihoe,/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 13; pixel_y = 5},/obj/item/weedkiller/triclopyr,/obj/item/weapon/reagent_containers/glass/bottle/fertilizer/ez,/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "bx" = (/obj/machinery/light/small,/obj/structure/closet/walllocker/emerglocker/north{dir = 1; pixel_y = -32},/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "by" = (/obj/machinery/light_switch{pixel_y = -23},/turf/simulated/floor/plating,/area/research_outpost/maintstore1) -"bz" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/maintenance{name = "Auxiliary Storage"; req_access_txt = "0"; req_one_access_txt = "65;12"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/maintstore1) +"bz" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Auxiliary Storage"; req_access_txt = "0"; req_one_access_txt = "65;12"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/maintstore1) "bA" = (/turf/simulated/floor/plasteel,/area/research_outpost/maintstore1) "bB" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel,/area/research_outpost/maintstore1) "bC" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/camera{c_tag = "Research Outpost Auxiliary Storage"; dir = 8; network = list("Research Outpost")},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel,/area/research_outpost/maintstore1) "bD" = (/obj/structure/table,/turf/simulated/floor/carpet,/area/research_outpost/hallway) "bE" = (/obj/machinery/light_switch{pixel_y = -23},/turf/simulated/floor/carpet,/area/research_outpost/hallway) -"bF" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "rminingdorm1"; name = "Dorm 1"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) -"bG" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "rdorm2"; name = "Dorm 2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) +"bF" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{id_tag = "rminingdorm1"; name = "Dorm 1"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) +"bG" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{id_tag = "rdorm2"; name = "Dorm 2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) "bH" = (/obj/structure/transit_tube{icon_state = "N-S"},/obj/structure/lattice,/turf/space,/area/space) "bI" = (/turf/simulated/mineral/random,/area/mine/dangerous/unexplored) "bJ" = (/obj/structure/lattice,/obj/structure/transit_tube{icon_state = "D-SE"},/turf/space,/area/space) @@ -99,13 +99,13 @@ "bU" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel,/area/research_outpost/hallway) "bV" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitecorner"},/area/research_outpost/hallway) "bW" = (/turf/simulated/wall/r_wall,/area/research_outpost/atmos) -"bX" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) -"bY" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"bX" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/atmos) +"bY" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/atmos) "bZ" = (/obj/structure/lattice,/obj/structure/transit_tube{icon_state = "S-NE"},/turf/space,/area/space) "ca" = (/obj/machinery/radiocarbon_spectrometer,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitegreen"},/area/research_outpost/spectro) "cb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump{dir = 2; layer = 2.4; on = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitegreen"},/area/research_outpost/spectro) "cc" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel{dir = 6; icon_state = "whitegreen"},/area/research_outpost/spectro) -"cd" = (/obj/machinery/door/airlock/research{name = "Chem Storage"; req_access_txt = "65"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/misc_lab) +"cd" = (/obj/machinery/door/airlock/research{name = "Chem Storage"; req_access_txt = "65"},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/misc_lab) "ce" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/sample) "cf" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/sample) "cg" = (/obj/structure/table,/obj/machinery/light{dir = 1},/obj/machinery/reagentgrinder,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/sample) @@ -126,7 +126,7 @@ "cv" = (/obj/machinery/atmospherics/unary/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister,/obj/machinery/camera{c_tag = "Research Outpost Atmospherics"; dir = 2; network = list("Research Outpost")},/turf/simulated/floor/plating,/area/research_outpost/atmos) "cw" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/research_outpost/atmos) "cx" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/research_outpost/atmos) -"cy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "65"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/spectro) +"cy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "65"},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/spectro) "cz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/wall/r_wall,/area/research_outpost/spectro) "cA" = (/obj/machinery/power/apc{dir = 4; name = "Chem Storage APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/misc_lab) "cB" = (/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/chem_master,/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/sample) @@ -139,7 +139,7 @@ "cI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/wall,/area/research_outpost/hallway) "cJ" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/structure/curtain/open/shower,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/research_outpost/hallway) "cK" = (/obj/machinery/door_control{id = "rbath"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/research_outpost/hallway) -"cL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "rbath"; name = "Bathroom"},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/research_outpost/hallway) +"cL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock{id_tag = "rbath"; name = "Bathroom"},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/research_outpost/hallway) "cM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "cN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "cO" = (/obj/machinery/light/small{dir = 8},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 5; level = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) @@ -158,7 +158,7 @@ "db" = (/obj/machinery/light/small{dir = 4},/obj/machinery/power/apc{dir = 4; name = "Sample Preparation APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/sample) "dc" = (/turf/simulated/wall/r_wall,/area/research_outpost/anomaly) "dd" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/research_outpost/anomaly) -"de" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Anomalous Materials Loading"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/anomaly) +"de" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Anomalous Materials Loading"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/anomaly) "df" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/closet/walllocker/emerglocker/west,/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dh" = (/obj/machinery/atmospherics/unary/heat_reservoir/heater{dir = 4},/obj/structure/sign/nosmoking_1{pixel_x = -32},/turf/simulated/floor/plating,/area/research_outpost/atmos) @@ -166,7 +166,7 @@ "dj" = (/obj/machinery/atmospherics/pipe/simple/visible/purple,/obj/machinery/atmospherics/unary/tank/air{dir = 8},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dk" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel,/area/research_outpost/atmos) "dl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) -"dm" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Chem Storage"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/misc_lab) +"dm" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Chem Storage"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/misc_lab) "dn" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/misc_lab) "do" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 2; layer = 2.4; on = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/misc_lab) "dp" = (/obj/machinery/chem_heater,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) @@ -174,23 +174,23 @@ "dr" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/camera{c_tag = "Research Outpost Sample Preparation"; dir = 1; network = list("Research Outpost")},/obj/item/weapon/reagent_containers/glass/beaker/water,/obj/item/weapon/reagent_containers/glass/beaker/fuel,/obj/item/weapon/reagent_containers/glass/bottle/toxin,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric{name = "beaker 'sulphuric acid'"},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 3; pixel_x = 2; pixel_y = 2},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) "ds" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) "dt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) -"du" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Anomalous Materials Sample Preparation"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) +"du" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Anomalous Materials Sample Preparation"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) "dv" = (/obj/machinery/power/apc{dir = 1; name = "Anomalous Materials APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplecorner"},/area/research_outpost/anomaly) "dw" = (/obj/machinery/alarm{dir = 2; pixel_y = 25},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dy" = (/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dz" = (/obj/machinery/light{dir = 1},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 6; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dA" = (/obj/machinery/conveyor{dir = 1; id = "anolaser"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/research_outpost/anomaly) -"dB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor{dir = 1; layer = 2.6; name = "Firelock North"},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) -"dC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/door/firedoor{dir = 1; layer = 2.6; name = "Firelock North"},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) +"dB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) +"dC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dD" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 4},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dE" = (/obj/machinery/atmospherics/pipe/manifold4w/visible/cyan,/turf/simulated/floor/plating,/area/research_outpost/atmos) "dF" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 8; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dG" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/visible/purple,/obj/machinery/atmospherics/unary/tank/air{dir = 8},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/hallway) -"dI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Chem Storage"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/misc_lab) +"dI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Chem Storage"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/misc_lab) "dJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/sample) -"dK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Sample Preparation"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/sample) +"dK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Sample Preparation"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/sample) "dL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/research_outpost/sample) "dM" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dN" = (/obj/structure/table,/obj/item/weapon/lighter/random,/obj/item/weapon/crowbar,/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) @@ -200,7 +200,7 @@ "dR" = (/obj/machinery/conveyor{dir = 1; id = "anolaser"},/obj/structure/plasticflaps,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/research_outpost/anomaly) "dS" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"},/area/research_outpost/hallway) -"dU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"dU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dV" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dW" = (/obj/machinery/light/small,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/visible/cyan,/turf/simulated/floor/plating,/area/research_outpost/atmos) "dX" = (/obj/machinery/meter,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/visible/cyan,/turf/simulated/floor/plating,/area/research_outpost/atmos) @@ -214,7 +214,7 @@ "ef" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/alarm{dir = 2; pixel_y = 25},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "eg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "eh" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) -"ei" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) +"ei" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) "ej" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) "ek" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/sign/chemistry{desc = "A warning sign which reads 'SAMPLE PREPARATION'"; name = "\improper SAMPLE PREPARATION"; pixel_y = 32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) "el" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurple"},/area/research_outpost/anomaly) @@ -227,7 +227,7 @@ "es" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "et" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"},/area/research_outpost/hallway) "eu" = (/turf/simulated/wall/r_wall,/area/research_outpost/power) -"ev" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/glass_atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plasteel,/area/research_outpost/power) +"ev" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plasteel,/area/research_outpost/power) "ew" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 5},/turf/simulated/wall/r_wall,/area/research_outpost/power) "ex" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/turf/simulated/wall/r_wall,/area/research_outpost/power) "ey" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/turf/simulated/mineral,/area/mine/dangerous/unexplored) @@ -242,17 +242,17 @@ "eH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "eI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "eJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) -"eK" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) +"eK" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) "eL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10; initialize_directions = 10; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) "eM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/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/plasteel{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) -"eN" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) +"eN" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) "eO" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplecorner"},/area/research_outpost/anomaly) "eP" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) "eQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) "eR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) "eS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) "eT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) -"eU" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) +"eU" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) "eV" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurple"},/area/research_outpost/hallway) "eW" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"},/area/research_outpost/hallway) "eX" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/light/small{dir = 1},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plating,/area/research_outpost/power) @@ -279,7 +279,7 @@ "fs" = (/obj/machinery/camera{c_tag = "Research Outpost Anomalous Materials Lab"; dir = 8; network = list("Research Outpost")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) "ft" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = -32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "fu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"},/area/research_outpost/hallway) -"fv" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) +"fv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) "fw" = (/turf/simulated/floor/plating,/area/research_outpost/power) "fx" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/research_outpost/power) "fy" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/power) @@ -291,17 +291,17 @@ "fE" = (/obj/structure/table,/obj/item/device/camera,/obj/item/weapon/stamp/granted,/turf/simulated/floor/wood,/area/research_outpost/hallway) "fF" = (/turf/simulated/floor/wood,/area/research_outpost/hallway) "fG" = (/obj/machinery/vending/snack,/obj/machinery/light{dir = 4},/turf/simulated/floor/wood,/area/research_outpost/hallway) -"fH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) -"fI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) -"fJ" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{name = "Anomalous Materials Locker Room"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) -"fK" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) +"fH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) +"fI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) +"fJ" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{name = "Anomalous Materials Locker Room"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) +"fK" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) "fL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/camera{c_tag = "Research Outpost Hallway Engineering"; dir = 4; network = list("Research Outpost")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "fM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellowcorner"},/area/research_outpost/hallway) "fN" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/power/apc{dir = 8; name = "Outpost Power APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/research_outpost/power) "fO" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/research_outpost/power) "fP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/research_outpost/power) "fQ" = (/obj/machinery/portable_atmospherics/scrubber,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/research_outpost/power) -"fR" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/power) +"fR" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/power) "fS" = (/obj/machinery/mass_driver{dir = 4; id_tag = "Research Outpost"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/dangerous/unexplored) "fT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/firealarm{dir = 4; pixel_x = -28; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "fU" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light_switch{pixel_y = -23},/obj/machinery/power/apc{dir = 2; name = "Outpost Lobby APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/wood,/area/research_outpost/hallway) @@ -326,11 +326,11 @@ "gn" = (/obj/machinery/conveyor_switch{id = "archgunc"},/turf/simulated/floor/plating,/area/research_outpost/power) "go" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plating,/area/research_outpost/power) "gp" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/wall,/area/research_outpost/entry) -"gq" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"gq" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/entry) "gr" = (/obj/machinery/door/airlock/external{id_tag = "science_away"; name = "Research Outpost Dock Airlock"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/research_outpost/entry) "gs" = (/obj/structure/sign/science,/turf/simulated/wall,/area/research_outpost/entry) -"gt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/entry) -"gu" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/entry) +"gt" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/entry) +"gu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/entry) "gv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/turf/simulated/floor/wood,/area/research_outpost/hallway) "gw" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/turf/simulated/floor/wood,/area/research_outpost/hallway) "gx" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) @@ -348,11 +348,11 @@ "gJ" = (/obj/machinery/driver_button{id_tag = "Research Outpost"; pixel_x = 6; pixel_y = -26},/obj/machinery/conveyor{dir = 4; id = "archgunc"},/turf/simulated/floor/plating,/area/research_outpost/power) "gK" = (/obj/structure/sign/deathsposal{pixel_x = 32},/obj/machinery/disposal/deliveryChute{dir = 8; name = "disposal inlet"},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/power) "gL" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area/research_outpost/power) -"gM" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/transit_tube{icon_state = "N-SE"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) +"gM" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/transit_tube{icon_state = "N-SE"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/hallway) "gN" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/simulated/wall/r_wall,/area/research_outpost/hallway) "gO" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/hallway) "gP" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/space,/area/space) -"gQ" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"gQ" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/entry) "gR" = (/obj/machinery/computer/shuttle/science,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/research_outpost/entry) "gS" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel,/area/research_outpost/entry) "gT" = (/obj/machinery/light{dir = 4},/obj/machinery/camera{c_tag = "Shuttle Docking Foyer"; dir = 8; network = list("MINE")},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 1},/obj/machinery/computer/shuttle/mining,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production) @@ -379,34 +379,34 @@ "ho" = (/obj/structure/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/color/latex,/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/research_outpost/anomaly) "hp" = (/obj/machinery/door/window/westleft{dir = 2; name = "Monkey Pen"; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) "hq" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) -"hr" = (/obj/machinery/door/firedoor{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) -"hs" = (/obj/machinery/door/firedoor{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) -"ht" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) +"hr" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) +"hs" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) +"ht" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) "hu" = (/obj/structure/transit_tube{icon_state = "D-NE"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "hv" = (/obj/structure/transit_tube{icon_state = "E-NW"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "hw" = (/obj/structure/transit_tube/station,/obj/structure/sign/securearea{desc = "A warning sign which reads 'INTERNALS REQUIRED'."; name = "INTERNALS REQUIRED"; pixel_x = 32; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/research_outpost/hallway) "hx" = (/obj/structure/transit_tube{icon_state = "W-NE"},/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) "hy" = (/obj/structure/transit_tube{icon_state = "D-NW"},/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) "hz" = (/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) -"hA" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/harvesting) +"hA" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/harvesting) "hB" = (/obj/structure/transit_tube{icon_state = "D-NE"},/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) -"hC" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/transit_tube{icon_state = "N-SE"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"hC" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/transit_tube{icon_state = "N-SE"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/entry) "hD" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/research_outpost/entry) "hE" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel,/area/research_outpost/entry) -"hF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Research Shuttle Dock"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/entry) +"hF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Research Shuttle Dock"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/entry) "hG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor/plasteel,/area/research_outpost/entry) "hH" = (/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 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel,/area/research_outpost/entry) "hI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/research_outpost/entry) -"hJ" = (/obj/machinery/door/firedoor{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Medbay"; req_access_txt = "0"; req_one_access_txt = "65;5"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/med) +"hJ" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Medbay"; req_access_txt = "0"; req_one_access_txt = "65;5"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/med) "hK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/med) "hL" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/med) "hM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/conveyor_switch{id = "anotempload"; name = "conveyor switch"; pixel_x = 0; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "hN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "hO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) -"hP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Temporary Storage"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) +"hP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Temporary Storage"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "hQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "hR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) -"hS" = (/obj/machinery/door/firedoor{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) +"hS" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "hT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "hU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "hV" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) @@ -419,7 +419,7 @@ "ic" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellowcorner"},/area/research_outpost/hallway) "id" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteyellow"},/area/research_outpost/hallway) "ie" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteyellowcorner"},/area/research_outpost/hallway) -"if" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/camera{c_tag = "Research Outpost Hallway Starboard"; dir = 2; network = list("Research Outpost"); pixel_x = 24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) +"if" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/firedoor,/obj/machinery/camera{c_tag = "Research Outpost Hallway Starboard"; dir = 2; network = list("Research Outpost"); pixel_x = 24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "ig" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurple"},/area/research_outpost/hallway) "ih" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) "ii" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera{c_tag = "Research Outpost Exotic Particles Airlock"; dir = 2; network = list("Research Outpost")},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel,/area/research_outpost/harvesting) @@ -429,7 +429,7 @@ "im" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/research_outpost/harvesting) "in" = (/obj/machinery/artifact_scanpad,/turf/simulated/floor/bluegrid,/area/research_outpost/harvesting) "io" = (/obj/machinery/artifact_harvester,/turf/simulated/floor/bluegrid,/area/research_outpost/harvesting) -"ip" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/transit_tube{icon_state = "D-NE"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"ip" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/transit_tube{icon_state = "D-NE"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/entry) "iq" = (/obj/structure/transit_tube{icon_state = "S-NW"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/research_outpost/entry) "ir" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel,/area/research_outpost/entry) "is" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "Research Outpost Shuttle Dock"; dir = 8; network = list("Research Outpost")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/research_outpost/entry) @@ -446,7 +446,7 @@ "iD" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/research_outpost/tempstorage) "iE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5; level = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "iF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) -"iG" = (/obj/machinery/door/firedoor{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) +"iG" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "iH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "iI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1; pressure_checks = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "iJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/sign/examroom{desc = "A guidance sign which reads 'ISOLATION ROOM ONE'"; name = "\improper ISOLATION ROOM ONE"; pixel_y = -32},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/research_outpost/hallway) @@ -457,14 +457,14 @@ "iO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/research_outpost/hallway) "iP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/sign/examroom{desc = "A guidance sign which reads 'ISOLATION ROOM THREE'"; name = "\improper ISOLATION ROOM THREE"; pixel_y = -32},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/research_outpost/hallway) "iQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) -"iR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) +"iR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "iS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/machinery/firealarm{pixel_y = -24},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "iT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/biohazard{pixel_y = -32},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "iU" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 6; icon_state = "whitepurple"},/area/research_outpost/hallway) -"iV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Exotic Particles Collection"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/harvesting) +"iV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Exotic Particles Collection"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/harvesting) "iW" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/research_outpost/harvesting) "iX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/research_outpost/harvesting) -"iY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/external{name = "Access Airlock"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/harvesting) +"iY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/external{name = "Access Airlock"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/harvesting) "iZ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/research_outpost/harvesting) "ja" = (/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/harvesting) "jb" = (/obj/structure/table,/obj/item/weapon/anodevice{pixel_x = 3; pixel_y = 3},/obj/item/weapon/anodevice,/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/harvesting) @@ -484,7 +484,7 @@ "jp" = (/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/research_outpost/tempstorage) "jq" = (/obj/machinery/conveyor{dir = 9; id = "anotempload"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/research_outpost/tempstorage) "jr" = (/turf/simulated/wall/r_wall,/area/research_outpost/maint) -"js" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor/plating,/area/research_outpost/maint) +"js" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/maint) "jt" = (/turf/simulated/wall/r_wall,/area/research_outpost/iso1) "ju" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/iso1) "jv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Isolation room one"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/iso1) @@ -494,10 +494,10 @@ "jz" = (/turf/simulated/wall/r_wall,/area/research_outpost/iso3) "jA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/iso3) "jB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Isolation Room Three"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/iso3) -"jC" = (/obj/machinery/door/airlock/maintenance{name = "Maintenance Storage"; req_access_txt = "0"; req_one_access_txt = "12;65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) +"jC" = (/obj/machinery/door/airlock/maintenance{name = "Maintenance Storage"; req_access_txt = "0"; req_one_access_txt = "12;65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/maintstore2) "jD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/maintstore2) "jE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/longtermstorage) -"jF" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Long Term Storage"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/longtermstorage) +"jF" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Long Term Storage"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/longtermstorage) "jG" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel,/area/research_outpost/harvesting) "jH" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/research_outpost/harvesting) "jI" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/research_outpost/harvesting) @@ -505,13 +505,13 @@ "jK" = (/turf/simulated/wall,/area/mine/dangerous/unexplored) "jL" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'INTERNALS REQUIRED'."; name = "INTERNALS REQUIRED"; pixel_x = -32; pixel_y = 0},/turf/space,/area/space) "jM" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/simulated/wall,/area/research_outpost/entry) -"jN" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/transit_tube{icon_state = "N-SW"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"jN" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/transit_tube{icon_state = "N-SW"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/entry) "jO" = (/turf/simulated/wall,/area/research_outpost/entry) "jP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/wall,/area/research_outpost/entry) -"jQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/glass_mining{name = "Expedition Prep"; req_access_txt = "65"},/turf/simulated/floor/plating,/area/research_outpost/entry) +"jQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Expedition Prep"; req_access_txt = "65"},/turf/simulated/floor/plating,/area/research_outpost/entry) "jR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/wall,/area/research_outpost/entry) "jS" = (/turf/simulated/wall,/area/research_outpost/tempstorage) -"jT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Temporary Storage Loading"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) +"jT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Temporary Storage Loading"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "jU" = (/obj/structure/plasticflaps/mining,/obj/machinery/conveyor{dir = 2; id = "anotempload"},/turf/simulated/floor/plating,/area/research_outpost/maint) "jV" = (/obj/machinery/conveyor{dir = 5; id = "anosample"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/maint) "jW" = (/obj/machinery/conveyor{dir = 4; id = "anosample"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'MOVING PARTS'."; name = "\improper MOVING PARTS"; pixel_y = 32},/turf/simulated/floor/plating,/area/research_outpost/maint) @@ -545,11 +545,11 @@ "ky" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/research_outpost/gearstore) "kz" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/plasteel,/area/research_outpost/gearstore) "kA" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/research_outpost/gearstore) -"kB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/glass_mining{name = "Loading area"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/tempstorage) +"kB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Loading area"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/tempstorage) "kC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/camera{c_tag = "Research Outpost Loading Area"; dir = 2; network = list("Research Outpost")},/turf/simulated/floor/plasteel,/area/research_outpost/tempstorage) "kD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/power/apc{dir = 1; name = "Temporary Storage APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plasteel,/area/research_outpost/tempstorage) "kE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; level = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/research_outpost/tempstorage) -"kF" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;65"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) +"kF" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;65"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) "kG" = (/obj/machinery/conveyor{dir = 2; id = "anotempload"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) "kH" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'MOVING PARTS'."; name = "\improper MOVING PARTS"; pixel_y = 32},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) "kI" = (/obj/machinery/conveyor{dir = 1; id = "anosample"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) @@ -619,7 +619,7 @@ "lU" = (/obj/structure/closet/excavation,/obj/machinery/status_display{layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plasteel,/area/research_outpost/gearstore) "lV" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel,/area/research_outpost/gearstore) "lW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor/plasteel,/area/research_outpost/gearstore) -"lX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/airlock/glass_mining{name = "Equipment storage"; req_access_txt = "47"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor/plasteel,/area/research_outpost/gearstore) +"lX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/airlock/glass_mining{name = "Equipment storage"; req_access_txt = "47"},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/research_outpost/gearstore) "lY" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel,/area/research_outpost/gearstore) "lZ" = (/turf/simulated/floor/plasteel,/area/research_outpost/gearstore) "ma" = (/obj/machinery/conveyor_switch{id = "anotempload"},/turf/simulated/floor/plasteel/airless{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1},/area/mine/dangerous/explored) @@ -700,7 +700,7 @@ "nx" = (/obj/machinery/door/window/westleft,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/dangerous/explored) "ny" = (/obj/structure/transit_tube/station{dir = 8; icon_state = "closed"; tag = "icon-closed (EAST)"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/dangerous/explored) "nz" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/space) -"nA" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/gearstore) +"nA" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/gearstore) "nB" = (/obj/machinery/door/airlock/external,/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/turf/simulated/floor/plasteel,/area/research_outpost/gearstore) "nC" = (/obj/structure/transit_tube{tag = "icon-D-SE"; icon_state = "D-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/maintstore2) "nD" = (/obj/structure/transit_tube,/turf/simulated/floor/plating/airless/asteroid,/area/mine/dangerous/explored) @@ -1469,15 +1469,15 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaabIbIbIadbIaaaabZbMaeaeaeaeaeadaqcacbccaraZaZcdcecfcgchcicjckclcmbjcncobjcpcqcrcsctcucvcwcxbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadaaaaaaaaaaaaaaaaaabIbIbIbIbIaaaaaVaaaaaaaaaaaaadaqaqcyczaraZcAarcBcececCcDcEcFcGcHcIcJcKcLcMcNbWcOcPcQcRcScTbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadadadadadadadaaaaaaaaaaaaaaaabIbIbIbIaaaaaVaaaaaaaaaaaaadaQcUcVcUarcWcXarcCcYcZdadbdcdddcdedcdcdcdcdfdgbWdhcPdidjdkcxbXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadbIbIbIbIbIadadadadadadaaaaaaaaaaaaaabIbIbIaaaeaVaaaaaaaaaaaaadaQcUdlcUdmdndoardpdqdrdsdtdudvdwdxdydzdAdcdBdCbWdDdEdFdGbWbYbXaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadbIbIbIbIbIadadadadadadaaaaaaaaaaaaaabIbIbIaaaeaVaaaaaaaaaaaaadaQcUdlcUdmdndoardpdqdrdsdtdudvdwdxdydzdAdcdCdBbWdDdEdFdGbWbYbXaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadbIbIbIbIbIbIbIbIbIbIadadadadadaaaaaaaaaaaabIbIbIaaaeaVaaaeaeaeaeaeadaQcUdlcUaQdHdIaQbPbPdJdKdLdcdMdNdOdPdQdRdcdSdTdUdVdWdXdYbWdZadaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadbIbIbIbIbIbIbIbIbIbIbIbIbIbIadadadadadaaaaaaaabIbIbIaaaaaVaaaaaaaaaaaaaabjebdlcUecedeeefegeheiejekdcelemeneoepeqereseteueueuevewexezeyeyeAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIadadadadadbIaaaaaaaabIaaaaaVaaaaaaaaaaaaaaaneBeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeueXeYeZfaeufbadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIadadadbIbIaaaaaaaaaaaaaVaaaaaaaaaaaaaaanfccUfdfefffgfhfifjaQfkflfmfnfofpfqfrfsdcftfufvfwfwfxfyfzfBfAadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadbIbIbIbIbIbIfCbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIaaaaaaaaaaaaaVaaaaaaaaaaaaaaanfccUfdfefDfEfhfFfGaQfHfIdcfJdcdcdcdcfKdcfLfMeufNfOfPfQfRdZfSacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadbIbIbIbIbIbIfCbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIaaaaaaaaaaaaaVaaaaaaaaaaaaaaanfccUfdfefDfEfhfFfGaQfIfHdcfJdcdcdcdcfKdcfLfMeufNfOfPfQfRdZfSacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIaaaaaaaaaaaaaVaaaaaaeaaaaaaabjfTcUfUfefVfWfhfXfYaQfZgagbgcgdgegfdcggghgigjgkglgmgngofRdZadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIaaaaaaaaaaaagpgqgqgqgrgqgqgqgsgtgubjgvgwaQaQaQaQaQgxgygzgcgAgegBdcgCgDgEgFgGgHgIgJgKgLgMgNaQgObKaBaBaBaBaBaBaCgPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaadadadadadadadbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIaaaaaaaaaaaagQgRgSgUgUgUgVgWgXgYgZhahbhchdhehfhghhhihjhkhlhmhnhodchphqhrhseueuhteueueuhuhvhwhxhyhzhzhAhzhzhzhBbqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIaaaaaaaaaaaagpgqgqgqgrgqgqgqgsgugtbjgvgwaQaQaQaQaQgxgygzgcgAgegBdcgCgDgEgFgGgHgIgJgKgLgMgNaQgObKaBaBaBaBaBaBaCgPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaadadadadadadadbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIaaaaaaaaaaaagQgRgSgUgUgUgVgWgXgYgZhahbhchdhehfhghhhihjhkhlhmhnhodchphqhshreueuhteueueuhuhvhwhxhyhzhzhAhzhzhzhBbqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIadadadaaaaaaaaaahChDgUgUgUgUhEhFhGhHhIhJhKhLhdhMhNhOhPhQhRhShThUhVhWhXhYhVhZiaibicidieibifibhVigihiiijikiliminiohzbHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIadadadaaaaaaaaaaipiqgUgUirgUisitiuiviwixiyizhdiAiBiCiDiEiFiGiHiIiJiKiLiMiNiKiOiLiPiKiLiQiRiSiTiUiViWiXiYiZjajajbhzbHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIbIfCbIbIbIbIadadadadaaaaaaaagqjcgUjdjejfjgjhjijjjkjljmjnhdjojpjqjrjrjrjrjsjtjujvjtjwjxjyjwjzjAjBjzjzjCjDjEjFhzjGjHhzjIjajajJhzbHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 77843268b2c..027dca17313 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -984,9 +984,9 @@ "asV" = (/obj/structure/grille,/obj/structure/window/full/shuttle{dir = 10; icon_state = "9"},/turf/simulated/floor/plating,/area/shuttle/siberia) "asW" = (/obj/structure/grille,/obj/structure/window/full/shuttle{icon_state = "window8"},/turf/simulated/floor/plating,/area/shuttle/siberia) "asX" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/shuttle/siberia) -"asY" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass_security{name = "Firing Range"; req_access_txt = "1"},/turf/simulated/floor/plasteel,/area/security/range) +"asY" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass_security{name = "Firing Range"; req_access_txt = "1"},/turf/simulated/floor/plasteel,/area/security/range) "asZ" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/security/range) -"ata" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass_security{name = "Firing Range"; req_access_txt = "1"},/turf/simulated/floor/plasteel,/area/security/range) +"ata" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass_security{name = "Firing Range"; req_access_txt = "1"},/turf/simulated/floor/plasteel,/area/security/range) "atb" = (/obj/structure/closet/secure_closet/brigdoc,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (SOUTHWEST)"; icon_state = "whiteblue"; dir = 10},/area/security/medbay) "atc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/medbay) "atd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/medbay) @@ -1983,7 +1983,7 @@ "aMg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "station intercom (General)"; pixel_y = 25},/obj/structure/closet/lasertag/blue,/turf/simulated/floor/plasteel,/area/crew_quarters/fitness) "aMh" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal,/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness) "aMi" = (/obj/machinery/door/airlock/external{frequency = 1450; icon_state = "door_locked"; id_tag = "bar_maint_inner"; locked = 1; name = "External Access"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) -"aMj" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) +"aMj" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aMk" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aMl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aMm" = (/obj/structure/door_assembly/door_assembly_mai,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) @@ -1996,7 +1996,7 @@ "aMt" = (/obj/structure/stool/bed/chair{dir = 1},/obj/item/device/radio/intercom{dir = 4; name = "station intercom (General)"; pixel_x = 28},/turf/simulated/shuttle/floor,/area/shuttle/pod_1) "aMu" = (/obj/structure/stool/bed/chair{dir = 1},/obj/item/device/radio/intercom{dir = 4; name = "station intercom (General)"; pixel_x = 28},/turf/simulated/shuttle/floor,/area/shuttle/pod_2) "aMv" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "arrivals_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) -"aMw" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"aMw" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aMx" = (/obj/machinery/atmospherics/pipe/simple/visible/purple,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aMy" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aMz" = (/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) @@ -2060,7 +2060,7 @@ "aNF" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aNG" = (/obj/structure/grille,/obj/structure/window/basic,/obj/structure/window/basic{dir = 1},/obj/structure/window/basic{dir = 8},/obj/structure/window/basic{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aNH" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) -"aNI" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"aNI" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aNJ" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "eva_airlock"; name = "exterior access button"; pixel_x = 0; pixel_y = 25; req_access_txt = "13"},/turf/simulated/floor/plating/airless/catwalk,/area/maintenance/fpmaint) "aNK" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "eva_outer"; locked = 1; name = "EVA External Access"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plasteel/airless{icon_state = "circuit"},/area/maintenance/fpmaint) "aNL" = (/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "eva_sensor"; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "eva_pump"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) @@ -2103,8 +2103,8 @@ "aOw" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/beach/water{icon_state = "seadeep"},/area/crew_quarters/fitness) "aOx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness) "aOy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness) -"aOz" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness) -"aOA" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness) +"aOz" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness) +"aOA" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness) "aOB" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "station intercom (General)"; pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness) "aOC" = (/obj/machinery/camera{c_tag = "Holodeck"; network = list("SS13")},/obj/machinery/alarm{pixel_y = 24},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness) "aOD" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/fitness) @@ -2179,8 +2179,8 @@ "aPU" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "north bump Engineering"; pixel_x = 0; pixel_y = 24; shock_proof = 1},/turf/simulated/floor/plating,/area/maintenance/electrical) "aPV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/electrical) "aPW" = (/obj/structure/table,/obj/item/clothing/gloves/color/fyellow,/obj/item/weapon/storage/toolbox/electrical,/obj/item/device/multitool,/obj/item/device/radio/intercom{pixel_x = 25},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/electrical) -"aPX" = (/obj/effect/spawner/window/reinforced,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"aPY" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"aPX" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"aPY" = (/obj/effect/spawner/window/reinforced,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aPZ" = (/obj/machinery/door/airlock/external{name = "Escape Pod"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aQa" = (/obj/structure/sign/pods,/turf/simulated/wall,/area/hallway/secondary/entry) "aQb" = (/obj/item/weapon/wrench,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) @@ -2279,8 +2279,8 @@ "aRQ" = (/obj/structure/window/reinforced,/turf/simulated/floor/beach/water{icon_state = "seadeep"},/area/crew_quarters/fitness) "aRR" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-stage_stairs"; icon_state = "stage_stairs"},/area/crew_quarters/fitness) "aRS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness) -"aRT" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness) -"aRU" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness) +"aRT" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness) +"aRU" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness) "aRV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light/small,/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness) "aRW" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness) "aRX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) @@ -2351,7 +2351,7 @@ "aTk" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/electrical) "aTl" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/plating,/area/maintenance/electrical) "aTm" = (/obj/machinery/power/terminal,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/electrical) -"aTn" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"aTn" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aTo" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) "aTp" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/hallway/secondary/entry) "aTq" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/hallway/secondary/entry) @@ -2407,9 +2407,9 @@ "aUo" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{icon_state = "warning"},/area/hallway/secondary/entry) "aUp" = (/obj/machinery/camera{c_tag = "Arrivals North"; dir = 1},/obj/effect/landmark/start{name = "Civilian"},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/hallway/secondary/entry) "aUq" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/hallway/secondary/entry) -"aUr" = (/obj/effect/spawner/window/reinforced,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"aUs" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) -"aUt" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry) +"aUr" = (/obj/effect/spawner/window/reinforced,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"aUs" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) +"aUt" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry) "aUu" = (/obj/machinery/portable_atmospherics/hydroponics/soil,/turf/simulated/floor/grass,/area/hallway/secondary/construction{name = "\improper Garden"}) "aUv" = (/obj/machinery/light{dir = 1},/obj/structure/sink{pixel_y = 30},/turf/simulated/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) "aUw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) @@ -2757,8 +2757,8 @@ "bba" = (/obj/effect/landmark{name = "Observer-Start"},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "bbb" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitecorner"},/area/hallway/secondary/entry) "bbc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/security{name = "Security Checkpoint"; req_access = null; req_access_txt = "1"},/turf/simulated/floor/plasteel,/area/security/checkpoint2) -"bbd" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/security/checkpoint2) -"bbe" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/door/window/brigdoor{dir = 1; name = "Security Checkpoint"; req_access_txt = "1"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/security/checkpoint2) +"bbd" = (/obj/machinery/door/firedoor,/obj/machinery/door/window/brigdoor{dir = 1; name = "Security Checkpoint"; req_access_txt = "1"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/security/checkpoint2) +"bbe" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/security/checkpoint2) "bbf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plasteel{icon_state = "green"; dir = 8},/area/maintenance/fpmaint2) "bbg" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) "bbh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/landmark/start{name = "Civilian"},/turf/simulated/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) @@ -2847,7 +2847,7 @@ "bcM" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/shuttle/arrival/station) "bcN" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "bcO" = (/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/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) -"bcP" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) +"bcP" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) "bcQ" = (/obj/item/device/radio/intercom{dir = 1; name = "station intercom (General)"; pixel_y = 25},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/hallway/secondary/entry) "bcR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/hallway/secondary/entry) "bcS" = (/turf/simulated/floor/plasteel{icon_state = "bot"},/area/hallway/secondary/entry) @@ -2869,7 +2869,7 @@ "bdi" = (/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/storage/primary) "bdj" = (/obj/machinery/navbeacon{codes_txt = "delivery"; dir = 8; location = "Tool Storage"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/storage/primary) "bdk" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/turf/simulated/floor/plasteel,/area/storage/primary) -"bdl" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/obj/structure/cable{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/hallway/primary/port) +"bdl" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/obj/structure/cable{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/hallway/primary/port) "bdm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/hallway/primary/port) "bdn" = (/obj/item/device/radio/intercom{frequency = 1459; name = "station intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel,/area/gateway) "bdo" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/door_control{id = "stationawaygate"; name = "Gateway Shutters Access Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "62"},/turf/simulated/floor/plasteel,/area/gateway) @@ -2947,7 +2947,7 @@ "beI" = (/obj/machinery/requests_console{department = "Arrival Shuttle"; name = "Arrival Shuttle Requests Console"; pixel_y = -30},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "beJ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/space,/area/shuttle/arrival/station) "beK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) -"beL" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/turf/simulated/floor/plasteel{icon_state = "neutralcorner"; dir = 2},/area/hallway/secondary/entry) +"beL" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "neutralcorner"; dir = 2},/area/hallway/secondary/entry) "beM" = (/turf/simulated/floor/plasteel{icon_state = "neutral"},/area/hallway/secondary/entry) "beN" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "neutral"},/area/hallway/secondary/entry) "beO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/hallway/secondary/entry) @@ -2957,15 +2957,15 @@ "beS" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel,/area/storage/primary) "beT" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/storage/primary) "beU" = (/obj/effect/spawner/window/reinforced,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/storage/primary) -"beV" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/hallway/primary/port) -"beW" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/hallway/primary/port) -"beX" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor/plating,/area/hallway/primary/port) +"beV" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/hallway/primary/port) +"beW" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/obj/structure/cable{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/hallway/primary/port) +"beX" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor/plating,/area/hallway/primary/port) "beY" = (/obj/machinery/door/firedoor,/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"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/hallway/primary/port) -"beZ" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/hallway/primary/port) +"beZ" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/hallway/primary/port) "bfa" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"bfb" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/command{name = "Gateway Access"; req_access_txt = "62"},/turf/simulated/floor/plasteel,/area/gateway) -"bfc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "stationawaygate"; name = "Gateway Access Shutters"},/turf/simulated/floor/plasteel,/area/gateway) -"bfd" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "stationawaygate"; name = "Gateway Access Shutters"},/turf/simulated/floor/plasteel,/area/gateway) +"bfb" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Gateway Access"; req_access_txt = "62"},/turf/simulated/floor/plasteel,/area/gateway) +"bfc" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "stationawaygate"; name = "Gateway Access Shutters"},/turf/simulated/floor/plasteel,/area/gateway) +"bfd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "stationawaygate"; name = "Gateway Access Shutters"},/turf/simulated/floor/plasteel,/area/gateway) "bfe" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/gateway) "bff" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "bfg" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) @@ -3037,8 +3037,8 @@ "bgu" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/secondary/entry) "bgv" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/hallway/secondary/entry) "bgw" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 8},/area/hallway/secondary/entry) -"bgx" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/light{dir = 1},/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_y = 24; tag = "icon-direction_evac (EAST)"},/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_y = 32; tag = "icon-direction_med (EAST)"},/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) -"bgy" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/turf/simulated/floor/plasteel,/area/hallway/primary/port) +"bgx" = (/obj/machinery/door/firedoor,/obj/machinery/light{dir = 1},/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_y = 24; tag = "icon-direction_evac (EAST)"},/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_y = 32; tag = "icon-direction_med (EAST)"},/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) +"bgy" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/hallway/primary/port) "bgz" = (/turf/simulated/floor/plasteel,/area/hallway/primary/port) "bgA" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "bgB" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel,/area/hallway/primary/port) @@ -3046,7 +3046,7 @@ "bgD" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "bgE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/hallway/primary/port) "bgF" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/hallway/primary/port) -"bgG" = (/obj/machinery/light{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 8},/area/hallway/primary/port) +"bgG" = (/obj/machinery/light{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 8},/area/hallway/primary/port) "bgH" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/primary/port) "bgI" = (/obj/machinery/camera{c_tag = "Port Hallway 2"; dir = 2},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/primary/port) "bgJ" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/primary/port) @@ -3055,9 +3055,9 @@ "bgM" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/hallway/primary/port) "bgN" = (/obj/machinery/light{dir = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "bgO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/hallway/primary/port) -"bgP" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/turf/simulated/floor/plasteel,/area/hallway/primary/port) +"bgP" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/hallway/primary/central/nw) "bgQ" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/plasteel,/area/hallway/primary/central/nw) -"bgR" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/turf/simulated/floor/plasteel,/area/hallway/primary/central/nw) +"bgR" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "bgS" = (/turf/simulated/floor/plasteel,/area/hallway/primary/central/nw) "bgT" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/turf/simulated/floor/plasteel,/area/hallway/primary/central/nw) "bgU" = (/obj/machinery/camera{c_tag = "Central Hallway North-West"; dir = 2; network = list("SS13")},/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plasteel,/area/hallway/primary/central/nw) @@ -3132,7 +3132,7 @@ "bil" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/escape) "bim" = (/obj/machinery/light/spot,/turf/simulated/shuttle/floor,/area/shuttle/escape) "bin" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/escape) -"bio" = (/obj/machinery/door/firedoor{dir = 2},/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"bio" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) "bip" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/device/radio/intercom{dir = 0; name = "station intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) "biq" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) "bir" = (/obj/structure/table/woodentable,/obj/item/toy/cards/deck,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/secondary/entry) @@ -3141,7 +3141,7 @@ "biu" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 8},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/secondary/entry) "biv" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/hallway/secondary/entry) "biw" = (/turf/simulated/floor/plasteel{desc = "\"This is a plaque in honour of our comrades on the G4407 Stations. Hopefully TG4407 model can live up to your fame and fortune.\" Scratched in beneath that is a crude image of a meteor and a spaceman. The spaceman is laughing. The meteor is exploding."; dir = 4; icon_state = "plaque"; name = "Comemmorative Plaque"},/area/hallway/secondary/entry) -"bix" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) +"bix" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "biy" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CHW"; location = "Lockers"},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "biz" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "biA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/hallway/primary/port) @@ -3152,7 +3152,7 @@ "biF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "biG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "biH" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/hallway/primary/port) -"biI" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/hallway/primary/port) +"biI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/hallway/primary/port) "biJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5; level = 1},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "biK" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "biL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/hallway/primary/port) @@ -3235,7 +3235,7 @@ "bkk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/junction{tag = "icon-pipe-j1 (EAST)"; icon_state = "pipe-j1"; dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "bkl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "bkm" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2 (EAST)"; icon_state = "pipe-j2"; dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/port) -"bkn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/turf/simulated/floor/plasteel,/area/hallway/primary/port) +"bkn" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "bko" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "bkp" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Port Hallway"; dir = 1},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "bkq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/hallway/primary/port) @@ -3243,9 +3243,9 @@ "bks" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "bkt" = (/obj/item/device/radio/intercom{name = "station intercom (General)"; pixel_y = -28},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "bku" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel,/area/hallway/primary/port) -"bkv" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/hallway/primary/port) +"bkv" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/hallway/primary/central/nw) "bkw" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/hallway/primary/central/nw) -"bkx" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/hallway/primary/central/nw) +"bkx" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/crew_quarters/locker) "bky" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/hallway/primary/central/nw) "bkz" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=QM"; location = "CHW"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/hallway/primary/central/nw) "bkA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/nw) @@ -3313,8 +3313,8 @@ "blK" = (/turf/simulated/wall,/area/hallway/primary/port) "blL" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/port) "blM" = (/turf/simulated/wall,/area/crew_quarters/locker) -"blN" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/turf/simulated/floor/plasteel,/area/crew_quarters/locker) -"blO" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/crew_quarters/locker) +"blN" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/crew_quarters/locker) +"blO" = (/obj/machinery/door/firedoor,/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry) "blP" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/port) "blQ" = (/turf/simulated/wall,/area/maintenance/port) "blR" = (/turf/simulated/wall,/area/storage/emergency2) @@ -3381,7 +3381,7 @@ "bna" = (/obj/machinery/status_display{pixel_y = 30},/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor4,/area/shuttle/escape) "bnb" = (/obj/structure/grille,/obj/structure/window/full/shuttle{icon_state = "8"},/turf/simulated/floor/plating,/area/shuttle/escape) "bnc" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape) -"bnd" = (/obj/machinery/door/firedoor{dir = 2},/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"bnd" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "neutralcorner"; dir = 4},/area/hallway/secondary/entry) "bne" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) "bnf" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) "bng" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry) @@ -3392,7 +3392,7 @@ "bnl" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) "bnm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry) "bnn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) -"bno" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "neutralcorner"; dir = 4},/area/hallway/secondary/entry) +"bno" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/status_display{pixel_x = 32},/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) "bnp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/hallway/secondary/entry) "bnq" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/hallway/secondary/entry) "bnr" = (/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/hallway/secondary/entry) @@ -3475,7 +3475,7 @@ "boQ" = (/obj/machinery/light,/turf/simulated/floor/plasteel{dir = 2; icon_state = "arrival"},/area/hallway/secondary/entry) "boR" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitecorner"},/area/hallway/secondary/entry) "boS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) -"boT" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) +"boT" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/eastleft{name = "Hydroponics Desk"; req_access_txt = "35"},/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Kitchen Desk"; req_access_txt = "28"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/hydroponics) "boU" = (/obj/structure/sign/poster/legit{pixel_y = -32},/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) "boV" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) "boW" = (/obj/machinery/firealarm{dir = 2; pixel_y = -24},/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) @@ -3549,8 +3549,8 @@ "bqm" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/hallway/secondary/exit) "bqn" = (/obj/effect/spawner/window/reinforced,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/floor/plating,/area/hallway/secondary/exit) "bqo" = (/obj/structure/grille,/obj/structure/window/full/shuttle{icon_state = "15"},/turf/simulated/floor/plating,/area/shuttle/escape) -"bqp" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) -"bqq" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/status_display{pixel_x = 32},/turf/simulated/floor/plasteel,/area/hallway/secondary/entry) +"bqp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitecorner"},/area/hallway/secondary/exit) +"bqq" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit) "bqr" = (/turf/simulated/wall,/area/security/vacantoffice) "bqs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/security/vacantoffice) "bqt" = (/obj/effect/decal/cleanable/generic,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/port) @@ -3602,7 +3602,7 @@ "brn" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "bro" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "brp" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) -"brq" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/window/eastleft{name = "Hydroponics Desk"; req_access_txt = "35"},/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Kitchen Desk"; req_access_txt = "28"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/hydroponics) +"brq" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/hallway/secondary/exit) "brr" = (/turf/simulated/floor/plasteel{icon_state = "green"; dir = 8},/area/hydroponics) "brs" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel,/area/hydroponics) "brt" = (/turf/simulated/floor/plasteel{icon_state = "green"; dir = 4},/area/hydroponics) @@ -4087,7 +4087,7 @@ "bAE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard/east) "bAF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/machinery/camera{c_tag = "Starboard Primary Hallway 6"; dir = 2; network = list("SS13")},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard/east) "bAG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard/east) -"bAH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitecorner"},/area/hallway/secondary/exit) +"bAH" = (/obj/machinery/door/firedoor,/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "Mailing Room"; req_access_txt = "50"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/office) "bAI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/hallway/secondary/exit) "bAJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit) "bAK" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit) @@ -4146,7 +4146,7 @@ "bBL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard/east) "bBM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard/east) "bBN" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=HOP2"; location = "Stbd"},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard/east) -"bBO" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit) +"bBO" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel,/area/assembly/chargebay) "bBP" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit) "bBQ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plasteel,/area/hallway/secondary/exit) "bBR" = (/obj/structure/grille,/obj/structure/window/full/shuttle{icon_state = "14"},/turf/simulated/floor/plating,/area/shuttle/escape) @@ -4224,7 +4224,7 @@ "bDl" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/camera{c_tag = "Starboard Primary Hallway 5"; dir = 1; network = list("SS13")},/obj/item/device/radio/intercom{pixel_y = -28},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard/east) "bDm" = (/obj/machinery/light,/turf/simulated/floor/plasteel{dir = 2; icon_state = "purple"},/area/hallway/primary/starboard/east) "bDn" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "purple"},/area/hallway/primary/starboard/east) -"bDo" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/hallway/secondary/exit) +"bDo" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "mechbay"; name = "Mech Bay"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/chargebay) "bDp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "escape"},/area/hallway/secondary/exit) "bDq" = (/obj/machinery/light,/turf/simulated/floor/plasteel{dir = 2; icon_state = "escape"},/area/hallway/secondary/exit) "bDr" = (/obj/machinery/newscaster{pixel_y = -32},/turf/simulated/floor/plasteel{dir = 2; icon_state = "escape"},/area/hallway/secondary/exit) @@ -4234,7 +4234,7 @@ "bDv" = (/obj/machinery/door/airlock/shuttle{aiControlDisabled = 1; hackProof = 1; id_tag = "s_docking_airlock"; name = "Shuttle Hatch"},/turf/simulated/shuttle/floor4,/area/shuttle/escape) "bDw" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape) "bDx" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Escape Shuttle Infirmary"; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape) -"bDy" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plasteel,/area/hallway/secondary/exit) +"bDy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/simulated/floor/plasteel,/area/atmos/control) "bDz" = (/turf/simulated/shuttle/floor4,/area/shuttle/escape) "bDA" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops) "bDB" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Hatch"; req_access_txt = "109"},/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 11; id = "specops"; name = "ert shuttle"; roundstart_move = "specops_away"; width = 5},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 11; id = "specops_home"; name = "port bay 2"; width = 5},/turf/simulated/shuttle/plating,/area/shuttle/specops) @@ -4332,7 +4332,7 @@ "bFp" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bFq" = (/obj/structure/stool/bed/chair{dir = 4},/obj/effect/landmark/start{name = "Cargo Technician"},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bFr" = (/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{icon_state = "arrival"; dir = 4},/area/quartermaster/office) -"bFs" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "Mailing Room"; req_access_txt = "50"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/office) +"bFs" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "robotics"; name = "Robotics Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/assembly/robotics) "bFt" = (/obj/machinery/camera{c_tag = "Central Hallway West"; dir = 8; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/turf/simulated/floor/plasteel{icon_state = "bluecorner"},/area/hallway/primary/central/west) "bFu" = (/obj/machinery/door/window/eastright{dir = 1; name = "Bridge Delivery"; req_access_txt = "19"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/bridge/meeting_room) "bFv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/bridge/meeting_room) @@ -4384,16 +4384,16 @@ "bGp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/effect/landmark/start{name = "Civilian"},/turf/simulated/floor/plating,/area/maintenance/genetics) "bGq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/assembly/chargebay) "bGr" = (/turf/simulated/wall/r_wall,/area/assembly/chargebay) -"bGs" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel,/area/assembly/chargebay) -"bGt" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "mechbay"; name = "Mech Bay"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/chargebay) +"bGs" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/folder/white,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "robotics"; name = "Robotics Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/assembly/robotics) +"bGt" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "rdlab"; name = "Research and Development Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/toxins/lab) "bGu" = (/obj/machinery/computer/rdconsole/robotics,/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) "bGv" = (/obj/structure/table,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics Requests Console"; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) "bGw" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) -"bGx" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "robotics"; name = "Robotics Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/assembly/robotics) -"bGy" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/folder/white,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "robotics"; name = "Robotics Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/assembly/robotics) +"bGx" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Research and Development Desk"; req_access_txt = "47"},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "rdlab"; name = "Research and Development Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/toxins/lab) +"bGy" = (/obj/machinery/door/window/eastright{dir = 8; name = "Chemistry Desk"; req_access_txt = "33"},/obj/machinery/door/firedoor,/obj/structure/table/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "bGz" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{dir = 10; icon_state = "purple"},/area/hallway/primary/starboard/east) -"bGA" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "rdlab"; name = "Research and Development Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/toxins/lab) -"bGB" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Research and Development Desk"; req_access_txt = "47"},/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "rdlab"; name = "Research and Development Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/toxins/lab) +"bGA" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Examination Room"; req_access_txt = "5"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/exam_room) +"bGB" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Robotics Lab"; req_access_txt = "29"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) "bGC" = (/obj/machinery/autolathe,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "bGD" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 0},/obj/item/weapon/storage/belt/utility,/obj/item/clothing/gloves/color/latex,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "bGE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -4451,7 +4451,7 @@ "bHE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "bHF" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "bHG" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) -"bHH" = (/obj/machinery/door/window/eastright{dir = 8; name = "Chemistry Desk"; req_access_txt = "33"},/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/structure/table/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) +"bHH" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Delivery Office"; req_access_txt = "50"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bHI" = (/turf/simulated/floor/plasteel{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/reception) "bHJ" = (/obj/structure/stool,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/reception) "bHK" = (/obj/structure/sign/examroom,/turf/simulated/wall,/area/medical/exam_room) @@ -4555,7 +4555,7 @@ "bJE" = (/obj/item/weapon/hand_labeler,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the 'Space' from Space Cleaner and written in Chemistry. Scrawled on the back is, 'Okay, whoever filled this with polytrinic acid, it was only funny the first time. It was hard enough replacing the CMO's first cat!'"; name = "Chemistry Cleaner"},/obj/item/device/radio/intercom{frequency = 1459; name = "station intercom (General)"; pixel_x = 28},/obj/structure/table/glass,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "bJF" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/reception) "bJG" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/reception) -"bJH" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/medical{name = "Examination Room"; req_access_txt = "5"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/exam_room) +"bJH" = (/obj/machinery/conveyor{dir = 4; id = "packageExternal"},/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/quartermaster/office) "bJI" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) "bJJ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) "bJK" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/stool/bed,/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 25; pixel_y = 0; req_access_txt = "0"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) @@ -4570,7 +4570,7 @@ "bJT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) "bJU" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/assembly/chargebay) "bJV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/assembly/chargebay) -"bJW" = (/obj/machinery/door/firedoor{dir = 4; name = "hazard door east"},/obj/machinery/door/airlock/glass_research{name = "Robotics Lab"; req_access_txt = "29"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) +"bJW" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/quartermaster/storage) "bJX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) "bJY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) "bJZ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) @@ -4604,14 +4604,14 @@ "bKB" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/quartermaster/storage) "bKC" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "browncorner"},/area/quartermaster/office) "bKD" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/item/device/radio/intercom{broadcasting = 0; name = "station intercom (General)"; pixel_y = 25},/turf/simulated/floor/plasteel,/area/quartermaster/office) -"bKE" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass_mining{name = "Delivery Office"; req_access_txt = "50"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/quartermaster/office) +"bKE" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/quartermaster/storage) "bKF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bKG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = -32; req_access_txt = "0"},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bKH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bKI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bKJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "loadingarea"},/area/quartermaster/office) "bKK" = (/obj/machinery/conveyor{dir = 4; id = "packageExternal"},/obj/structure/plasticflaps{opacity = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/quartermaster/office) -"bKL" = (/obj/machinery/conveyor{dir = 4; id = "packageExternal"},/obj/machinery/door/firedoor{dir = 2},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/quartermaster/office) +"bKL" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/quartermaster/office) "bKM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/west) "bKN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel,/area/hallway/primary/central/west) "bKO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel,/area/hallway/primary/central/west) @@ -4690,19 +4690,19 @@ "bMj" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/shuttle/supply) "bMk" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/shuttle/supply) "bMl" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/shuttle/supply) -"bMm" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) +"bMm" = (/obj/effect/spawner/window/reinforced,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/hallway/secondary/entry) "bMn" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/status_display/supply_display{pixel_y = 32},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/quartermaster/storage) "bMo" = (/obj/structure/closet/emcloset,/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel,/area/quartermaster/storage) "bMp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel,/area/quartermaster/storage) "bMq" = (/obj/machinery/light{dir = 1},/obj/machinery/firealarm{pixel_y = 27},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel,/area/quartermaster/storage) "bMr" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/quartermaster/storage) "bMs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/quartermaster/storage) -"bMt" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/quartermaster/storage) +"bMt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/hallway/secondary/entry) "bMu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "brown"},/area/quartermaster/office) "bMv" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bMw" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bMx" = (/obj/machinery/status_display/supply_display,/turf/simulated/wall,/area/quartermaster/office) -"bMy" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/office) +"bMy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/hallway/secondary/entry) "bMz" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Delivery Office"; req_access_txt = "50"},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bMA" = (/obj/machinery/mineral/ore_redemption,/turf/simulated/floor/plasteel,/area/quartermaster/office) "bMB" = (/obj/machinery/light{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/sw) @@ -4779,9 +4779,9 @@ "bNU" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/research) "bNV" = (/obj/structure/grille,/obj/structure/window/full/shuttle,/turf/simulated/shuttle/plating,/area/shuttle/research) "bNW" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/shuttle/research) -"bNX" = (/obj/effect/spawner/window/reinforced,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 0},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"bNY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"bNZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"bNX" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel,/area/quartermaster/storage) +"bNY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravitygenerator) +"bNZ" = (/obj/effect/spawner/window/reinforced,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/quartermaster/storage) "bOa" = (/obj/machinery/door/poddoor{id_tag = "trash"; name = "disposal bay door"; protected = 0},/obj/structure/fans/tiny,/turf/simulated/floor/plating,/area/maintenance/disposal) "bOb" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/shuttle/supply) "bOc" = (/turf/simulated/shuttle/floor,/area/shuttle/supply) @@ -4792,7 +4792,7 @@ "bOh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel,/area/quartermaster/storage) "bOi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel,/area/quartermaster/storage) "bOj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel,/area/quartermaster/storage) -"bOk" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel,/area/quartermaster/storage) +"bOk" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/westleft{name = "Cargo Desk"; req_access_txt = "50"},/obj/structure/noticeboard{pixel_y = 27},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bOl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "brown"},/area/quartermaster/office) "bOm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bOn" = (/obj/structure/disposalpipe/segment{name = "Sorting Office"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel,/area/quartermaster/office) @@ -4811,7 +4811,7 @@ "bOA" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel,/area/crew_quarters/heads) "bOB" = (/obj/effect/spawner/window/reinforced,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/gravitygenerator) "bOC" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/gravitygenerator) -"bOD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravitygenerator) +"bOD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id_tag = "hopqueue"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "loadingarea"; tag = "loading"},/area/hallway/primary/central/sw) "bOE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/gravitygenerator) "bOF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/engine/gravitygenerator) "bOG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/space,/area/space) @@ -4872,7 +4872,7 @@ "bPJ" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Hatch"; req_access_txt = "106"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "bPK" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Hatch"; req_access_txt = "106"},/obj/docking_port/mobile{dir = 2; dwidth = 8; height = 15; id = "admin"; name = "administration shuttle"; roundstart_move = "admin_away"; width = 18},/obj/docking_port/stationary{dir = 2; dwidth = 8; height = 15; id = "admin_home"; name = "port bay 1"; width = 18},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "bPL" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/administration) -"bPM" = (/obj/effect/spawner/window/reinforced,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) +"bPM" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bPN" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/quartermaster/storage) "bPO" = (/obj/machinery/conveyor_switch/oneway{id = "QMLoad2"},/turf/simulated/floor/plasteel,/area/quartermaster/storage) "bPP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/quartermaster/storage) @@ -4882,11 +4882,11 @@ "bPT" = (/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"; tag = "icon-pipe-j2"},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bPU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/quartermaster/office) "bPV" = (/obj/effect/landmark/start{name = "Cargo Technician"},/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor/plasteel,/area/quartermaster/office) -"bPW" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/window/westleft{name = "Cargo Desk"; req_access_txt = "50"},/obj/structure/noticeboard{pixel_y = 27},/turf/simulated/floor/plasteel,/area/quartermaster/office) +"bPW" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id_tag = "robotics2"; name = "Robotics Lab Shutters"; opacity = 0},/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/turf/simulated/floor/plating,/area/assembly/robotics) "bPX" = (/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/quartermaster/office) "bPY" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/landmark/start{name = "Civilian"},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bPZ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/hallway/primary/central/sw) -"bQa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id_tag = "hopqueue"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "loadingarea"; tag = "loading"},/area/hallway/primary/central/sw) +"bQa" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "rdlab2"; name = "Research and Development Lab Shutters"; opacity = 0},/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "Research and Development Desk"; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "bQb" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/hallway/primary/central/sw) "bQc" = (/obj/structure/table/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/flasher{id = "hopflash"; pixel_y = 28},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id_tag = "hop"; name = "Privacy Shutters"; opacity = 0},/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 4; icon_state = "rightsecure"; name = "Head of Personnel's Desk"; req_access_txt = "57"},/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Head of Personnel's Desk"; req_access_txt = "0"},/turf/simulated/floor/plasteel,/area/crew_quarters/heads) "bQd" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 8},/area/crew_quarters/heads) @@ -4981,7 +4981,7 @@ "bRO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/office) "bRP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bRQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/quartermaster/office) -"bRR" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/quartermaster/office) +"bRR" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/glass_research{name = "Research and Development"; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "bRS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/sw) "bRT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/plasteel,/area/hallway/primary/central/sw) "bRU" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 4},/area/hallway/primary/central/sw) @@ -5039,15 +5039,15 @@ "bSU" = (/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; tag = ""},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 4; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitecorner"},/area/assembly/robotics) "bSV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) "bSW" = (/obj/machinery/door_control{id = "robotics2"; name = "Robotics Lab Shutters Control"; pixel_x = 24; pixel_y = -24; req_access_txt = "29"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) -"bSX" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id_tag = "robotics2"; name = "Robotics Lab Shutters"; opacity = 0},/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/turf/simulated/floor/plating,/area/assembly/robotics) +"bSX" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/external{id_tag = "supply_home"; name = "Cargo Docking Hatch"; req_access_txt = "31"},/turf/simulated/floor/plating,/area/quartermaster/storage) "bSY" = (/obj/machinery/light{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitecorner"},/area/medical/research{name = "Research Division"}) "bSZ" = (/obj/effect/landmark{name = "lightsout"},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/medical/research{name = "Research Division"}) "bTa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitecorner"},/area/medical/research{name = "Research Division"}) "bTb" = (/turf/simulated/wall,/area/toxins/lab) -"bTc" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "rdlab2"; name = "Research and Development Lab Shutters"; opacity = 0},/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "Research and Development Desk"; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) +"bTc" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/quartermaster/office) "bTd" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/toxins/lab) "bTe" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/toxins/lab) -"bTf" = (/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/glass_research{name = "Research and Development"; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) +"bTf" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/medical/research_shuttle_dock) "bTg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bTh" = (/turf/simulated/wall/r_wall,/area/medical/research_shuttle_dock) "bTi" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating/airless,/area/medical/research_shuttle_dock) @@ -5057,7 +5057,7 @@ "bTm" = (/obj/item/stack/sheet/metal,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "bTn" = (/obj/item/stack/sheet/glass,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "bTo" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Hatch"; req_access_txt = "31"},/turf/simulated/shuttle/floor,/area/shuttle/supply) -"bTp" = (/obj/machinery/door/firedoor{dir = 2},/obj/machinery/door/airlock/external{id_tag = "supply_home"; name = "Cargo Docking Hatch"; req_access_txt = "31"},/turf/simulated/floor/plating,/area/quartermaster/storage) +"bTp" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Cargo Office"; req_access_txt = "50"},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bTq" = (/turf/simulated/floor/plating,/area/quartermaster/storage) "bTr" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/quartermaster/storage) "bTs" = (/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/quartermaster/storage) @@ -5065,7 +5065,7 @@ "bTu" = (/obj/structure/table,/obj/machinery/requests_console{department = "Cargo Bay"; name = "Cargo Requests Console"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Cargo Office"; dir = 4; network = list("SS13")},/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/device/multitool,/turf/simulated/floor/plasteel,/area/quartermaster/office) "bTv" = (/obj/structure/filingcabinet/filingcabinet,/turf/simulated/floor/plasteel,/area/quartermaster/office) "bTw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/office) -"bTx" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/turf/simulated/floor/plasteel,/area/quartermaster/office) +"bTx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Gravity Generator"; req_access_txt = "0"; req_one_access_txt = "10;30"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravitygenerator) "bTy" = (/turf/simulated/floor/plasteel,/area/hallway/primary/central/sw) "bTz" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/hallway/primary/central/sw) "bTA" = (/obj/effect/spawner/window/reinforced,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id_tag = "hop"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/heads) @@ -5146,7 +5146,7 @@ "bUX" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/medical/research_shuttle_dock) "bUY" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/medical/research_shuttle_dock) "bUZ" = (/obj/structure/closet/emcloset,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/medical/research_shuttle_dock) -"bVa" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/medical/research_shuttle_dock) +"bVa" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Teleport Access"; req_access_txt = "17"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/teleporter) "bVb" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/research) "bVc" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "External Hatch"; req_access_txt = "65"},/obj/docking_port/mobile{dwidth = 3; height = 5; id = "science"; name = "research shuttle"; rebuildable = 1; width = 7},/obj/docking_port/stationary{dwidth = 3; height = 5; id = "science_home"; name = "research dock"; width = 7},/turf/simulated/shuttle/floor,/area/shuttle/research) "bVd" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/research) @@ -5164,7 +5164,7 @@ "bVp" = (/obj/structure/table,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/weapon/folder/yellow,/obj/item/device/eftpos,/obj/item/weapon/book/manual/sop_supply,/turf/simulated/floor/plasteel,/area/quartermaster/office) "bVq" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bVr" = (/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},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/quartermaster/office) -"bVs" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass_mining{name = "Cargo Office"; req_access_txt = "50"},/turf/simulated/floor/plasteel,/area/quartermaster/office) +"bVs" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_research{name = "Robotics Lab"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) "bVt" = (/obj/machinery/vending/cart,/turf/simulated/floor/plasteel,/area/quartermaster/office) "bVu" = (/obj/structure/closet/secure_closet/hop2,/turf/simulated/floor/plasteel,/area/crew_quarters/heads) "bVv" = (/turf/simulated/floor/plasteel,/area/crew_quarters/heads) @@ -5175,7 +5175,7 @@ "bVA" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/bluegrid,/area/server) "bVB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/item/device/radio/intercom{broadcasting = 0; name = "station intercom (General)"; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/server) "bVC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall/r_wall,/area/server) -"bVD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/engineering{name = "Gravity Generator"; req_access_txt = "0"; req_one_access_txt = "10;30"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravitygenerator) +"bVD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/highsecurity{name = "Messaging Server"; req_access_txt = "30"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/server) "bVE" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/wall/r_wall,/area/engine/gravitygenerator) "bVF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/space,/area/space) "bVG" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24; shock_proof = 0},/turf/simulated/floor/plasteel,/area/teleporter) @@ -5184,7 +5184,7 @@ "bVJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/bluespace_beacon,/turf/simulated/floor/plasteel,/area/teleporter) "bVK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/teleporter) "bVL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel,/area/teleporter) -"bVM" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/command{name = "Teleport Access"; req_access_txt = "17"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/teleporter) +"bVM" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id_tag = "hopqueue"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/hallway/primary/central/sw) "bVN" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 8},/area/hallway/primary/central/se) "bVO" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR: EMERGENCY ENTRANCE'."; name = "KEEP CLEAR: EMERGENCY ENTRANCE"; pixel_x = 32; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/hallway/primary/central/se) "bVP" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/backpack/medic,/obj/item/roller,/obj/item/roller,/obj/item/roller,/obj/item/weapon/storage/toolbox/emergency,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/medbay2) @@ -5210,7 +5210,7 @@ "bWj" = (/turf/simulated/wall,/area/assembly/chargebay) "bWk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/assembly/chargebay) "bWl" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/assembly/robotics) -"bWm" = (/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_research{name = "Robotics Lab"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) +"bWm" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/mining{name = "Mining Dock"; req_access_txt = "48"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) "bWn" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bWo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bWp" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) @@ -5255,7 +5255,7 @@ "bXc" = (/obj/machinery/computer/message_monitor,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/server) "bXd" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/server) "bXe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/server) -"bXf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/highsecurity{name = "Messaging Server"; req_access_txt = "30"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/server) +"bXf" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Gravity Generator"; req_access_txt = "0"; req_one_access_txt = "10;30"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/engine/gravitygenerator) "bXg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/plasteel,/area/engine/gravitygenerator) "bXh" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/gravitygenerator) "bXi" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/item/device/radio/intercom{dir = 4; name = "station intercom (General)"; pixel_x = 28},/turf/simulated/floor/plasteel,/area/engine/gravitygenerator) @@ -5343,7 +5343,7 @@ "bYM" = (/turf/simulated/wall,/area/quartermaster/qm) "bYN" = (/obj/machinery/camera{c_tag = "Cargo Bay Entrance"; dir = 4; network = list("SS13")},/obj/machinery/atm{pixel_x = -24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/sw) "bYO" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/hallway/primary/central/sw) -"bYP" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id_tag = "hopqueue"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/hallway/primary/central/sw) +"bYP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Server Room"; req_access = null; req_access_txt = "30"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/toxins/server) "bYQ" = (/obj/structure/filingcabinet/chestdrawer,/obj/item/device/radio/intercom{dir = 8; name = "station intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 10},/area/crew_quarters/heads) "bYR" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Personnel's Desk"; departmentType = 5; name = "Head of Personnel Requests Console"; pixel_y = -30},/obj/machinery/camera{c_tag = "Head of Personnel's Office"; dir = 1; network = list("SS13")},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel,/area/crew_quarters/heads) "bYS" = (/obj/structure/table,/obj/machinery/photocopier/faxmachine{department = "Head of Personnel's Office"},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plasteel,/area/crew_quarters/heads) @@ -5419,7 +5419,7 @@ "cak" = (/obj/machinery/computer/communications,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "cal" = (/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id_tag = "adminshuttleshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/shuttle/window{tag = "icon-window5_end (WEST)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_end"; dir = 8},/turf/simulated/floor/plating,/area/shuttle/administration) "cam" = (/turf/simulated/wall,/area/quartermaster/miningdock) -"can" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/mining{name = "Mining Dock"; req_access_txt = "48"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) +"can" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/turf/simulated/floor/plasteel,/area/toxins/storage) "cao" = (/obj/structure/filingcabinet,/turf/simulated/floor/plasteel,/area/quartermaster/qm) "cap" = (/obj/machinery/computer/supplycomp,/turf/simulated/floor/plasteel,/area/quartermaster/qm) "caq" = (/obj/machinery/computer/security/mining,/turf/simulated/floor/plasteel,/area/quartermaster/qm) @@ -5428,7 +5428,7 @@ "cat" = (/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = null; req_access_txt = "57"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/crew_quarters/heads) "cau" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/server) "cav" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/engine/gravitygenerator) -"caw" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/engineering{name = "Gravity Generator"; req_access_txt = "0"; req_one_access_txt = "10;30"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/engine/gravitygenerator) +"caw" = (/obj/machinery/door/firedoor,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 4; icon_state = "rightsecure"; name = "Server Exterior Door"; req_access = null; req_access_txt = "0"},/obj/machinery/door/window/brigdoor{dir = 8; name = "Server Interior Door"; req_access = null; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/toxins/server) "cax" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/hallway/primary/central/se) "cay" = (/obj/machinery/camera{c_tag = "Central Hallway South-East"; dir = 8; network = list("SS13")},/turf/simulated/floor/plasteel,/area/hallway/primary/central/se) "caz" = (/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"},/turf/simulated/wall,/area/medical/sleeper) @@ -5464,9 +5464,9 @@ "cbd" = (/turf/simulated/wall/r_wall,/area/toxins/server_coldroom) "cbe" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/toxins/server_coldroom) "cbf" = (/turf/simulated/wall/r_wall,/area/toxins/server) -"cbg" = (/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/machinery/door/airlock/command{name = "Server Room"; req_access = null; req_access_txt = "30"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/toxins/server) +"cbg" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/quartermaster/miningdock) "cbh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/toxins/storage) -"cbi" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/turf/simulated/floor/plasteel,/area/toxins/storage) +"cbi" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/sign/poster/legit{pixel_x = -32},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "cbj" = (/turf/simulated/wall/r_wall,/area/toxins/storage) "cbk" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cbl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) @@ -5640,7 +5640,7 @@ "cex" = (/obj/machinery/alarm/server{dir = 4; pixel_x = -22; pixel_y = 0},/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 250; oxygen = 0; temperature = 0},/area/toxins/server_coldroom) "cey" = (/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 250; oxygen = 0; temperature = 0},/area/toxins/server_coldroom) "cez" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 10},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 250; oxygen = 0; temperature = 0},/area/toxins/server_coldroom) -"ceA" = (/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 4; icon_state = "rightsecure"; name = "Server Exterior Door"; req_access = null; req_access_txt = "0"},/obj/machinery/door/window/brigdoor{dir = 8; name = "Server Interior Door"; req_access = null; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/toxins/server) +"ceA" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "ceB" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/toxins/server) "ceC" = (/obj/structure/stool/bed/chair/office/light,/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/toxins/server) "ceD" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/toxins/server) @@ -5748,7 +5748,7 @@ "cgB" = (/obj/structure/table,/turf/simulated/shuttle/floor,/area/shuttle/mining) "cgC" = (/obj/machinery/computer/shuttle/mining,/turf/simulated/shuttle/floor,/area/shuttle/mining) "cgD" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/mining) -"cgE" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/miningdock) +"cgE" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cgF" = (/obj/machinery/computer/shuttle/mining,/turf/simulated/floor/plasteel{dir = 9; icon_state = "brown"},/area/quartermaster/miningdock) "cgG" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "brown"},/area/quartermaster/miningdock) "cgH" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) @@ -5816,9 +5816,9 @@ "chR" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/camera{c_tag = "Research Toxins Storage Room"; dir = 4; network = list("Research","SS13"); pixel_y = -22},/turf/simulated/floor/plasteel,/area/toxins/storage) "chS" = (/mob/living/simple_animal/mouse/white,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/toxins/storage) "chT" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/obj/effect/decal/warning_stripes/yellow,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/toxins/storage) -"chU" = (/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/sign/poster/legit{pixel_x = -32},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) -"chV" = (/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"chW" = (/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) +"chU" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Research Division Access"; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/toxins/mixing) +"chV" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Toxins Mixing Room"; req_access_txt = "7"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/toxins/mixing) +"chW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access_txt = "7"},/turf/simulated/floor/plasteel,/area/toxins/mixing) "chX" = (/obj/machinery/atmospherics/pipe/simple/insulated,/obj/machinery/camera{c_tag = "Research Toxins Mixing North"; dir = 2; network = list("Research","SS13"); pixel_x = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/mixing) "chY" = (/obj/machinery/atmospherics/pipe/simple/insulated{dir = 6},/obj/machinery/light{dir = 1; in_use = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/mixing) "chZ" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{dir = 4},/turf/simulated/wall/r_wall/coated,/area/toxins/mixing) @@ -6144,11 +6144,11 @@ "coh" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/toxins/storage) "coi" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/toxins/storage) "coj" = (/obj/item/device/radio/intercom{dir = 8; name = "station intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) -"cok" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Research Division Access"; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/toxins/mixing) +"cok" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/toxins/storage) "col" = (/obj/effect/decal/warning_stripes/west,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/toxins/mixing) "com" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/toxins/mixing) "con" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/toxins/mixing) -"coo" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Toxins Mixing Room"; req_access_txt = "7"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/toxins/mixing) +"coo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/navbeacon{codes_txt = "delivery"; dir = 4; location = "Engineering"},/obj/machinery/door/firedoor,/obj/machinery/door/window/westright{name = "Engineering Monitoring Station"; req_access = null; req_access_txt = "0"; req_one_access_txt = "11;24;34"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/engine/controlroom) "cop" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurple"},/area/toxins/mixing) "coq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/mixing) "cor" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/window/eastright{name = "Toxins Mixing Room"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurple"},/area/toxins/mixing) @@ -6257,7 +6257,7 @@ "cqq" = (/obj/machinery/atmospherics/binary/valve,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/mixing) "cqr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/mixing) "cqs" = (/obj/machinery/atmospherics/unary/portables_connector{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/mixing) -"cqt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access_txt = "7"},/turf/simulated/floor/plasteel,/area/toxins/mixing) +"cqt" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "E.X.P.E.R.I-MENTOR Lab"; req_access_txt = "47"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "cqu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel,/area/toxins/mixing) "cqv" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel,/area/toxins/mixing) "cqw" = (/obj/machinery/doppler_array{dir = 4},/turf/simulated/floor/plasteel,/area/toxins/mixing) @@ -6332,7 +6332,7 @@ "crN" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_y = 30},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "crO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "crP" = (/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) -"crQ" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/toxins/storage) +"crQ" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "Engineering Desk"; req_access_txt = "0"; req_one_access_txt = "11;24"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/controlroom) "crR" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "crS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "crT" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -6441,7 +6441,7 @@ "ctS" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/turf/simulated/floor/plasteel{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "ctT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "ctU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"ctV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/navbeacon{codes_txt = "delivery"; dir = 4; location = "Engineering"},/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/window/westright{name = "Engineering Monitoring Station"; req_access = null; req_access_txt = "0"; req_one_access_txt = "11;24;34"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/engine/controlroom) +"ctV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) "ctW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "Engineering Monitoring Station"; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/engine/controlroom) "ctX" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/engine/controlroom) "ctY" = (/turf/simulated/floor/plasteel,/area/engine/controlroom) @@ -6479,7 +6479,7 @@ "cuE" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "cuF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "cuG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) -"cuH" = (/obj/machinery/door/firedoor{dir = 4; name = "hazard door east"},/obj/machinery/door/airlock/research{name = "E.X.P.E.R.I-MENTOR Lab"; req_access_txt = "47"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"cuH" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) "cuI" = (/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cuJ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cuK" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -6599,7 +6599,7 @@ "cwU" = (/obj/structure/disposalpipe/segment,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "cwV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "cwW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"cwX" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "Engineering Desk"; req_access_txt = "0"; req_one_access_txt = "11;24"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/controlroom) +"cwX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) "cwY" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/engine/controlroom) "cwZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/engine/controlroom) "cxa" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/controlroom) @@ -6796,9 +6796,9 @@ "cAJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall/r_wall,/area/maintenance/asmaint) "cAK" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "cAL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall/r_wall,/area/toxins/xenobiology) -"cAM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor{dir = 2; name = "hazard door south"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) -"cAN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor{dir = 2; name = "hazard door south"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) -"cAO" = (/obj/machinery/door/firedoor{dir = 2; name = "hazard door south"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) +"cAM" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor/plasteel,/area/engine/controlroom) +"cAN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/atmos{name = "Incinerator Access"; req_access_txt = "24"},/turf/simulated/floor/plating,/area/maintenance/incinerator) +"cAO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor/plasteel,/area/construction) "cAP" = (/turf/simulated/wall/r_wall,/area/toxins/misc_lab) "cAQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/wall/r_wall,/area/toxins/misc_lab) "cAR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/wall/r_wall,/area/toxins/misc_lab) @@ -6827,7 +6827,7 @@ "cBo" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/powermonitor{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/stationalert_all{pixel_x = 1; pixel_y = -1},/obj/item/weapon/circuitboard/atmos_alert{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/thermomachine,/obj/item/weapon/circuitboard/smes{pixel_x = 4},/turf/simulated/floor/plating,/area/storage/tech) "cBp" = (/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor/plating,/area/storage/tech) "cBq" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{icon_state = "caution"; dir = 4},/area/hallway/primary/aft) -"cBr" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor/plasteel,/area/engine/controlroom) +"cBr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Test Lab"; req_access_txt = "7"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/misc_lab) "cBs" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/wall,/area/construction) "cBt" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/construction) "cBu" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/construction) @@ -6885,7 +6885,7 @@ "cCu" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Human remains"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/incinerator) "cCv" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/hologram/holopad,/mob/living/simple_animal/mouse,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/incinerator) "cCw" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/incinerator) -"cCx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/atmos{name = "Incinerator Access"; req_access_txt = "24"},/turf/simulated/floor/plating,/area/maintenance/incinerator) +"cCx" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/floor/plasteel,/area/engine/controlroom) "cCy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/apmaint) "cCz" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Alternate Construction Area"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/apmaint) "cCA" = (/obj/item/stack/sheet/glass{amount = 10},/turf/simulated/floor/plating,/area/maintenance/consarea) @@ -6971,7 +6971,7 @@ "cEc" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor/plasteel,/area/engine/controlroom) "cEd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor/plasteel,/area/engine/controlroom) "cEe" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor/plasteel,/area/engine/controlroom) -"cEf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor/plasteel,/area/construction) +"cEf" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xeno_airlock_exterior"; locked = 1; name = "Xenobiology External Airlock"; req_access_txt = "55"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) "cEg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/construction) "cEh" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/construction) "cEi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/construction) @@ -7002,7 +7002,7 @@ "cEH" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) "cEI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) "cEJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cEK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/research{name = "Test Lab"; req_access_txt = "7"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/misc_lab) +"cEK" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Mechanic Workshop"; req_access_txt = "70"; req_one_access_txt = "0"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/mechanic_workshop) "cEL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurple"},/area/toxins/misc_lab) "cEM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10; initialize_directions = 10; level = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/misc_lab) "cEN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/misc_lab) @@ -7097,7 +7097,7 @@ "cGy" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "cGz" = (/obj/machinery/atmospherics/unary/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "escape"},/area/hallway/primary/aft) "cGA" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{tag = "icon-map (NORTH)"; icon_state = "map"; dir = 1},/turf/simulated/wall,/area/engine/controlroom) -"cGB" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/floor/plasteel,/area/engine/controlroom) +"cGB" = (/obj/machinery/door/firedoor,/obj/structure/table/reinforced,/obj/machinery/door/window/westright{name = "Mechanic's Desk"; req_access = null; req_access_txt = "70"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/cell_charger,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/mechanic_workshop) "cGC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/engine/controlroom) "cGD" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/wall,/area/engine/controlroom) "cGE" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/wall,/area/engine/break_room) @@ -7127,7 +7127,7 @@ "cHc" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plasteel{dir = 5; icon_state = "blue"},/area/medical/patients_rooms) "cHd" = (/turf/simulated/wall,/area/medical/patients_rooms) "cHe" = (/obj/effect/spawner/lootdrop/maintenance,/obj/effect/decal/cleanable/vomit,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"cHf" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xeno_airlock_exterior"; locked = 1; name = "Xenobiology External Airlock"; req_access_txt = "55"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) +"cHf" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "32"; req_one_access_txt = "0"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/engine/break_room) "cHg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/toxins/xenobiology) "cHh" = (/obj/structure/rack,/obj/item/clothing/mask/gas{pixel_x = 2; pixel_y = 2},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -2; pixel_y = -2},/obj/item/device/radio/intercom{dir = 1; name = "station intercom (General)"; pixel_y = -28},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/misc_lab) "cHi" = (/obj/structure/closet/l3closet/scientist,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/misc_lab) @@ -7149,7 +7149,7 @@ "cHy" = (/obj/machinery/hologram/holopad,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/engine/mechanic_workshop) "cHz" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/mechanic_workshop) "cHA" = (/obj/machinery/atmospherics/unary/vent_pump{on = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/mechanic_workshop) -"cHB" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass_engineering{name = "Mechanic Workshop"; req_access_txt = "70"; req_one_access_txt = "0"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/mechanic_workshop) +"cHB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -28; pixel_y = 8; req_access_txt = "55"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xeno_airlock_interior"; locked = 1; name = "Xenobiology Internal Airlock"; req_access_txt = "55"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) "cHC" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "cHD" = (/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "cHE" = (/obj/machinery/atmospherics/unary/vent_pump{on = 0},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) @@ -7219,7 +7219,7 @@ "cIQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/mechanic_workshop) "cIR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/mechanic_workshop) "cIS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Mechanic"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/mechanic_workshop) -"cIT" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/structure/table/reinforced,/obj/machinery/door/window/westright{name = "Mechanic's Desk"; req_access = null; req_access_txt = "70"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/cell_charger,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/mechanic_workshop) +"cIT" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/atmos/control) "cIU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "cIV" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "cIW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) @@ -7290,7 +7290,7 @@ "cKj" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/effect/landmark/start{name = "Civilian"},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "cKk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "cKl" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/hallway/primary/aft) -"cKm" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "32"; req_one_access_txt = "0"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/engine/break_room) +"cKm" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) "cKn" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/engine/break_room) "cKo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/engine/break_room) "cKp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/engine/break_room) @@ -7391,7 +7391,7 @@ "cMg" = (/obj/effect/landmark{name = "revenantspawn"},/mob/living/carbon/slime,/turf/simulated/floor/engine,/area/toxins/xenobiology) "cMh" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cMi" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) -"cMj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -28; pixel_y = 8; req_access_txt = "55"},/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xeno_airlock_interior"; locked = 1; name = "Xenobiology Internal Airlock"; req_access_txt = "55"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) +"cMj" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) "cMk" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/engine,/area/toxins/xenobiology) "cMl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/engine,/area/toxins/test_chamber) "cMm" = (/mob/living/carbon/human/monkey,/turf/simulated/floor/engine,/area/toxins/test_chamber) @@ -7420,7 +7420,7 @@ "cMJ" = (/obj/structure/table,/obj/item/weapon/book/manual/supermatter_engine,/turf/simulated/floor/plasteel,/area/engine/break_room) "cMK" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/obj/effect/landmark/start{name = "Life Support Specialist"},/turf/simulated/floor/plasteel,/area/engine/break_room) "cML" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel,/area/engine/break_room) -"cMM" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/atmos/control) +"cMM" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_atmos{name = "Distribution Loop"; req_access_txt = "24"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/turf/simulated/floor/plasteel,/area/atmos/distribution) "cMN" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor/plasteel,/area/atmos/control) "cMO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{level = 2},/turf/simulated/floor/plasteel,/area/atmos/control) "cMP" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 9; level = 2},/turf/simulated/floor/plasteel,/area/atmos/control) @@ -7528,7 +7528,7 @@ "cON" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor/plasteel,/area/engine/break_room) "cOO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel,/area/engine/break_room) "cOP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/wall/r_wall,/area/atmos/control) -"cOQ" = (/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/atmos/control) +"cOQ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cOR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/wall/r_wall,/area/atmos/control) "cOS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/wall/r_wall,/area/atmos) "cOT" = (/turf/simulated/wall/r_wall,/area/atmos/distribution) @@ -7622,10 +7622,10 @@ "cQD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/aft) "cQE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/hallway/primary/aft) "cQF" = (/obj/structure/sign/securearea,/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/equipmentstorage) -"cQG" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) +"cQG" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = null},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) "cQH" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/obj/effect/spawner/window/reinforced,/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engine/equipmentstorage) "cQI" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/equipmentstorage) -"cQJ" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) +"cQJ" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = null},/turf/simulated/floor/plasteel,/area/engine/engineering) "cQK" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/equipmentstorage) "cQL" = (/obj/machinery/light{dir = 8},/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/decal/warning_stripes/blue/hollow,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/atmos) "cQM" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/decal/warning_stripes/blue/hollow,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/atmos) @@ -7748,7 +7748,6 @@ "cSZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/engine/chiefs_office) "cTa" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = 30},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cTb" = (/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cTc" = (/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cTd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) "cTe" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) "cTf" = (/obj/machinery/camera{c_tag = "Engineering Equipment East"; dir = 8; network = list("SS13")},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/engineeringcart,/obj/item/device/radio/intercom{pixel_x = 28},/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) @@ -7825,7 +7824,6 @@ "cUy" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel,/area/atmos) "cUz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/atmos) "cUA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 6},/turf/simulated/floor/plasteel,/area/atmos) -"cUB" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass_atmos{name = "Distribution Loop"; req_access_txt = "24"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/turf/simulated/floor/plasteel,/area/atmos/distribution) "cUC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 9},/turf/simulated/floor/plasteel,/area/atmos/distribution) "cUD" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 6; level = 2},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/atmos/distribution) "cUE" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 9; tag = "icon-intact-y (NORTHWEST)"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/atmos/distribution) @@ -8042,7 +8040,6 @@ "cYH" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) "cYI" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/engine/chiefs_office) "cYJ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/engine/engineering) -"cYK" = (/obj/machinery/door/firedoor{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = null},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) "cYL" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area/engine/engineering) "cYM" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) "cYN" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/engine/engineering) @@ -8139,7 +8136,6 @@ "daA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/warning_stripes/south,/turf/simulated/floor/plasteel,/area/engine/engineering) "daB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/warning_stripes/southwestcorner,/turf/simulated/floor/plasteel,/area/engine/engineering) "daC" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = -32; req_access_txt = "0"},/turf/simulated/floor/plasteel,/area/engine/engineering) -"daD" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = null},/turf/simulated/floor/plasteel,/area/engine/engineering) "daE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/engineering) "daF" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes/engineering,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/engine/engineering) "daG" = (/turf/simulated/floor/plating,/area/engine/engineering) @@ -9167,86 +9163,86 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMsaLeaMtaLeaMsaLgaMuaLgaMsaGnaIIaMvaMwaIIaIIaGnaHSaHSaHSaHSaHSaHSaHSaLkaLuaGnaGnaGnaGnaGnaMxaGnaGnaHSaMyaGnaMzaLuaGnaGnaGnaaaaaaaaaaaaaaaaMAaMAaMAaMAaMAaMAaMAaMAaMAaLAaMBaMCaMDaMEaMFaMGaMHaMIaMJaMKaJcaMLaKxaMMaMNaMOaMPaMQaMRaJlaFzaFFaFHaEjaAPaMSaMTaLNaLOaLPaMUaMVaMVaMVaMVaMVaMVaMVaMVaMVaMVaMWaMXaMYaMZaNaaNbaNcaNdaKPaKQaKQaKQaKQaKQaKPaKOaKOaKOaaaaaaaHNaGYaNeaNfaJKaHaaMoaKXaMlaGYaNgaGZaNhaIHaGYaGYaGYaGYaNiaGYaGYaMoaNjaGYaMnaGYaMqaNkaNlaNmaMqaNnaNoaNpaMqaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMsaNqaNraNsaMsaNtaNuaNvaNwaNxaHSaNyaNzaNAaMyaNBaHSaGnaGnaGnaGnaGnaGnaGnaLuaGnaNCafOaNDaGnaNEaNFaNGaHSaNBaGnaNAaNHaKhaKiaNIaaaaaaaaaaaaaaaaNJaNKaNLaNMaNNaNOaNPaMAaiWaLAaNRaNSaNTaLAaNUaIlaNVaNWaNXaNYaJcaNZaKxaOaaObaOcaOdaOeaOfaOgaOhaOiaOjaOkaOlaOmaOnaLNaLOaLPaOoaMVaOpaOpaOpaMVaMVaOqaOraOraOsaMWaOtaOuaOvaOvaOwaOxaOyaOzaKQaKQaKQaKQaKQaOAaOBaOCaODaaaaaaaHNaGYaGYaOEaGYaHaaOFaGYaOGaOHaOHaOHaOHaOIaOHaOJaGYaGYaGYaGYaGYaGYaGYaGYaHaaGZaMqaOKaOLaOLaMqaOMaONaOOaMqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMsaOPaOQaORaMsaOPaOQaORaNwaKcaHSaOSaHSaHSaHSaHSaHSaGnaOTaOUaOVaOWaOXaGnaLuaGnafOaOYaNCaOZaPaaPbaGnaPcaGnaGnaGnaGnaPcaLuaNIaaaaHQaHQaHQaHQaPdaNKaPeaPfaPgaPhaPiaPjaMAaLAaPkaPlaPlaPlaPmaPnaPoaPnaPnaPnaPpaPqaPraPsaPtaPtaPtaPtaPuaPvaPwaFFaPxaEjaAPaPyaPzaLNaLOaLPaMUaOpaPAaPAaPBaOpaMVaPCaPDaPDaPEaPFaOtaPGaPHaPIaPJaMVaPKaODaKQaKQaKQaKQaKQaODaPLaPMaODaabaabaGXaGYaGYaHaaHaaHaaHPaHPaGXaGXaGXaHaaHaaHaaGXaPNaPOaGXaHaaHaaGXaHaaHaaGXaGXaPPaPQaPRaPSaPTaPUaPVaOKaPWaMqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPXaPYaLdaMsaPZaQaaLdaMsaPZaQaaLdaGnaLkaGnaGnaGnaGnaGnaHSaGnaHSaQbaQcaHSaHSaGnaLuaGnaQdaabaQdaGnaJYaPbaGnaQeaQfaGnaNAaKcaGnaLuaMAaMAaQgaQgaQgaQgaQgaQgaQgaQgaQgaPiaPiaPjaQhaQiaQjaQkaQlaQmaQnaQoaQpaQpaQpaQpaQqaQraQsaQtaQuaQpaQpaQvaQvaQwaQxaQyaQzaQAaQBaPyaQCaQDaQDaLPaMUaOpaPAaQEaQFaOpaMVaPCaPDaPDaPEaQGaOtaPGaPIaPIaPJaMVaPKaODaKQaKQaKQaKQaKQaODaQHaPMaODaaaaaaaGXaQIaGYaGYaQJaHaaQKaHOaQLaQMaHbaGXaOFaHbaGXaQNaGYaGXaQOaGYaGXaQPaQQaQRaOHaQSaOHaQTaQUaQVaQWaQXaQYaQZaMqaMraMraacaacaMraMraMraMraabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPYaPXaLdaMsaPZaQaaLdaMsaPZaQaaLdaGnaLkaGnaGnaGnaGnaGnaHSaGnaHSaQbaQcaHSaHSaGnaLuaGnaQdaabaQdaGnaJYaPbaGnaQeaQfaGnaNAaKcaGnaLuaMAaMAaQgaQgaQgaQgaQgaQgaQgaQgaQgaPiaPiaPjaQhaQiaQjaQkaQlaQmaQnaQoaQpaQpaQpaQpaQqaQraQsaQtaQuaQpaQpaQvaQvaQwaQxaQyaQzaQAaQBaPyaQCaQDaQDaLPaMUaOpaPAaQEaQFaOpaMVaPCaPDaPDaPEaQGaOtaPGaPIaPIaPJaMVaPKaODaKQaKQaKQaKQaKQaODaQHaPMaODaaaaaaaGXaQIaGYaGYaQJaHaaQKaHOaQLaQMaHbaGXaOFaHbaGXaQNaGYaGXaQOaGYaGXaQPaQQaQRaOHaQSaOHaQTaQUaQVaQWaQXaQYaQZaMqaMraMraacaacaMraMraMraMraabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRaaRbaOQaRbaRcaRcaRcaRdaRcaRcaRcaReaRfaRgaRgaRgaRgaRhaGnaHSaGnaRiaRjaRkaHSaRlaPcaLuaGnaGnaGnaGnaGnaGnaPcaGnaHSaRkaLkaHSaHSaHSaNQaRnaRoaRpaRpaRpaRpaRqaRpaRpaRraRsaRoaRtaRuaRuaRuaRuaRuaRuaRuaRvaRwaRwaRwaRwaRxaRyaRwaRzaRwaRAaRxaRwaRwaRwaRwaRBaRCaRDaREaRFaOmaRGaRHaQDaRIaMUaOpaRJaRKaRLaOpaMVaRMaRNaRNaROaMWaOtaRPaRQaRQaRRaMVaRSaRTaKQaKQaKQaKQaKQaRUaRVaRWaODaaaaaaaGXaGYaGYaGYaGYaGYaGYaQRaOHaOHaOHaOHaOHaOHaOHaKVaGYaGYaGYaGYaMnaGYaGYaMlaGYaRXaRYaRZaSaaSbaOLaOLaOLaScaMqaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPYaPYaSdaSeaSfaSgaShaSiaSjaSkaSlaSjaSmaSnaSjaSjaSoaGnaHSaGnaSpaHSaHSaSqaSraGnaNHaKiaHSaHSaHSaHSaHSaHSaPcaSsaHSaGnaNxaNxaGnaRmaMAaSuaSvaSwaSwaSwaSxaSwaSwaSwaSyaSuaSzaSAaSAaSAaSAaSAaSAaSAaPiaRwaSBaSCaSDaSEaSFaSGaSHaSIaSJaSKaSLaSCaSMaRwaSNaFFaSOaEjaSPaPyaSQaSRaSRaSSaSTaSUaSVaSWaSWaSXaSYaSZaSXaSYaSYaTaaTbaTcaMVaMVaTdaMVaTeaTfaKQaKQaKQaKQaKQaTfaKOaKOaKOaGXaGXaGXaHbaHaaHaaIHaGXaGXaMlaHaaGXaTgaHaaGXaIHaGXaMlaQIaHaaGXaIHaGXaGYaQIaMlaGYaThaMqaTiaQUaTjaTkaTlaQUaTmaMqaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPXaPXaSdaSeaSfaSgaShaSiaSjaSkaSlaSjaSmaSnaSjaSjaSoaGnaHSaGnaSpaHSaHSaSqaSraGnaNHaKiaHSaHSaHSaHSaHSaHSaPcaSsaHSaGnaNxaNxaGnaRmaMAaSuaSvaSwaSwaSwaSxaSwaSwaSwaSyaSuaSzaSAaSAaSAaSAaSAaSAaSAaPiaRwaSBaSCaSDaSEaSFaSGaSHaSIaSJaSKaSLaSCaSMaRwaSNaFFaSOaEjaSPaPyaSQaSRaSRaSSaSTaSUaSVaSWaSWaSXaSYaSZaSXaSYaSYaTaaTbaTcaMVaMVaTdaMVaTeaTfaKQaKQaKQaKQaKQaTfaKOaKOaKOaGXaGXaGXaHbaHaaHaaIHaGXaGXaMlaHaaGXaTgaHaaGXaIHaGXaMlaQIaHaaGXaIHaGXaGYaQIaMlaGYaThaMqaTiaQUaTjaTkaTlaQUaTmaMqaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaMsaSdaTnaSdaToaSfaSfaTpaSdaTnaSdaTqaTraTsaTtaGnaHSaPcaPcaGnaGnaGnaTuaTuaTuaIkaTuaTuaTuaTuaTuaHSaGnaGnaGnaGnaGnaGnaGnaRmaKdaStaaaaabaaaaabaaaaabaaaaabaaaaSuaSzaSAaTwaTxaTyaTzaTAaSAaPiaRwaTBaTBaTCaTDaTEaTFaTGaTFaTHaTIaTJaTBaTBaRwaSNaFFaTKaEjaSPaPyaPzaLNaLOaLPaMUaTLaTMaTNaTOaTPaTPaTQaTRaTPaTRaTSaTTaTUaTVaTWaTXaTYaKOaTfaKQaKQaKQaKQaKQaTfaGXaLcaGYaTZaUaaHaaGXaHaaLcaGYaGXaLcaMlaGXaUbaGYaGXaUcaGYaHaaUdaUeaGXaUfaGYaHaaIHaIHaMlaIHaUgaMqaUhaQUaUiaUjaUiaQUaUkaMqaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaUlaLdaUmaOQaSdaUnaUoaUpaUqaSdaOQaUraPYaLdaUsaUtaGnaHSaHSaHSaHSaHSaHSaTuaUuaUvaUwaUxaUyaUzaUuaTuaTvaUBaUAaUAaUAaUAaUAaUAaUCaNxaStaabaUEaUEaUEaUEaUEaUEaUEaabaSuaSzaSAaUFaUGaUHaUIaUFaSAaPiaRwaUJaUJaUJaUKaULaSCaUMaSCaULaUNaUJaUJaUJaRwaSNaFFaUOaEjaSPaPyaOnaLNaLOaLPaOoaUPaUQaUQaUQaUQaUQaUQaUQaURaUQaUSaUSaUSaUSaUSaUTaGXaKOaTfaKQaKQaKQaKQaKQaTfaGXaGXaGYaUUaUaaHaaUVaGXaGYaGYaGXaGYaMlaHaaGYaGYaGXaGYaGYaHaaMlaGZaGXaGYaGYaHaaUWaGYaMlaGYaUXaUYaUYaMqaMqaMqaMqaMqaMqaMqaMraMraMraMraMraabaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPYaTnaSdaSdaSdaSdaSdaSdaTnaPYaUZaLdaVaaVbaVcaVcaVcaVcaVcaVcaVdaTuaUuaVeaUwaVfaVeaVeaUuaTuaVgaUDaViaViaViaViaViaViaViaViaVjaaaaUEaVkaVlaVmaVnaVoaUEaaaaSuaSzaSAaVpaVqaVraVsaUFaSAaPiaRwaVtaVtaTCaVuaVvaTFaTGaTFaVvaVwaVxaTBaTBaRwaSNaFFaSOaEjaVyaKAaVzaLNaLOaLPaMUaUPaUQaVAaVBaVCaVCaUQaVDaVEaVFaUSaVGaVHaVIaUSaVJaGXaaaaVKaVLaVLaVLaVLaVLaVMaaaaGXaGYaVNaVOaHaaHaaGXaGXaHaaHaaVPaVQaHaaGXaHPaGXaGXaHaaHaaVRaVSaGXaGXaGXaQLaUWaGYaMlaGYaUXaHOaHbaOFaYPbcDaVhbcDaYPaYPaYPaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaUlaLdaUmaOQaSdaUnaUoaUpaUqaSdaOQaUraPXaLdaUsaUtaGnaHSaHSaHSaHSaHSaHSaTuaUuaUvaUwaUxaUyaUzaUuaTuaTvaUBaUAaUAaUAaUAaUAaUAaUCaNxaStaabaUEaUEaUEaUEaUEaUEaUEaabaSuaSzaSAaUFaUGaUHaUIaUFaSAaPiaRwaUJaUJaUJaUKaULaSCaUMaSCaULaUNaUJaUJaUJaRwaSNaFFaUOaEjaSPaPyaOnaLNaLOaLPaOoaUPaUQaUQaUQaUQaUQaUQaUQaURaUQaUSaUSaUSaUSaUSaUTaGXaKOaTfaKQaKQaKQaKQaKQaTfaGXaGXaGYaUUaUaaHaaUVaGXaGYaGYaGXaGYaMlaHaaGYaGYaGXaGYaGYaHaaMlaGZaGXaGYaGYaHaaUWaGYaMlaGYaUXaUYaUYaMqaMqaMqaMqaMqaMqaMqaMraMraMraMraMraabaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPXaTnaSdaSdaSdaSdaSdaSdaTnaPXaUZaLdaVaaVbaVcaVcaVcaVcaVcaVcaVdaTuaUuaVeaUwaVfaVeaVeaUuaTuaVgaUDaViaViaViaViaViaViaViaViaVjaaaaUEaVkaVlaVmaVnaVoaUEaaaaSuaSzaSAaVpaVqaVraVsaUFaSAaPiaRwaVtaVtaTCaVuaVvaTFaTGaTFaVvaVwaVxaTBaTBaRwaSNaFFaSOaEjaVyaKAaVzaLNaLOaLPaMUaUPaUQaVAaVBaVCaVCaUQaVDaVEaVFaUSaVGaVHaVIaUSaVJaGXaaaaVKaVLaVLaVLaVLaVLaVMaaaaGXaGYaVNaVOaHaaHaaGXaGXaHaaHaaVPaVQaHaaGXaHPaGXaGXaHaaHaaVRaVSaGXaGXaGXaQLaUWaGYaMlaGYaUXaHOaHbaOFaYPbcDaVhbcDaYPaYPaYPaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVVaVWaVXaVWaVWaVYaVZaVWaVWaVXaWaaWbaLdaToaWcaVcaWdaWeaWfaWgaWhaWiaTuaUuaVeaUwaWjaVeaVeaUuaTuaWkaWlaWmaWnaWoaWpaWqaWraWsaWtaVjaabaUEaWuaWvaWwaWxaWyaUEaabaSuaSzaSAaWzaWAaWBaWCaWDaSAaPiaRwaSBaSCaWEaWFaULaSCaWGaSCaULaWHaWIaSCaSMaRwaSNaFFaWJaEjaSPaMSaMTaLNaLOaLPaWKaWLaUQaWMaVEaVEaVEaWNaWOaWPaWQaUSaWRaWSaWTaWUaWVaHPaaaaaaaaaaaaaaaaaaaaaaaaaaaaGXaWWaWXaWYaWZaXaaGXaNgaGYaQIaMlaGYaGXaaaaGXaGYaGYaGYaGYaMlaXbaXcaXdaXdaXdaXdaXeaXfaXgaXhaXiaXjaXiaXkaVTaVTaVUaXmaXlaXnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVVaWaaVWaXqaXraXsaXtaXuaXvaXwaXxaXyaXzaXAaXBaSdaToaXCaVcaXDaXEaXFaXGaXFaXHaTuaXIaVeaXJaXKaXLaXKaXMaXNaXOaXPaXQaXQaXQaXQaXQaXQaXRaXSaVjaaaaUEaXTaWvaXUaWxaXVaUEaaaaSuaSzaSAaXWaXXaXYaXZaYaaSAaPiaRwaYbaYbaTCaYcaVvaTFaYdaTFaVvaYeaTJaYfaYfaRwaYgaIraYhaEjaSPaMSaYiaYiaYiaYiaYjaYkaYlaYmaYnaYoaYoaYoaYpaYoaYqaYraYsaYtaYuaYraYvaYwaHPaGXaGXaGXaGXaGXaGXaGXaGXaGXaGXaGXaGXaYxaGXaGXaGXaGXaGYaMlaWWaHNaabaHNaGYaYyaYzaYAaYBaYCaYDaYEaYEaYEaYEaYFaYGaYHaYIaYJaYKaYJaYLaYJaYJaYMaXoaYOaYPaYQaYRaYSaYSaYSaYSaYSaYSaYSaYSaYSafXajcaaaaaaaaaaaaaaaaaaaaaaYTaYUaYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXAaYWaYXaYYaXzaYZaXsaYZaXsaYZaXsaYZaXzaZaaZbaSdaToaZcaVcaZdaZeaZfaZgaZhaZiaTuaZjaVeaZkaZlaZmaZnaZoaTuaZpaZqaXQaXQaXQaXQaXQaXQaXRaZraVjaabaUEaZsaZtaZuaZvaZwaUEaabaSuaSzaSAaZxaZyaZzaZAaZBaSAaPiaRwaUJaUJaUJaZCaULaSCaUMaSCaULaZDaUJaUJaUJaRwaZEaZFaZGaEjaVyaZHaZIaZIaZIaZJaZKaZLaZMaZNaZOaZMaZPaZQaZRaZMaZSaZTaZUaZVaZWaUSaZXaZYaZZbaabaaaZYbabbacbacbacbacbacbadbaebacbafbagbahbaibajbakbalbambanbaobanbapbaqaGYaGXbarbasbatbaubavbawbaxbaybazbaAbazbaBbaCbaDbaEbaFbaGbaHbaIbaJbaKbaLaYPbaMbaNbaObaPbaQbaRbaSbaTbaUbaVaaaaaaaaaaaaaaaaaaaaaaYTbaWbaXbaYaYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaZaXsaXsaVXaXzaYZaXsaYZbbaaYZaXsaYZaXzaZaaZbaSdaTobbbaVcaVcbbcbbdbbebbdaVcaTuaTuaTuaTubbfbbgbbhbbiaTubbjbbkbblaXQaXQbbmaXQbbnbbobbpaVjaaaaUEaUEbbqbbrbbqaUEaUEaaaaSuaSzaSAbbsbbtbbuaZAbbvaSAaPiaRwaSBaSCbbwaWFaULaSCaUMaSCaULaWHbbxaRwaRwaRwbbybbzbbAbbBbbCbbDatGatGbbEbbFbbGbbHaUQbbIaVEaUQbbJaUQbbKaUQbbLbbMbbNbbObbPbbQbbRbbSbbTbbUbbVbbWbbXbbVbbVbbYbbVbbSbbZbbSaXjbcabbSbcbbccbcdbcebcfbcgbchbcibcjbckbclaXibcmbcnbcobcpbcqbcrbcsbctbaybcubcvbazbcwbcxbcybczbaFbcAbcBbcCbcDbcEbcFaYPbcGbcHbcHbcIbaTbaTbaTbaTbaUbaVaaaaaaaaaaaaaaaaaaaYTbaWbcJbcKbcLbaYaYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaZaXsaXsaVXaXzaYZaXsaYZbbaaYZaXsaYZaXzaZaaZbaSdaTobbbaVcaVcbbcbbebbdbbeaVcaTuaTuaTuaTubbfbbgbbhbbiaTubbjbbkbblaXQaXQbbmaXQbbnbbobbpaVjaaaaUEaUEbbqbbrbbqaUEaUEaaaaSuaSzaSAbbsbbtbbuaZAbbvaSAaPiaRwaSBaSCbbwaWFaULaSCaUMaSCaULaWHbbxaRwaRwaRwbbybbzbbAbbBbbCbbDatGatGbbEbbFbbGbbHaUQbbIaVEaUQbbJaUQbbKaUQbbLbbMbbNbbObbPbbQbbRbbSbbTbbUbbVbbWbbXbbVbbVbbYbbVbbSbbZbbSaXjbcabbSbcbbccbcdbcebcfbcgbchbcibcjbckbclaXibcmbcnbcobcpbcqbcrbcsbctbaybcubcvbazbcwbcxbcybczbaFbcAbcBbcCbcDbcEbcFaYPbcGbcHbcHbcIbaTbaTbaTbaTbaUbaVaaaaaaaaaaaaaaaaaaaYTbaWbcJbcKbcLbaYaYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXAbcMbcNaYYaXzaYZaXsaYZaXsaYZaXsaYZaXzaZaaZbaSdaTobcObcPbcQbcRbcSbcSaSfbcTbcUbcVbcWbcXbcYbcZaVebdaaTubdbbdcbddbdebdfbdgbdhbdibdjbdkaVjaaaaabaaabdlbdmbdlaaaaabaaaaSuaSzaSAbdnbdobdpbdqbdraSAaPiaRwbdsbdtaTCbdubdvaTFbdwaTFbdxbdybdzaRwbdAbdBbdCbdDbdEbdFbdGbdHaaaaaabbEbdIbdJbdKaUQbdLbdMaVEaVEbdNaVEaVEaVEbdOaUSbdPaUSbdQbdRaUSbdSaUSbdTbdUbdVbdWbdXbdYbdTbdZbeabebbecbebbebbebbebbedbeebebbefbegbehbeibebbejaGYbaubekbcpbelbembenbeobepbeqberbesbazbetbeubevbewbexbcAbcBbcCbcDbaKbeyaYPbezbcHbcHbcIbaTbaTbaTbaTbaUbaVaaaaaaaaaaaaaaaaaaaYUbeAbeBbeCbeBbeDaYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeEbeFaVWaXqaXzaXsbeGbeHaXsaXsbeIbeGaXzaXAbeJaSdaTobeKbeLbeMbeNbeMbeMbeMbeMbeMbeOaSfaTubePbeQbePaTuaTubeRbeSbeRaViaViaViaVibeRbeTbeUaVjbeVbeWbeWbeXbeYbeXbeWbeWbeZaSubfaaSAbfbaSAbfcbfdbfeaSAbffaRwaRwaRwaRwbfgbfhbfibfjbfibfhbfgaRwaRwbfkbdDbdDbdDbdDbflbfmbfnbfobfpbbEbfqbdJbfraUQaUQaUQaUQaUQaUQaUQaUSaUSbdObfsbftbfubfvbfwbfxbfybfzbdTbfAbfBbfCbfDbfEbdTbfFbfGbfHbfIbfHbfJbfKbfLbfMbfNbfObfPbfQbfRbfSbebbfTbfUbfVbfWbfXbelbfYbfZbeobgabazbgbbgcbgdbgebgfbczbczbazbazbcBbcCbcDbcEbggaYPbghbgibgjbgkbglbgmbaTbaTbgnbaVaaaaaaaaaaaaaaaaYTbaWbgobeCbeCbeCbgpbaYaYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeEaVWaVXaVWaVWaVYaVZaVWaVWaVXbeFbgqaLdbgrbeKaPYbgsbgsbgtbgsbguaMsbgvbgwaSfbgxbgybgzbgzbgAbgBbgzbgCbgzbgzbgzbgDbgzbgzbgEbgFbgGbgHbgIbgJbgHbgKbgHbgHbgHbgHbgLbgMbgNbgzbgzbgObgPbgQbgRbgSbgTbgUbgVbgWbgXbgXbgXbgXbgXbgXbgXbgYbgZbhabhbbhcbhdbhebhfbhgbhhbdDbdDbhibhjbhkbhjbhkbhlbhmbhnbhobhpbhqaUSbhrbhsbhtbhubhvbhvbhwbhxbhybhzbdTbhAbhBbhCbhCbhDbdTbhEbhFbhGbhHbhIbhIbhJbhKbhLbhMbhNbhObhPbhQbhRbebbejaTgbaubhSbhTbhTbhUbhVbhTbhWbazbhXbhYbazbhZbiabczbibbazbicbidbiebcDaYPaYPaYPbifbigbihbiibigbigbigbigaYSafXajcaaaaaaaaaaaabijbikbilbeCbeCbimbinbeCbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPYbioaSdaSdaSdaSdaSdaSdbioaPYaUZaLdbipbiqaPYbirbisbitbitbiuaMsbivbgwbiwbixbgybiybizbiAbiBbiBbiCbiDbiDbiDbiEbiFbiFbiGbiHbiIbiBbiBbiJbiFbiKbiLbiMbiMbiNbiObiPbiQbiQbiQbiRbgPbgQbgRbgSbgSbgSbgSbiSbgSbgSbgSbgSbgSbgSbiTbiUbiVbiWbiXbiYbiZbjabjbbjcbiVbiVbiVbjdbjebjebjebjfbhqbhqbhqbjgbjhbhqaUSbjibjjbhvbhvbjkbhvbjlbjmbhybjnbdTbjobjpbjqbjrbjsbdTbjtbjubjvbjwbjxbjybebbebbjzbjAbebbebbjBbjCbjBbebbejaGYbaubjDbcpbcpbcpbjEbcpbjFbazbazbazbazbazbazbazbjGbazbcDbcDbcCbcDbjHbjIaYPbjJbjNbjLblwbjKbjObjPbjQbjRaaaaaaaaaaaaaYTbjSbjTbjSbjSbjSbjUbjSbjVbjSbjTbjSaYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaUlaLdaPYaOQaSdbjWbjXbjYbjZaSdaOQaPYaPYaLdbkabeKaPYbkbbkcbitbitbiuaMsbkdbgwaSfbixbgybgzbkebkfbkgbkgbkhbkibkjbkgbkkbkgbklbkgbkmbknbkgbkgbkgbkgbkgbkobkpbkgbkqbkrbksbktbgzbgzbkubkvbkwbkxbkybkzbkybkAbkBbkAbkAbkAbkAbkAbkAbkCbkDbkEbkEbkEbkEbkFbkEbkGbkHbkEbkEbkIbkJbkKbkKbkKbkKbkKbkKbkKbkLbhqbhqaUSbkMbkNbkObkPbkPbkQbkRbjmbhybkSbdTbdTbdTbdTbdTbkTbdTbkUbkVbkWbkXbfHbkYbebbkZblablbblcbldbleblfblgbebbejaQLbaublhblibcpbljblkbcpbllbllbaublmblnbloaYPblpblqblrbcDbcDblsbltaYPbluaYPblvbjKbjLblxblybjKbjKblzbjRaaaaaaaaaaaabijbmXbnabmYbmYblDbeCblCblDblAblBblCbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaMsaPYbioaSdaToaSfaSfaTpaSdbioaSdblEblFblGblHaPYblIblIbgtblIbguaMsblJbgwaSfaMsblKblKblLblMblMblMblMblMblMblNblOblMblMblMblMblMblMblPblQblRblRblSblRblTblUblVblTblTblWblXblYblKblZblZbmabmabmabmbbmbbmbbmbbmbbmbbmbbmbbmcbmdbmdbmebmdbmfbmfbmfbmfbmgbmhbmfbmcbmibmibmibmibmibmibmibmibmjbmjbmjaUSbmkbmlbmmbmmbmmbmmbmnbmobmpbmqbmrbmsbmtbmubmvbmwbdTbdTbmxbmybmzbmybmybebbmAbmBbmCbmDbmDbmDbmEbmFbebbmGbmHbaubmIbcpbljbljblkbljbcpbmJbaubmKbmLbmMaYPbcDbmNbmObmPbmPbmQbmRbmSbmTbmUbmVbmWboObzpbjMbjKbjKblzbjRbjRbjRbjRbjRbijbBTbDzbDzbDzbBVbeCblCbnbblAbeCbncbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabndbneaSfbnfbngbnhbnibnjbnkbnibnlbnmbnibnibnnbnobnpbnqbnrbnrbnrbnsbnrbntbnuaMsbnvbnwbnxblMbnybnzbnAbnBbnCbnDbnEbnFbnGbnHbnIbnJblMbnKbnLblRbnMbnNbnOblTbnPbnQbnRblTbnSbnTbnUbnSbnSbnSbnVbgSbnWbmbaaaaaaaaaaaaaaaaaaaaabmcbnXbnYbnZboabobbocbodboebofbogbohbmcaaaaaaaaaaaaaaaaaaaaabmiboibhqbojaUSbokbmlbmqbmqbmqbmqbmqbolbombmqbmqbmqbonbooboobopboqborbosbotboubovbowbebboxboybozboAboAboBboCboDbebbejaGYbauboEboFbcpbljblkbcpboGboGbaubauboHbauaYPboIblqbltboJboJboKbltaYPaYPaYPboLbjKbEFbDubjMbjKbjKbmZbAMbrKbrMbrMbrKbDvbDzbDzbGJbGJbnbbeCblCbnbblAbeCblCaYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabndboPboQboPboPboPboPboPboPboQboPboPboRaSfboSboTboUaSfboVaSfboWboXboYboZbpaaMsbnwbnwbpbblMbpcbnDbnDbnDbnDbnDbnEbpdbnDbnDbnDbpeblMbnKbpfblRbpgbphbpiblTbpjbpkbplblTbpmbpnbpobppbpqbnTbnVbgSbnWbmbaaaaaaaaaaaabmcbmcbmcbmcbprbpsbptbpubpvbpwbpxbpybpzbpAbpBbmcbmcbmcbmcaaaaaaaaaaaabmiboibhqbpCbpDbpEbpFbpGbpHbpEbpIbpJbpKbpLbpMbpNbmqbpObpPboobpQbpRboobpSbpTbpUbpVboobpWbpXbpYbozboAboAboBbpZbqabebbejaTgbaubmIbcpbljbljblkbljbcpbcpbqbbqcbcpbqdaYPbqebqfbqgboJboJbqhbqgbqiaYPbqjbqkbjKbDybDybEHbEIbDybDybjRbqnbjRbjRbjRbEJbjSbjSbjSbjSbqobeCblCbqoblAbeCblCbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaLdaLdaPYaPYaPYaPYaPYaPYaPYaPYaPYaLdaMsbqpbqqbqrbqrbqrbqrbqrbqrbqsbqrbqrbqraMsbnwbnKbqtblMbqubnDbnDbqvbqwbqxbqybqvbnDbnDbnDbqzblMbnKbnLblRbqAbqBbqCblTbqDbqEbqFblTbqGbqHbqIbqJbqKbnTbqLbqMbnWbmbbmbbqNbmcbmcbmcbqObqPbqQbqRbqSbqSbqTbqUbqSbqVbqSbqWbqXbqYbqZbrabrbbmcbmcbmcbqNbmibmiboibhqbhqaUSbrcbrdbpMbrebmqbrfbrgbmqbrhbribpNbmqbonbooboobrjbrkbrlbrmbrnbrobrpboobrqbpXbrrbozboAboAbrsbrtbrubebbejaGYbaubrvbrwbrxbljblkbrybcpbcpbrzbcpbrAbrBaYPbrCbrDbrEboJboJbrFbrEbrGaYPbrHbqkbjKbjObGIbjMbjKbjKbrIbrJbrKbrLbrMbrKbrNbeCbeCbeCbeCbeCbeCbeCbeCbeCbeCblCbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrObrPbrPbrQbrPbrPbrPbrRbrPbrPbrSaabaPYaUnaShbrTbqrbrUbrVbrWbrXbrYbrZbsabsbbqrbscbsdbsebsfblMbsgbnDbnDbqvbqxbshbsibqvbnDbnDbsjbskblMbnKbnLblRblRbslblRblTbsmbsnbsoblTbspbqJbsqbqJbsrbnTbnVbssbnWbgXbgXbstbsubsvbmcbswbptbsxbqSbqSbsybszbsAbsBbsAbsCbsDbsEbsFbsGbsHbsIbmcbsJbsubsKbsLbsMboibhqbhqbsNbmqbsObmqbmqbmqbsPbsQbmqbrhbsRbpNbmqbpObooboobsSbsTbsUbsVbsWbsXbrpbsYbebbsZbtabtbboAboAboBbrtbtcbebbtdbtebaubtfbaubaubtgblkbthbtibcpbtjbtkbtlbtmbmUbtnbtobtpbtqbtqbtrbtsbttbmUbtubtvbjKbtwbjKbjMdsfbjKbtxbjRbjRbjRbjRbqnbijbtybeCblCblDblAbeCblCblDblAbeCbtzbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrObtAbtBbtCbtDbtDbtEbtDbtDbtDbtEbrQaPXaPYaSdaToboSbqrbrUbtFbtGbrUbtHbtIbtJbtKbqrbtLbtMbtNblQblMbtObtPbtQbtRbtSbtTbtUbtVbtVbtVbtWbtXblMbnKbsdbtYbtZbuabubblTblTblTblTblTbucbudbuebufbugbnTbnVbssbgSbgSbgSbuhbuibujbukbulbumbqSbunbuobupbuqburbusbutbuubuvbuwbuxbulbuybuzbuAbuBbuCbuDbuEbuEbuFbhqbuGaUSbmqbuHbuIbpNbmqbuJbuKbmqbuLbuMbpNbmqbonboobooboobopboobuNboobsXbrpbuObebbuPbrrboBboAboAboBbrtbuQbebbuRbuSbuTbuUbuVbuWbuXbuYbuZbuZbuZbuZbuZbuZbvabvbbvcboJboJboJboJboJboJbvdbvebvfbqkbjKbjKbjKbjMbjKbjKbvgbqnbvhbvhbvhbjRblDblAbeCblCbnbblAbeCblCbnbblAbeCblCblDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeEbeFaVWaXqaXzaXsbeGbeHaXsaXsbeIbeGaXzaXAbeJaSdaTobeKbeLbeMbeNbeMbeMbeMbeMbeMbeOaSfaTubePbeQbePaTuaTubeRbeSbeRaViaViaViaVibeRbeTbeUaVjbeWbeVbeVbeXbeYbeXbeVbeVbeZaSubfaaSAbfbaSAbfdbfcbfeaSAbffaRwaRwaRwaRwbfgbfhbfibfjbfibfhbfgaRwaRwbfkbdDbdDbdDbdDbflbfmbfnbfobfpbbEbfqbdJbfraUQaUQaUQaUQaUQaUQaUQaUSaUSbdObfsbftbfubfvbfwbfxbfybfzbdTbfAbfBbfCbfDbfEbdTbfFbfGbfHbfIbfHbfJbfKbfLbfMbfNbfObfPbfQbfRbfSbebbfTbfUbfVbfWbfXbelbfYbfZbeobgabazbgbbgcbgdbgebgfbczbczbazbazbcBbcCbcDbcEbggaYPbghbgibgjbgkbglbgmbaTbaTbgnbaVaaaaaaaaaaaaaaaaYTbaWbgobeCbeCbeCbgpbaYaYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeEaVWaVXaVWaVWaVYaVZaVWaVWaVXbeFbgqaLdbgrbeKaPXbgsbgsbgtbgsbguaMsbgvbgwaSfbgxbgybgzbgzbgAbgBbgzbgCbgzbgzbgzbgDbgzbgzbgEbgFbgGbgHbgIbgJbgHbgKbgHbgHbgHbgHbgLbgMbgNbgzbgzbgObgybgQbgPbgSbgTbgUbgVbgWbgXbgXbgXbgXbgXbgXbgXbgYbgZbhabhbbhcbhdbhebhfbhgbhhbdDbdDbhibhjbhkbhjbhkbhlbhmbhnbhobhpbhqaUSbhrbhsbhtbhubhvbhvbhwbhxbhybhzbdTbhAbhBbhCbhCbhDbdTbhEbhFbhGbhHbhIbhIbhJbhKbhLbhMbhNbhObhPbhQbhRbebbejaTgbaubhSbhTbhTbhUbhVbhTbhWbazbhXbhYbazbhZbiabczbibbazbicbidbiebcDaYPaYPaYPbifbigbihbiibigbigbigbigaYSafXajcaaaaaaaaaaaabijbikbilbeCbeCbimbinbeCbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPXbgRaSdaSdaSdaSdaSdaSdbgRaPXaUZaLdbipbiqaPXbirbisbitbitbiuaMsbivbgwbiwbiobgybiybizbiAbiBbiBbiCbiDbiDbiDbiEbiFbiFbiGbiHbixbiBbiBbiJbiFbiKbiLbiMbiMbiNbiObiPbiQbiQbiQbiRbgybgQbgPbgSbgSbgSbgSbiSbgSbgSbgSbgSbgSbgSbiTbiUbiVbiWbiXbiYbiZbjabjbbjcbiVbiVbiVbjdbjebjebjebjfbhqbhqbhqbjgbjhbhqaUSbjibjjbhvbhvbjkbhvbjlbjmbhybjnbdTbjobjpbjqbjrbjsbdTbjtbjubjvbjwbjxbjybebbebbjzbjAbebbebbjBbjCbjBbebbejaGYbaubjDbcpbcpbcpbjEbcpbjFbazbazbazbazbazbazbazbjGbazbcDbcDbcCbcDbjHbjIaYPbjJbjNbjLblwbjKbjObjPbjQbjRaaaaaaaaaaaaaYTbjSbjTbjSbjSbjSbjUbjSbjVbjSbjTbjSaYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaUlaLdaPXaOQaSdbjWbjXbjYbjZaSdaOQaPXaPXaLdbkabeKaPXbkbbkcbitbitbiuaMsbkdbgwaSfbiobgybgzbkebkfbkgbkgbkhbkibkjbkgbkkbkgbklbkgbkmbiIbkgbkgbkgbkgbkgbkobkpbkgbkqbkrbksbktbgzbgzbkubknbkwbkvbkybkzbkybkAbkBbkAbkAbkAbkAbkAbkAbkCbkDbkEbkEbkEbkEbkFbkEbkGbkHbkEbkEbkIbkJbkKbkKbkKbkKbkKbkKbkKbkLbhqbhqaUSbkMbkNbkObkPbkPbkQbkRbjmbhybkSbdTbdTbdTbdTbdTbkTbdTbkUbkVbkWbkXbfHbkYbebbkZblablbblcbldbleblfblgbebbejaQLbaublhblibcpbljblkbcpbllbllbaublmblnbloaYPblpblqblrbcDbcDblsbltaYPbluaYPblvbjKbjLblxblybjKbjKblzbjRaaaaaaaaaaaabijbmXbnabmYbmYblDbeCblCblDblAblBblCbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaMsaPXbgRaSdaToaSfaSfaTpaSdbgRaSdblEblFblGblHaPXblIblIbgtblIbguaMsblJbgwaSfaMsblKblKblLblMblMblMblMblMblMbkxblNblMblMblMblMblMblMblPblQblRblRblSblRblTblUblVblTblTblWblXblYblKblZblZbmabmabmabmbbmbbmbbmbbmbbmbbmbbmbbmcbmdbmdbmebmdbmfbmfbmfbmfbmgbmhbmfbmcbmibmibmibmibmibmibmibmibmjbmjbmjaUSbmkbmlbmmbmmbmmbmmbmnbmobmpbmqbmrbmsbmtbmubmvbmwbdTbdTbmxbmybmzbmybmybebbmAbmBbmCbmDbmDbmDbmEbmFbebbmGbmHbaubmIbcpbljbljblkbljbcpbmJbaubmKbmLbmMaYPbcDbmNbmObmPbmPbmQbmRbmSbmTbmUbmVbmWboObzpbjMbjKbjKblzbjRbjRbjRbjRbjRbijbBTbDzbDzbDzbBVbeCblCbnbblAbeCbncbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablObneaSfbnfbngbnhbnibnjbnkbnibnlbnmbnibnibnnbndbnpbnqbnrbnrbnrbnsbnrbntbnuaMsbnvbnwbnxblMbnybnzbnAbnBbnCbnDbnEbnFbnGbnHbnIbnJblMbnKbnLblRbnMbnNbnOblTbnPbnQbnRblTbnSbnTbnUbnSbnSbnSbnVbgSbnWbmbaaaaaaaaaaaaaaaaaaaaabmcbnXbnYbnZboabobbocbodboebofbogbohbmcaaaaaaaaaaaaaaaaaaaaabmiboibhqbojaUSbokbmlbmqbmqbmqbmqbmqbolbombmqbmqbmqbonbooboobopboqborbosbotboubovbowbebboxboybozboAboAboBboCboDbebbejaGYbauboEboFbcpbljblkbcpboGboGbaubauboHbauaYPboIblqbltboJboJboKbltaYPaYPaYPboLbjKbEFbDubjMbjKbjKbmZbAMbrKbrMbrMbrKbDvbDzbDzbGJbGJbnbbeCblCbnbblAbeCblCaYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablOboPboQboPboPboPboPboPboPboQboPboPboRaSfboSbioboUaSfboVaSfboWboXboYboZbpaaMsbnwbnwbpbblMbpcbnDbnDbnDbnDbnDbnEbpdbnDbnDbnDbpeblMbnKbpfblRbpgbphbpiblTbpjbpkbplblTbpmbpnbpobppbpqbnTbnVbgSbnWbmbaaaaaaaaaaaabmcbmcbmcbmcbprbpsbptbpubpvbpwbpxbpybpzbpAbpBbmcbmcbmcbmcaaaaaaaaaaaabmiboibhqbpCbpDbpEbpFbpGbpHbpEbpIbpJbpKbpLbpMbpNbmqbpObpPboobpQbpRboobpSbpTbpUbpVboobpWbpXbpYbozboAboAboBbpZbqabebbejaTgbaubmIbcpbljbljblkbljbcpbcpbqbbqcbcpbqdaYPbqebqfbqgboJboJbqhbqgbqiaYPbqjbqkbjKbjRbjRbEHbEIbjRbjRbjRbqnbjRbjRbjRbEJbjSbjSbjSbjSbqobeCblCbqoblAbeCblCbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaLdaLdaPXaPXaPXaPXaPXaPXaPXaPXaPXaLdaMsbiobnobqrbqrbqrbqrbqrbqrbqsbqrbqrbqraMsbnwbnKbqtblMbqubnDbnDbqvbqwbqxbqybqvbnDbnDbnDbqzblMbnKbnLblRbqAbqBbqCblTbqDbqEbqFblTbqGbqHbqIbqJbqKbnTbqLbqMbnWbmbbmbbqNbmcbmcbmcbqObqPbqQbqRbqSbqSbqTbqUbqSbqVbqSbqWbqXbqYbqZbrabrbbmcbmcbmcbqNbmibmiboibhqbhqaUSbrcbrdbpMbrebmqbrfbrgbmqbrhbribpNbmqbonbooboobrjbrkbrlbrmbrnbrobrpbooboTbpXbrrbozboAboAbrsbrtbrubebbejaGYbaubrvbrwbrxbljblkbrybcpbcpbrzbcpbrAbrBaYPbrCbrDbrEboJboJbrFbrEbrGaYPbrHbqkbjKbjObGIbjMbjKbjKbrIbrJbrKbrLbrMbrKbrNbeCbeCbeCbeCbeCbeCbeCbeCbeCbeCblCbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrObrPbrPbrQbrPbrPbrPbrRbrPbrPbrSaabaPXaUnaShbrTbqrbrUbrVbrWbrXbrYbrZbsabsbbqrbscbsdbsebsfblMbsgbnDbnDbqvbqxbshbsibqvbnDbnDbsjbskblMbnKbnLblRblRbslblRblTbsmbsnbsoblTbspbqJbsqbqJbsrbnTbnVbssbnWbgXbgXbstbsubsvbmcbswbptbsxbqSbqSbsybszbsAbsBbsAbsCbsDbsEbsFbsGbsHbsIbmcbsJbsubsKbsLbsMboibhqbhqbsNbmqbsObmqbmqbmqbsPbsQbmqbrhbsRbpNbmqbpObooboobsSbsTbsUbsVbsWbsXbrpbsYbebbsZbtabtbboAboAboBbrtbtcbebbtdbtebaubtfbaubaubtgblkbthbtibcpbtjbtkbtlbtmbmUbtnbtobtpbtqbtqbtrbtsbttbmUbtubtvbjKbtwbjKbjMdsfbjKbtxbjRbjRbjRbjRbqnbijbtybeCblCblDblAbeCblCblDblAbeCbtzbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrObtAbtBbtCbtDbtDbtEbtDbtDbtDbtEbrQaPYaPXaSdaToboSbqrbrUbtFbtGbrUbtHbtIbtJbtKbqrbtLbtMbtNblQblMbtObtPbtQbtRbtSbtTbtUbtVbtVbtVbtWbtXblMbnKbsdbtYbtZbuabubblTblTblTblTblTbucbudbuebufbugbnTbnVbssbgSbgSbgSbuhbuibujbukbulbumbqSbunbuobupbuqburbusbutbuubuvbuwbuxbulbuybuzbuAbuBbuCbuDbuEbuEbuFbhqbuGaUSbmqbuHbuIbpNbmqbuJbuKbmqbuLbuMbpNbmqbonboobooboobopboobuNboobsXbrpbuObebbuPbrrboBboAboAboBbrtbuQbebbuRbuSbuTbuUbuVbuWbuXbuYbuZbuZbuZbuZbuZbuZbvabvbbvcboJboJboJboJboJboJbvdbvebvfbqkbjKbjKbjKbjMbjKbjKbvgbqnbvhbvhbvhbjRblDblAbeCblCbnbblAbeCblCbnbblAbeCblCblDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvibvjbvjbvjbvjbvjbvjbvjbvjbvjbvjbvkbvlaOQbvlaSfboSbqrbvmbrUbvnbvnbvnbvobrUbvpbqrbvqbvrbtNbvsbvsbvsbvsbvtbvsbvubnDbvvbvwbvxbvxbvybvzblMbvAbvBbvCbvDbvEbvFbvGbvHbvIbvHbvJbvJbvJbvJbvJbvKbvLbnVbvMbvNbvObvPbvQbvRbvSbvTbvUbusbvVbvWbvXbvXbvXbvXbvYbvXbvZbwabwbbwcbvVbwdbwebmcbwfbwgbwhbwibwjbwkbhqbhqbsNbmqbwlbmqbmqbmqaZVbmqbmqbwmbwmbmqbmqbwnbooboobwobwpboobooboobwqbwrbwsbebbqabrrboBboBboBboBbrtbwtbebbwubwvbwvbwwbwvbwxbljbljbljbljbwybljbljbljbwzbveboJboJboJboJboJboJboJbvdbvebvfbqkbjKboMboMboNboMbjKbwAbjRbwBbwCbwDbjRbnbblAbeCblCbnbblAbeCblCbnbblAbeCblCbnbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwEbwFbwGbwHbwIbwIbwJbwIbwIbwIbwJbrQaPYaPYaSdbwKblHbwLbrUbwMbvnbvnbvnbvobwMbrUbqrbwNbwObtNbvsbwPbwQbwRbwSbvsbwTbwUbwVblMbwWbwXbwYbwZblMbnKbxabxbbxbbxcbxbbxbbxbbxbbxdbxebxebxebxfbxebxgbxhbxibxjbxkbxlbxlbxlbxlbxlbxmbxmbxnbxmbvXbvXbxobxpbxqbxrbxsbxtbxobxubvXbxvbxwbxvbxvbxvbxvbxvbxvbxvbwkbhqbhqaUSbxxbmqbxybxzbmqbxAbmqbxBbxCbxDbmqbxEbdTbxFbxGbdTbdTbxHbxIbxJbxIbdTbdTbebbxKbxLbxMbxMbxMbxMbxLbxNbebbxObwvbwvbwwbxPbaubxQbxRbxSbxTbxUbxVbxWbxXbxYaYPbxZbcDbyaboJboJbyabcDbybaYPbycbqkbjKbqlbqlbqmbqlbjKbvgbqnbvhbvhbvhbjRbqoblAbeCblCbqoblAbeCblCbqoblAbeCblCbqoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwEbrPbrPbrQbrPbrPbrPbrRbrPbrPbydaabaPYbyebngbyfbqrbtFbtFbtFbrUbygbyhbyibyjbqrbykbylbtNbvsbymbvsbynbyobvsbypbyqbyrblMbwWbwXbwYbskblMbnKbxabxbbysbytbyubyvbywbxbbyxbyybyzbyAbyBbyBbyBbyCbyDbyEbyFbxlbyGbyHbyIbyJbyKbyLbyMbyNbvXbyObxqbxqbyPbyQbyPbxqbxqbyRbvXbySbyTbyUbyVbyWbyXbyYbyZbxvbzabzbbzbbzcaUSaUSaUSaUSbzdbsNbzdbzeaUSbdRaUSaUSbdTbdTbdTbdTbzfbzgbzgbzgbzgbzhbzibebbjBbzjbjBbzkbzkbjBbzjbjBbebbxObwvbwvbzlbxPbaubaubaubaubaubtfbaubaubaubauaYPaYOaYQaYQaYQaYQaYQaYQaYPaYPbzmbznbjKbjKbjKbjMbjKbjKdsgbjRbjRbjRbjRbqnbijbzobeCbeCbeCbeCbeCbeCbeCbeCbeCbeCbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUlaLdaSdaSdaSdaMsaMsaMsaMsaMsaMsbzqbzrbqrbqrbqrbqrbqrbqrbzsbqrbqrbqrbnKbnKbztbvsbzubzvbynbzwbvsbzxbzybzzblMbwWbwXbwYbnDblMbnKbxabxbbzAbzBbzCbyvbzCbxbbyxbzDbzEbzFbzGbzHbzIbzJbzKbzLbyFbzMbzNbzObzPbzQbzQbzPbzRbzSbvXbzTbxqbxqbyPbzUbyPbxqbxqbzVbwbbzWbzXbzYbzZbAabAbbzYbAcbxvbAdbAebAfbAgbAhbAibAjbAkbAkbAkbAkbAkbAkbAlbAmbAnbAkbAkbAobAkbAkbAkbAkbAkbAkbAkbAkbApbAqbArbArbArbArbArbArbAsbAibAtbAubAubAvbAwbAxbAwbAybAwbAzbAAbABbAwbACbADbAEbAFbAGbAGbAGbAGbAGbAGbAGbAHbAIbAJbAJbAJbAJbAKbAJbALbrIbAMbrKbANbrMbrKbAObeCbeCbeCbeCbAPbeCbAPbeCbeCbeCbeCaYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAQbARbARbARbARbASbASbARbARbATaaaaabaPYaUnaShbAUbAVbAWbAXbAXbAXbAXbAYbAZbBablQbnwbBbbBcbvsbvsbvsbBdbyobvsblMblMblMblMbwWbBebBfbBgblMbBhbBibxbbBjbBkbyvbzCbBlbxbbyxbBmbzEbzFbBnbBobBpbzJbBqbzLbyFbzMbBrbBsbBtbBubBvbBwbzRbBxbvXbBybyPbxqbBzbBAbBzbxqbyPbBBbxubBCbzYbzYbzZbBDbAbbzYbBEbxvbBFbAfbAfbAgbAhbAibAkbAkbAkbAkbAkbAkbAkbBGbAkbAkbAkbAkbAkbAkbBHbBIbBIbBIbBIbBIbBIbBIbBIbBIbBIbBIbBIbBIbBIbBJbBKbBLbAGbAGbBMbwvbwvbwvbwvbwvbwwbwvbwvbwvbwvbwvbwvbwvbwvbwvbwvbwvbwvbBNbwvbBObBPbjKbjKbjKbjKbjKbjKbjKbBQbjRbqnbjRbjRbjRbEJbjSdsidshbjSbBUaYUbBUaYUbDxbBRbBSbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBWbBXbBYbBZbCabCbbCbbCcbCdbARbATaPXaPYaPYaTobCebCfbCgbCfbCfbCfbCfbChbCibCjblQblQbCkbClbvsbwPbCmbCnbzwbvsbCobCpbCoblMblMblMblMbCqblMbCrbCsbxbbCtbCubzCbCvbCwbxbbyxbzJbCxbzFbBnbBnbCybzJbCzbzLbyFbzMbCAbBsbBtbCBbCCbBwbzRbCDbvXbCEbCFbxqbCGbCHbCIbxqbCJbCKbCLbCMbCNbCObCPbCQbCRbzYbCSbxvbCTbCUbAfbAgbAhbAibAkbCVbAkbAkbAkbAkbCWbCXbCXbCXbCXbCYbAkbAkbAkbAkbCZbAkbCVbDabAkbDbbDcbDdbAkbDebDfbDfbDgbDhbDibDjbwvbwvbwvbwvbwvbwvbwvbDkbDlbwvbwvbwvbwvbwvbwvbwvbwvbwvbwvbwvbDmbDnbDnbDobDpbDqbDrbDsbDsbDsbDsbDtdskbAMbrKbrMbrMbrKdsjdsldsldsldsnbijaaabijdsobDwbDwdspbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwEbwFbwGbwHbwIbwIbwJbwIbwIbwIbwJbrQaPXaPXaSdbwKblHbwLbrUbwMbvnbvnbvnbvobwMbrUbqrbwNbwObtNbvsbwPbwQbwRbwSbvsbwTbwUbwVblMbwWbwXbwYbwZblMbnKbxabxbbxbbxcbxbbxbbxbbxbbxdbxebxebxebxfbxebxgbxhbxibxjbxkbxlbxlbxlbxlbxlbxmbxmbxnbxmbvXbvXbxobxpbxqbxrbxsbxtbxobxubvXbxvbxwbxvbxvbxvbxvbxvbxvbxvbwkbhqbhqaUSbxxbmqbxybxzbmqbxAbmqbxBbxCbxDbmqbxEbdTbxFbxGbdTbdTbxHbxIbxJbxIbdTbdTbebbxKbxLbxMbxMbxMbxMbxLbxNbebbxObwvbwvbwwbxPbaubxQbxRbxSbxTbxUbxVbxWbxXbxYaYPbxZbcDbyaboJboJbyabcDbybaYPbycbqkbjKbqlbqlbqmbqlbjKbvgbqnbvhbvhbvhbjRbqoblAbeCblCbqoblAbeCblCbqoblAbeCblCbqoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwEbrPbrPbrQbrPbrPbrPbrRbrPbrPbydaabaPXbyebngbyfbqrbtFbtFbtFbrUbygbyhbyibyjbqrbykbylbtNbvsbymbvsbynbyobvsbypbyqbyrblMbwWbwXbwYbskblMbnKbxabxbbysbytbyubyvbywbxbbyxbyybyzbyAbyBbyBbyBbyCbyDbyEbyFbxlbyGbyHbyIbyJbyKbyLbyMbyNbvXbyObxqbxqbyPbyQbyPbxqbxqbyRbvXbySbyTbyUbyVbyWbyXbyYbyZbxvbzabzbbzbbzcaUSaUSaUSaUSbzdbsNbzdbzeaUSbdRaUSaUSbdTbdTbdTbdTbzfbzgbzgbzgbzgbzhbzibebbjBbzjbjBbzkbzkbjBbzjbjBbebbxObwvbwvbzlbxPbaubaubaubaubaubtfbaubaubaubauaYPaYOaYQaYQaYQaYQaYQaYQaYPaYPbzmbznbjKbjKbjKbjMbjKbjKdsgbjRbjRbjRbjRbqnbijbzobeCbeCbeCbeCbeCbeCbeCbeCbeCbeCbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUlaLdaSdaSdaSdaMsaMsaMsaMsaMsaMsbzqbzrbqrbqrbqrbqrbqrbqrbzsbqrbqrbqrbnKbnKbztbvsbzubzvbynbzwbvsbzxbzybzzblMbwWbwXbwYbnDblMbnKbxabxbbzAbzBbzCbyvbzCbxbbyxbzDbzEbzFbzGbzHbzIbzJbzKbzLbyFbzMbzNbzObzPbzQbzQbzPbzRbzSbvXbzTbxqbxqbyPbzUbyPbxqbxqbzVbwbbzWbzXbzYbzZbAabAbbzYbAcbxvbAdbAebAfbAgbAhbAibAjbAkbAkbAkbAkbAkbAkbAlbAmbAnbAkbAkbAobAkbAkbAkbAkbAkbAkbAkbAkbApbAqbArbArbArbArbArbArbAsbAibAtbAubAubAvbAwbAxbAwbAybAwbAzbAAbABbAwbACbADbAEbAFbAGbAGbAGbAGbAGbAGbAGbqpbAIbAJbAJbAJbAJbAKbAJbALbrIbAMbrKbANbrMbrKbAObeCbeCbeCbeCbAPbeCbAPbeCbeCbeCbeCaYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAQbARbARbARbARbASbASbARbARbATaaaaabaPXaUnaShbAUbAVbAWbAXbAXbAXbAXbAYbAZbBablQbnwbBbbBcbvsbvsbvsbBdbyobvsblMblMblMblMbwWbBebBfbBgblMbBhbBibxbbBjbBkbyvbzCbBlbxbbyxbBmbzEbzFbBnbBobBpbzJbBqbzLbyFbzMbBrbBsbBtbBubBvbBwbzRbBxbvXbBybyPbxqbBzbBAbBzbxqbyPbBBbxubBCbzYbzYbzZbBDbAbbzYbBEbxvbBFbAfbAfbAgbAhbAibAkbAkbAkbAkbAkbAkbAkbBGbAkbAkbAkbAkbAkbAkbBHbBIbBIbBIbBIbBIbBIbBIbBIbBIbBIbBIbBIbBIbBIbBJbBKbBLbAGbAGbBMbwvbwvbwvbwvbwvbwwbwvbwvbwvbwvbwvbwvbwvbwvbwvbwvbwvbwvbBNbwvbqqbBPbjKbjKbjKbjKbjKbjKbjKbBQbjRbqnbjRbjRbjRbEJbjSdsidshbjSbBUaYUbBUaYUbDxbBRbBSbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBWbBXbBYbBZbCabCbbCbbCcbCdbARbATaPYaPXaPXaTobCebCfbCgbCfbCfbCfbCfbChbCibCjblQblQbCkbClbvsbwPbCmbCnbzwbvsbCobCpbCoblMblMblMblMbCqblMbCrbCsbxbbCtbCubzCbCvbCwbxbbyxbzJbCxbzFbBnbBnbCybzJbCzbzLbyFbzMbCAbBsbBtbCBbCCbBwbzRbCDbvXbCEbCFbxqbCGbCHbCIbxqbCJbCKbCLbCMbCNbCObCPbCQbCRbzYbCSbxvbCTbCUbAfbAgbAhbAibAkbCVbAkbAkbAkbAkbCWbCXbCXbCXbCXbCYbAkbAkbAkbAkbCZbAkbCVbDabAkbDbbDcbDdbAkbDebDfbDfbDgbDhbDibDjbwvbwvbwvbwvbwvbwvbwvbDkbDlbwvbwvbwvbwvbwvbwvbwvbwvbwvbwvbwvbDmbDnbDnbrqbDpbDqbDrbDsbDsbDsbDsbDtdskbAMbrKbrMbrMbrKdsjdsldsldsldsnbijaaabijdsobDwbDwdspbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBWbBXbDAbCbbCbbCbbCbbCbbCbbCbbDBbDCaOQbDCaSfbDDbCfbDEbDFbDGbDHbDIbChbDJbDKbDLbDLbDMbDNbvsbvsbvsbynbDObymblQblQblQblQbDPbnKbnKbCsbnKbCrbCsbxbbDQbDRbDSbDTbyvbxbbDUbzJbDVbzFbBnbBnbDWbDXbDYbzLbDZbxlbEabEbbzPbzPbzPbzPbzRbEcbvXbEdbEebvXbvXbvXbvXbvXbvXbvXbxubxvbEfbEgbEhbEibEjbEkbElbxvbEmbEnbEnbEobEobEobEobEobEobEobEpbEpbEqbErbEsbEsbErbEqbEpbEpbEtbEtbEtbEtbEtbEtbEubEubEvbEubEubEubEubEubEubEwbExbEybwvbwvbEzbEzbEAbEAbEAbEAbEAbEBbDnbDnbDmbDnbwvbDnbDnbDnbDnbECbEDbEDbEDbEDbEEbEFbEFbEGbEGbEGbEGbEGbEGbEGbjRbjRbjRbjRaYUdsqdsldsldsrbijaaabijdssbDwbDwdstbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBWbBXbEKbELbELbCbbELbELbELbARbEMaPYaPYaPYaTobENbCfbEObEPbEPbEPbEQbChbnKbERbESbETbEUbEVbvsbwPbEWbynbEXbymbEYbEZbFabFbbFcbFdbFdbFebFdbFfbFgbxbbFhbFibFjbFkbFlbFmbFnbyBbFobFpbBnbFqbFrbFsbDYbzLbFtbxlbFubFvbFwbFxbFybFzbFAbxmbxmbFBbFCbFDbFEbFFbFEbFGbFCaaabFHbxvbFIbFJbFKbFLbEjbzYbFMbxvbFNbFObFPbEobFQbFRbFSbFTbFUbFVbFWbFXbFYbFZbGabGabFZbGbbGcbGdbEtbGebGfbGgbGhbEtbGibGjbGkbGlbGmbGnbGnbGobEubGpbGqbGrbGsbGrbGtbGtbEAbGubGvbGwbEAbGxbGybGxbEAbGzbDnbECbEDbGAbGBbGAbEDbGCbGDbEDbGEbGFbGGbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabijdsudswdsvdsvbijaaabijdsxbDwdsxbDwbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGKbARbARbARbARbARbARbARbARbEMaaaaaaaPYbGLbngbGMbCfbGNbCfbGObEPbGPbGQbChbGRbGSbGTbGUbEVbvsbvsbvsbvsbvsbvsbGVbGWbGXbGYbGZbxbbxbbxbbxbbxbbxbbxbbHabxbbxbbxbbHbbxbbHcbHdbHebBnbBnbBnbHfbDXbHgbzLbHhbxlbHibFvbxlbxlbxlbxmbHjbxmbHkbHlbHmbHnbHobHpbHqbHrbHsbHtbHubxvbHvbzYbHwbHxbEjbHybzYbxvbHzbHAbHBbEobHCbHDbHEbHFbHGbHHbHIbGabGabGabGabGabGabGabGabHJbHKbHLbHMbHNbHObEtbHPbHQbHRbHSbHTbHUbHQbHTbEubHVbGqbHWbHXbHYbHZbHZbIabIbbIcbIdbIebIfbIgbIhbEAbIibIjbIkbEDbIlbImbInbIobIpbIqbEDbIrbGGbIsbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabItbjVbIubIubIubIvaaabIwbIxbIxbIxbjVbIyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUlaLdaSdaSdaPYaPYaPYaPYaPYaPYaPYaToaSfbIzbCfbIAbIBbICbIDbIDbIEbIFbIGbIHbIHbIIbIJbDLbDLbDLbDLbDLbDLbIKbILbILbIMbINbxbbIObIPbIQbIRbISbITbIUbIVbxbbIWbIXbyBbyCbDXbHebBnbBnbIYbzJbzJbIZbJabJbbJcbJdbJebJfbJgbJhbJibJjbJkbJlbJmbHsbJnbJobJnbJobJpbHsbHtbJqbJrbJsbJtbJubJvbJwbJxbJybJrbJzbFObFObEobJAbJBbJCbJDbJEbEobHIbGabGabGabGabGabGabGabJFbJGbJHbJIbJJbHLbJKbEtbJLbJMbJNbHSbHTbHUbJObJPbEubJQbJRbJSbJTbJTbJUbJVbJWbJXbJYbJYbJYbJZbJYbKabKbbKcbKdbKebKfbKgbKhbKibKibKibKjbEDbKkbGGbKlbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabItbKmbKmbKmbIyaaabItbKmbKmbKmbIyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPYbKnbKobKpaRcaRcaRcbngaSfaSfbCfbKqbCfbKrbKsbKtbKubCfblQbKvbKvbKwbKxbKwbKwbKwbKxbKwblQblQbxbbxbbxbbKybxbbKzbKzbKzbKzbKzbKzbIUbKAbKBbKCbzFbKDbKEbKFbKGbKHbKIbKJbKKbKLbKMbKNbKObKPbKQbKQbKRbKSbKTbKUbKVbKWbKXbKYbFCbKZbHqbLabHobLbbFCaaabLcbLdbLebLfbLdbLdbLdbLdbLgbxvbLhbFObLibLjbLkbLlbLmbLnbLobEobLpbLqbLrbLsbLtbLubLvbLwbGabLxbEtbLybJJbLzbLAbEtbLBbLCbHRbHSbHTbHUbHQbHTbEubHVbGqbLDbLEbLFbLGbLHbLIbLJbLKbLLbLMbLNbLObLPbEAbLQbLRbLSbEDbLTbLUbLVbIpbLWbLXbEDbKkbGGbLYbGHaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPYbLZbMabKpaSeaSebMbbMcaSebMdbCfbMebIBbMfbMgbMhbMibCfaaaaabaabbMjbMkbMkbMkbMkbMkbMlaaaaaabMmbMnbMobMpbMqbKzbKzbKzbKzbKzbKzbMrbMsbMtbMubMvbMwbMxbMybzJbzJbMzbMAbzJbzJbMBbMCbMDbMEbMFbMGbMGbMHbMGbMIbMJbMGbMKbKYbFCbMLbFEbFEbFEbMMbFCaaabLcbLdbMNbMObMPbMQbMRbMSbMTbMUbMVbFObMWbEobMXbMYbMZbNabNbbNcbNdbNebNfbNgbNhbNibNjbNkbNlbNmbNnbNobJJbNpbNqbEtbNrbNsbNtbNubNvbNwbNxbGobEubNybNzbNAbNBbNBbNCbNDbNEbNFbNGbNHbNIbNJbNKbNLbEAbNMbLRbNNbEDbNObNPbNQbIpbIpbNRbEDbIrbGGbNSbGHaaaaaaaaaaaaaabbNTbNUbNVbNUbNVbNUbNWaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPYbKpbKpbNXaPYaPYaUlaLdbNYbNZbCfbOabIBbIBbIBbCfbCfbCfaaaaaaaaabObbOcbOcbOdbOcbOcbObaaaaaabMmbOebKzbOfbOgbOgbOgbOgbOgbOhbOibOgbOjbOkbOlbOmbOnbOobOpbzJbOqbBnbOrbOsbDXbOtbOubOvbMEbMEbMGbOwbOxbOybOzbOAbMGbFBbKYbFCbOBbOCbODbOEbOFbFCaaabOGbLdbOHbOIbOJbOKbOLbOKbOMbONbOObFObOPbEobOQbOQbORbOSbOTbOUbOVbOWbOXbOYbOZbOZbPabPbbPcbPdbEtbNobPebPfbEtbEtbEubPgbPhbPibEubEubEubEubPjbPkbGqbPlbLEbLFbPmbNBbNEbPnbPobPobPpbIdbPqbPrbPsbPtbIjbPubEDbPvbPwbIpbPxbPybPzbEDbKkbPAbGHbGHaaaaaaaaaaaaaabbPBbPCbPDbPEbPFbPGbPBaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPHbPIbPIbPIbPIbPJbPKbPIbPIbPIbPIbPLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabObbOcbOcbOcbOcbOcbObbPMbMmbMmbPNbPObPPbPQbPQbPQbPObKzbIUbKAbKzbKzbKBbPRbPSbPTbPUbPVbPWbPXbBnbBnbPYbDXbOtbOubPZbQabQbbQcbQdbQebQfbQgbQhbMGbQibQjbHmbQkbQlbQmbQnbQobHsbHtbQpbLdbQqbQrbQsbOKbQtbOKbQubONbQvbFObQwbEobQxbQybQzbQAbQBbQCbQDbQEbQFbQFbQGbQHbQFbQFbQIbQJbQKbQLbQMbQNbQObQPbQQbQRbQSbQTbQUbQVbQWbQXbQYbQZbGqbRabRbbRcbRdbRebIabRfbPobPobRgbRhbPqbRibEAbRjbRjbRkbEDbRlbRmbRnbRobIpbRpbEDbKkbRqbGHaaaaaaaaaaaaaaaaabbRrbRsbPDbPFbPDbRtbNVaabaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPHbRubRvbRwbRxbRybRzbRAbRybRBbRCbRDbPIbPIbPLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabObbOcbOcbOcbOcbOcbREbRFbRGbRFbRHbRIbRJbRIbRIbRIbRIbRKbIUbKAbRLbxbbxbbRMbBnbzFbPUbRNbDXbRObRPbRPbRQbRRbRSbRTbRUbRVbRWbRXbRYbRZbSabSbbScbMGbMKbKYbFCbSdbSebSfbSgbShbFCaaabOGbSibSjbSibSibSibSibSibSkbSibSlbFObQwbEobSmbSnbSnbSobSpbOUbSqbSrbSsbStbSubSvbSwbSsbSxbSybSzbSAbSBbSCbSDbSDbSEbSFbSGbSHbSIbSJbSKbSLbSMbSNbSObSPbSPbSQbSRbSSbIabSTbIdbIdbSUbSVbPqbSWbSXbSYbSZbTabTbbTcbTdbTebTfbTebEDbEDbTgbPtbThbTibTibTibTibTibThbPBbPFbPDbPFbPFbPGbPBaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPHbPIbRAbRAbRAbTjbRybTkbTkbRybTlbRAbRAbTmbTnbPIbPLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabObbOcbOcbOcbOcbOcbTobTpbTqbTpbTrbKzbPPbPQbPQbPQbKzbKzbIUbKAbTsbTtbxbbTubBnbzFbPUbTvbDXbTwbBnbBobBnbTxbOtbTybTzbRVbRWbTAbTBbTCbTDbTEbTFbTGbTHbTIbTJbTJbTKbTLbTMbFCbFCaaabOGbSibTNbTObTPbTQbTRbTSbTTbTUbTVbFObQwbNcbTWbTXbTYbTZbUabOUbUbbUcbUdbUebUfbUgbUhbUibUjbUkbUlbUmbUnbUobUpbUqbUrbUsbUtbUubUvbQVbUwbQXbUxbUybGrbUzbUAbUBbUCbUCbIabUDbUEbUFbIabUGbPqbUHbIabUIbUJbUKbULbUMbUNbUObUPbUQbURbUSbUTbUUbUVbUWbUWbUXbUYbUZbVabVbbNUbNVbVcbNVbNUbVdaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPHbPIbVebVfbVgbVhbVibRybVjbRAbVkbRAbRAbRAbRAbRAbTjbRyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabObbVlbOcbOcbOcbVmbObbPMbMmbMmbVnbKzbPPbKzbKzbKzbKzbKzbIUbKAbTsbVobxbbVpbBnbVqbVrbBnbVsbzEbBnbBnbVtbDXbOtbTybTzbRVbRWbMGbVubVvbVwbVxbVybMHbVzbVAbVBbVCbHsbVDbVEbHsbHtbHtbVFbSibVGbVHbVIbVJbVKbVKbVLbVMbVNbFObVObEobOUbVPbOQbVQbVRbOUbUbbVSbVTbVUbVVbVWbVXbVTbUbbVYbVZbWabWbbWabWcbWabWdbWdbWebWfbWgbWgbWgbWhbWgbWgbWibWibWjbWkbWjbWjbIabIabIabIabIabWlbWmbLIbIabWnbWobWpbWqbWqbWrbWsbWtbWubWvbWwbWxbWybWzbWAbWAbWBbWCbWDbThbVabVabVabWEbThaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWFbWGbRAbRAbWHbWHbWHbRybRAbRAbRybWIbWJbWKbWLbWMbWNbRyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabObbOcbOcbOcbOcbOcbWObTpbTqbTpbPNbWPbWQbKzbKzbKzbWPbKzbIUbKAbTsbWRbxbbWSbBnbzFbPUbBnbzJbWTbBnbBnbWUbDXbOtbTybWVbRVbWWbMGbWXbWYbWZbXabXbbMHbXcbXdbXebXfbXgbXhbXibFCaaaaaaaaabSibXjbXkbXlbXlbXmbXnbXobSibXpbXqbQwbXrbXsbXtbXubXvbXwbXxbXybUcbXzbXAbXBbXCbXDbXzbUbbVYbXEbXFbXGbXHbXIbXJbWdbXKbXLbXMbXNbXObXPbXQbXRbXSbXTbXUbURbXVbWqbWqbXWbXXbWqbXYbXZbYabYbbYcbWqbYdbYebYfbYgbYhbYibYjbYkbYjbYjbYjbTgbPtbThbTibTibThbYlbYmbYnbYobYpbYqbYrbVaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYsbWGbRAbRAbRAbRAbRAbYtbRAbRAbRybPIbPIbPIbPIbPIbPIbYuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabObbOcbOcbOcbOcbOcbYvbYwbYxbYwbYybYzbYAbYAbYAbYAbYAbYBbYCbYDbTsbYEbxbbYFbYGbYHbYIbYJbYKbYLbYLbYLbYMbYMbYNbTybYObYPbRWbMGbYQbYRbYSbVvbYTbMHbYUbYVbYWbTJbYXbQmbYYbFCaaaaaaaaabSibYZbZabZbbZcbXmbXnbXobSibZdbZebZfbZgbZhbZibZjbZkbZlbZmbZnbZobVTbVTbZpbZqbVTbVTbUbbVYbZrbZsbZtbZubZvbZwbWdbZxbZybZzbZAbZBbZCbZDbZDbZEbZFbZGbZHbZIbUMbUMbZJbUMbZKbUMbZLbUMbZMbZNbZNbZObZPbZQbZRbZSbZTbZUbZVbZWbZXbYjbZYbZZaaaaaaaaabThcaabUYcabbYobVacaccadbThaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaebPIcafcagcahcaibRAbRybRAbRAbRybRAcajcakcalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabObbOcbOcbOcbOcbOcbObbPMbMmbMmbxbbxbbMmbMmbMmbMmbMmbxbbxbbMmbMmbMmbxbcamcamcamcancambYMcaocapcaqcarbYMbOtbTycasbMEbMEbMGbMGbMGbMGbMGcatbMHbTJbTIcaubTJcavcawbFCbFCbFCbFCbFCbSibSjbSibSibSibSibSibSibSicaxbFOcaycazcaAcaBcaCcaAcaAcaDcaEcaFcaGcaHcaIcaJcaKcaLbXycaMcaNcaOcaPcaQcaRcaScaTcaUcaVcaWcaXcaYcaZcbacbbcbcbWgbWicbdcbecbdcbfcbgcbfcbfcbfcbhcbicbjcbjcbkcblcbmcbnbZRcbocbpcbqcbrcbscbtbYjbZYbZZaaaaaaaaabThcbucbvbThbVabThbThbVabThaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBWbBXbEKbELbELbCbbELbELbELbARbEMaPXaPXaPXaTobENbCfbEObEPbEPbEPbEQbChbnKbERbESbETbEUbEVbvsbwPbEWbynbEXbymbEYbEZbFabFbbFcbFdbFdbFebFdbFfbFgbxbbFhbFibFjbFkbFlbFmbFnbyBbFobFpbBnbFqbFrbAHbDYbzLbFtbxlbFubFvbFwbFxbFybFzbFAbxmbxmbFBbFCbFDbFEbFFbFEbFGbFCaaabFHbxvbFIbFJbFKbFLbEjbzYbFMbxvbFNbFObFPbEobFQbFRbFSbFTbFUbFVbFWbFXbFYbFZbGabGabFZbGbbGcbGdbEtbGebGfbGgbGhbEtbGibGjbGkbGlbGmbGnbGnbGobEubGpbGqbGrbBObGrbDobDobEAbGubGvbGwbEAbFsbGsbFsbEAbGzbDnbECbEDbGtbGxbGtbEDbGCbGDbEDbGEbGFbGGbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabijdsudswdsvdsvbijaaabijdsxbDwdsxbDwbijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGKbARbARbARbARbARbARbARbARbEMaaaaaaaPXbGLbngbGMbCfbGNbCfbGObEPbGPbGQbChbGRbGSbGTbGUbEVbvsbvsbvsbvsbvsbvsbGVbGWbGXbGYbGZbxbbxbbxbbxbbxbbxbbxbbHabxbbxbbxbbHbbxbbHcbHdbHebBnbBnbBnbHfbDXbHgbzLbHhbxlbHibFvbxlbxlbxlbxmbHjbxmbHkbHlbHmbHnbHobHpbHqbHrbHsbHtbHubxvbHvbzYbHwbHxbEjbHybzYbxvbHzbHAbHBbEobHCbHDbHEbHFbHGbGybHIbGabGabGabGabGabGabGabGabHJbHKbHLbHMbHNbHObEtbHPbHQbHRbHSbHTbHUbHQbHTbEubHVbGqbHWbHXbHYbHZbHZbIabIbbIcbIdbIebIfbIgbIhbEAbIibIjbIkbEDbIlbImbInbIobIpbIqbEDbIrbGGbIsbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabItbjVbIubIubIubIvaaabIwbIxbIxbIxbjVbIyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUlaLdaSdaSdaPXaPXaPXaPXaPXaPXaPXaToaSfbIzbCfbIAbIBbICbIDbIDbIEbIFbIGbIHbIHbIIbIJbDLbDLbDLbDLbDLbDLbIKbILbILbIMbINbxbbIObIPbIQbIRbISbITbIUbIVbxbbIWbIXbyBbyCbDXbHebBnbBnbIYbzJbzJbIZbJabJbbJcbJdbJebJfbJgbJhbJibJjbJkbJlbJmbHsbJnbJobJnbJobJpbHsbHtbJqbJrbJsbJtbJubJvbJwbJxbJybJrbJzbFObFObEobJAbJBbJCbJDbJEbEobHIbGabGabGabGabGabGabGabJFbJGbGAbJIbJJbHLbJKbEtbJLbJMbJNbHSbHTbHUbJObJPbEubJQbJRbJSbJTbJTbJUbJVbGBbJXbJYbJYbJYbJZbJYbKabKbbKcbKdbKebKfbKgbKhbKibKibKibKjbEDbKkbGGbKlbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabItbKmbKmbKmbIyaaabItbKmbKmbKmbIyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPXbKnbKobKpaRcaRcaRcbngaSfaSfbCfbKqbCfbKrbKsbKtbKubCfblQbKvbKvbKwbKxbKwbKwbKwbKxbKwblQblQbxbbxbbxbbKybxbbKzbKzbKzbKzbKzbKzbIUbKAbKBbKCbzFbKDbHHbKFbKGbKHbKIbKJbKKbJHbKMbKNbKObKPbKQbKQbKRbKSbKTbKUbKVbKWbKXbKYbFCbKZbHqbLabHobLbbFCaaabLcbLdbLebLfbLdbLdbLdbLdbLgbxvbLhbFObLibLjbLkbLlbLmbLnbLobEobLpbLqbLrbLsbLtbLubLvbLwbGabLxbEtbLybJJbLzbLAbEtbLBbLCbHRbHSbHTbHUbHQbHTbEubHVbGqbLDbLEbLFbLGbLHbLIbLJbLKbLLbLMbLNbLObLPbEAbLQbLRbLSbEDbLTbLUbLVbIpbLWbLXbEDbKkbGGbLYbGHaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPXbLZbMabKpaSeaSebMbbMcaSebMdbCfbMebIBbMfbMgbMhbMibCfaaaaabaabbMjbMkbMkbMkbMkbMkbMlaaaaaabJWbMnbMobMpbMqbKzbKzbKzbKzbKzbKzbMrbMsbKEbMubMvbMwbMxbKLbzJbzJbMzbMAbzJbzJbMBbMCbMDbMEbMFbMGbMGbMHbMGbMIbMJbMGbMKbKYbFCbMLbFEbFEbFEbMMbFCaaabLcbLdbMNbMObMPbMQbMRbMSbMTbMUbMVbFObMWbEobMXbMYbMZbNabNbbNcbNdbNebNfbNgbNhbNibNjbNkbNlbNmbNnbNobJJbNpbNqbEtbNrbNsbNtbNubNvbNwbNxbGobEubNybNzbNAbNBbNBbNCbNDbNEbNFbNGbNHbNIbNJbNKbNLbEAbNMbLRbNNbEDbNObNPbNQbIpbIpbNRbEDbIrbGGbNSbGHaaaaaaaaaaaaaabbNTbNUbNVbNUbNVbNUbNWaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPXbKpbKpbMmaPXaPXaUlaLdbMtbMybCfbOabIBbIBbIBbCfbCfbCfaaaaaaaaabObbOcbOcbOdbOcbOcbObaaaaaabJWbOebKzbOfbOgbOgbOgbOgbOgbOhbOibOgbOjbNXbOlbOmbOnbOobOpbzJbOqbBnbOrbOsbDXbOtbOubOvbMEbMEbMGbOwbOxbOybOzbOAbMGbFBbKYbFCbOBbOCbNYbOEbOFbFCaaabOGbLdbOHbOIbOJbOKbOLbOKbOMbONbOObFObOPbEobOQbOQbORbOSbOTbOUbOVbOWbOXbOYbOZbOZbPabPbbPcbPdbEtbNobPebPfbEtbEtbEubPgbPhbPibEubEubEubEubPjbPkbGqbPlbLEbLFbPmbNBbNEbPnbPobPobPpbIdbPqbPrbPsbPtbIjbPubEDbPvbPwbIpbPxbPybPzbEDbKkbPAbGHbGHaaaaaaaaaaaaaabbPBbPCbPDbPEbPFbPGbPBaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPHbPIbPIbPIbPIbPJbPKbPIbPIbPIbPIbPLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabObbOcbOcbOcbOcbOcbObbNZbJWbJWbPNbPObPPbPQbPQbPQbPObKzbIUbKAbKzbKzbKBbPRbPSbPTbPUbPVbOkbPXbBnbBnbPYbDXbOtbOubPZbODbQbbQcbQdbQebQfbQgbQhbMGbQibQjbHmbQkbQlbQmbQnbQobHsbHtbQpbLdbQqbQrbQsbOKbQtbOKbQubONbQvbFObQwbEobQxbQybQzbQAbQBbQCbQDbQEbQFbQFbQGbQHbQFbQFbQIbQJbQKbQLbQMbQNbQObQPbQQbQRbQSbQTbQUbQVbQWbQXbQYbQZbGqbRabRbbRcbRdbRebIabRfbPobPobRgbRhbPqbRibEAbRjbRjbRkbEDbRlbRmbRnbRobIpbRpbEDbKkbRqbGHaaaaaaaaaaaaaaaaabbRrbRsbPDbPFbPDbRtbNVaabaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPHbRubRvbRwbRxbRybRzbRAbRybRBbRCbRDbPIbPIbPLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabObbOcbOcbOcbOcbOcbREbRFbRGbRFbRHbRIbRJbRIbRIbRIbRIbRKbIUbKAbRLbxbbxbbRMbBnbzFbPUbRNbDXbRObRPbRPbRQbPMbRSbRTbRUbRVbRWbRXbRYbRZbSabSbbScbMGbMKbKYbFCbSdbSebSfbSgbShbFCaaabOGbSibSjbSibSibSibSibSibSkbSibSlbFObQwbEobSmbSnbSnbSobSpbOUbSqbSrbSsbStbSubSvbSwbSsbSxbSybSzbSAbSBbSCbSDbSDbSEbSFbSGbSHbSIbSJbSKbSLbSMbSNbSObSPbSPbSQbSRbSSbIabSTbIdbIdbSUbSVbPqbSWbPWbSYbSZbTabTbbQabTdbTebRRbTebEDbEDbTgbPtbThbTibTibTibTibTibThbPBbPFbPDbPFbPFbPGbPBaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPHbPIbRAbRAbRAbTjbRybTkbTkbRybTlbRAbRAbTmbTnbPIbPLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabObbOcbOcbOcbOcbOcbTobSXbTqbSXbTrbKzbPPbPQbPQbPQbKzbKzbIUbKAbTsbTtbxbbTubBnbzFbPUbTvbDXbTwbBnbBobBnbTcbOtbTybTzbRVbRWbTAbTBbTCbTDbTEbTFbTGbTHbTIbTJbTJbTKbTLbTMbFCbFCaaabOGbSibTNbTObTPbTQbTRbTSbTTbTUbTVbFObQwbNcbTWbTXbTYbTZbUabOUbUbbUcbUdbUebUfbUgbUhbUibUjbUkbUlbUmbUnbUobUpbUqbUrbUsbUtbUubUvbQVbUwbQXbUxbUybGrbUzbUAbUBbUCbUCbIabUDbUEbUFbIabUGbPqbUHbIabUIbUJbUKbULbUMbUNbUObUPbUQbURbUSbUTbUUbUVbUWbUWbUXbUYbUZbTfbVbbNUbNVbVcbNVbNUbVdaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPHbPIbVebVfbVgbVhbVibRybVjbRAbVkbRAbRAbRAbRAbRAbTjbRyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabObbVlbOcbOcbOcbVmbObbNZbJWbJWbVnbKzbPPbKzbKzbKzbKzbKzbIUbKAbTsbVobxbbVpbBnbVqbVrbBnbTpbzEbBnbBnbVtbDXbOtbTybTzbRVbRWbMGbVubVvbVwbVxbVybMHbVzbVAbVBbVCbHsbTxbVEbHsbHtbHtbVFbSibVGbVHbVIbVJbVKbVKbVLbVabVNbFObVObEobOUbVPbOQbVQbVRbOUbUbbVSbVTbVUbVVbVWbVXbVTbUbbVYbVZbWabWbbWabWcbWabWdbWdbWebWfbWgbWgbWgbWhbWgbWgbWibWibWjbWkbWjbWjbIabIabIabIabIabWlbVsbLIbIabWnbWobWpbWqbWqbWrbWsbWtbWubWvbWwbWxbWybWzbWAbWAbWBbWCbWDbThbTfbTfbTfbWEbThaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWFbWGbRAbRAbWHbWHbWHbRybRAbRAbRybWIbWJbWKbWLbWMbWNbRyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabObbOcbOcbOcbOcbOcbWObSXbTqbSXbPNbWPbWQbKzbKzbKzbWPbKzbIUbKAbTsbWRbxbbWSbBnbzFbPUbBnbzJbWTbBnbBnbWUbDXbOtbTybWVbRVbWWbMGbWXbWYbWZbXabXbbMHbXcbXdbXebVDbXgbXhbXibFCaaaaaaaaabSibXjbXkbXlbXlbXmbXnbXobSibXpbXqbQwbXrbXsbXtbXubXvbXwbXxbXybUcbXzbXAbXBbXCbXDbXzbUbbVYbXEbXFbXGbXHbXIbXJbWdbXKbXLbXMbXNbXObXPbXQbXRbXSbXTbXUbURbXVbWqbWqbXWbXXbWqbXYbXZbYabYbbYcbWqbYdbYebYfbYgbYhbYibYjbYkbYjbYjbYjbTgbPtbThbTibTibThbYlbYmbYnbYobYpbYqbYrbTfaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYsbWGbRAbRAbRAbRAbRAbYtbRAbRAbRybPIbPIbPIbPIbPIbPIbYuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabObbOcbOcbOcbOcbOcbYvbYwbYxbYwbYybYzbYAbYAbYAbYAbYAbYBbYCbYDbTsbYEbxbbYFbYGbYHbYIbYJbYKbYLbYLbYLbYMbYMbYNbTybYObVMbRWbMGbYQbYRbYSbVvbYTbMHbYUbYVbYWbTJbYXbQmbYYbFCaaaaaaaaabSibYZbZabZbbZcbXmbXnbXobSibZdbZebZfbZgbZhbZibZjbZkbZlbZmbZnbZobVTbVTbZpbZqbVTbVTbUbbVYbZrbZsbZtbZubZvbZwbWdbZxbZybZzbZAbZBbZCbZDbZDbZEbZFbZGbZHbZIbUMbUMbZJbUMbZKbUMbZLbUMbZMbZNbZNbZObZPbZQbZRbZSbZTbZUbZVbZWbZXbYjbZYbZZaaaaaaaaabThcaabUYcabbYobTfcaccadbThaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaebPIcafcagcahcaibRAbRybRAbRAbRybRAcajcakcalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabObbOcbOcbOcbOcbOcbObbNZbJWbJWbxbbxbbJWbJWbJWbJWbJWbxbbxbbJWbJWbJWbxbcamcamcambWmcambYMcaocapcaqcarbYMbOtbTycasbMEbMEbMGbMGbMGbMGbMGcatbMHbTJbTIcaubTJcavbXfbFCbFCbFCbFCbFCbSibSjbSibSibSibSibSibSibSicaxbFOcaycazcaAcaBcaCcaAcaAcaDcaEcaFcaGcaHcaIcaJcaKcaLbXycaMcaNcaOcaPcaQcaRcaScaTcaUcaVcaWcaXcaYcaZcbacbbcbcbWgbWicbdcbecbdcbfbYPcbfcbfcbfcbhcancbjcbjcbkcblcbmcbnbZRcbocbpcbqcbrcbscbtbYjbZYbZZaaaaaaaaabThcbucbvbThbTfbThbThbTfbThaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPIbPIbPIbPIbPIbPIbRybTlbRAcbwbRAcbxcbycbzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbAcbBbOccbCbOccbDcbEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbFaabaaaaaaaaaaaacamcbGcbHcbIcbJbYMcbKcbLcbMcbNbYMbOtbTycbOcbPcbQcbRcbScbTcbUcbVcbWcbXcbYcbZccaccbcccccdcceccfccgcchcciccjcckcclccmbEnccnbFOccoccpccqbFOccrcaAccscctccuccvccwbUbccxccycczccAccBccCccDccEccFccGccHbWaccIbZuccJccKccLccMccNccObXNccPbXQbXQbXQccQbWgcbdccRccSccTccUccVccWccXcbfccYccZcdacbjcbjcdbcbmcdccddcdecdfcdgcdhcdicdjbYjcdkbGHaaaaaaaaabThbThbThbThaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPHbPIcdlcdmcdncdlcdobRybRAbRAbRybRAcdpcdqcdraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdscdtcducducducdtcdvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacamcdwcdxcdycdzbYLcdAcdBcdCcdDbYMbOtcdEcdFbTybTycdGcdHcdIcdJcclcdKcdLcdKcdMcdNcdNcdOcdPcdQcdNcdNcdRcdNcdScdNcclccmbEncdTcdUcdVcdWcdXcdYbFOcaAcdZcctceaccucebbUbceccedceecefcegcehceicejbUbcekcelbWacemcencenceocepceqcercesbXNcetceubXQcevcewbWgcbdcexceycezceAceBceCceDcbfceEccZceFceFcbjceGceHceIceJceKceLceMceNceOcePbYjbZYbGHceQaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPHbPIcdlcdmcdncdlcdobRybRAbRAbRybRAcdpcdqcdraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdscdtcducducducdtcdvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacamcdwcdxcdycdzbYLcdAcdBcdCcdDbYMbOtcdEcdFbTybTycdGcdHcdIcdJcclcdKcdLcdKcdMcdNcdNcdOcdPcdQcdNcdNcdRcdNcdScdNcclccmbEncdTcdUcdVcdWcdXcdYbFOcaAcdZcctceaccucebbUbceccedceecefcegcehceicejbUbcekcelbWacemcencenceocepceqcercesbXNcetceubXQcevcewbWgcbdcexceycezcawceBceCceDcbfceEccZceFceFcbjceGceHceIceJceKceLceMceNceOcePbYjbZYbGHceQaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWFbWGceRceRceRceRceRceSbRAbRAbRybPIbPIbPIbPIbPIbPIbPLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceTceUceUceUceVaaaaaaaaaaaaaaaaaaaaaceWceXceYceXceZaaaaaaaaacamcamcamcfacfbcdycfcbYLcfdcbMcfecffbYMbOtcfgcfhcficfjcfkcflcfmcfncfocfpcfqcfrcfscftcftcfucfvcfvcfvcfvcfvcfvcfwcfxcfycfzcfAcfBcfCcfDcfEcfFcfGcfHcaAcfIcctccucfJcebbUbceccedcfKcfLcfMcfNcfOcfPbUjcfQcfRbWabWacfScfSbWacepbWdcfTcfUbWgcfVcfWcfXcfYcfZbWgcbdcgacgbcgccgdcgecgfcggcbfcghccZceFceFcbjcgicgjcgkcglcgmcgncgocgpcgqcgrbYjbZYcgscgtcgscgucgvcgucgucguaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYsbWGceRceRceRcgwcgxbRybRAbRAbRybRAbRAbRAcgybRAcgzbRyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgAcgBcgCcgDcgAcgEcgEcgEcamcgFcgGcgHcgIcgJcgKcgLcgMcgNcgNcgObYMcgPcgQcgRcgScgScgTcgUcgVcgScgWcgWcgXcgYcgZcgWcgWchacclcclchbchcchcchcchdchechcchcchfchgchhchhchichhchjchkchhchlchmchncaAchochpcecchqchrchschtchuchvchrbUbcekchwchxchychzchAchBchCchDchEchFchGchHchIchJchKchLbWicbdcbdchMchNchOchPchOchQcbfchRchSchTchTcbjchUchVchWbYjbYjbYjbYjbYjbYjbYjbYjbZYcgschXchYchZciaciacibcguaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcicciccicciccidcidcieciecieciecifaabaabaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaebPIcigceRceRcihciibRybRAbRAcijbRAbRAbRAcikbRAcilbRyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceYcimcincimceYcgEciocipcamciqcfbcirciscitciubYMcivciwcixciybYMcgQcgQcizcgSciAciBciCciDciEcgWciFciGciHciIciJcgWciKciLciMchcciNciOciPciQciRciSciTciUciVciWciXciYciZcjacjbcjccjdcjecjfcjgcjhcjicjjcedcjkcjlcjmcjncjocjpbUjcjqcjrcjscjtchAcjucjucjvcjwbWgcjxcjycjzcjAcjBcjCcjDbWicjEcjFcjGcjHcjGcjGcjIcjJcjKcjLcjMcjNcjOcbjcjPcjQcbnbPtbGGcjRcjScjTcjTcjScjTcjUcgscjVcjWchZciacjXcjYcguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciccjZckacjZcidciecieckbckcckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYsbWGceRceRceRcgwcgxbRybRAbRAbRybRAbRAbRAcgybRAcgzbRyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgAcgBcgCcgDcgAcbgcbgcbgcamcgFcgGcgHcgIcgJcgKcgLcgMcgNcgNcgObYMcgPcgQcgRcgScgScgTcgUcgVcgScgWcgWcgXcgYcgZcgWcgWchacclcclchbchcchcchcchdchechcchcchfchgchhchhchichhchjchkchhchlchmchncaAchochpcecchqchrchschtchuchvchrbUbcekchwchxchychzchAchBchCchDchEchFchGchHchIchJchKchLbWicbdcbdchMchNchOchPchOchQcbfchRchSchTchTcbjcbicgEceAbYjbYjbYjbYjbYjbYjbYjbYjbZYcgschXchYchZciaciacibcguaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcicciccicciccidcidcieciecieciecifaabaabaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaebPIcigceRceRcihciibRybRAbRAcijbRAbRAbRAcikbRAcilbRyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceYcimcincimceYcbgciocipcamciqcfbcirciscitciubYMcivciwcixciybYMcgQcgQcizcgSciAciBciCciDciEcgWciFciGciHciIciJcgWciKciLciMchcciNciOciPciQciRciSciTciUciVciWciXciYciZcjacjbcjccjdcjecjfcjgcjhcjicjjcedcjkcjlcjmcjncjocjpbUjcjqcjrcjscjtchAcjucjucjvcjwbWgcjxcjycjzcjAcjBcjCcjDbWicjEcjFcjGcjHcjGcjGcjIcjJcjKcjLcjMcjNcjOcbjcjPcjQcbnbPtbGGcjRcjScjTcjTcjScjTcjUcgscjVcjWchZciacjXcjYcguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciccjZckacjZcidciecieckbckcckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaebPIckdceRceRckebRybRAbRAbRyckfbRAbRAckgckhbPIbYuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgAckicimcimckjckkcfbcfbcklckmcfbcfbciscknckobYMbYMbYMbYMbYMbYMckpcgQckqckrckscktcktcktckucgWckvckwckwckwckxckyckzckAckBckCckDckEckFckGckHckIchcchfckJchhckKckLckMckNckOchhcdZccuceaccuckPckQckRckSckTckUckVckWckXchrckYckZclaclbclccldcleclfclgclhbWgbWgbWgbWgbWgclicljclkbWicllcjGcjGclmclncjGcloclpcbjclqccZclrclrcbjcblclscbnbPtcgscltcgscgscgscgscgscgscgscluclvcguclwclxclycguaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacclzcjZcjZclAciecieckbckbclBckbckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaebPIclCclDclEbRybRAclFbRyclGclHbRAbPIbPIbYuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceYcincincinceYcgEclIclJclKckmcfbcfbclLclMclNclOclPclPclPclQcgQcgQcgQcizcgSclRcktclScktclTcgWckvckwclUckwclVcgWclWclXclYchcclZcmacmbcmccmdcmecmfcmgcmhcmicmjcmkcmlcmmcmnchhcfIccuccucmockPckQcmpcmqcmrcjlcmscmtcmucmvcmwcmxcmycmzcmAcmBcmCcmDcjucmEchxcmFcmGcmHcmIcmJcmKcmLclpcllcmMcjGcjGcjGcmNcmOclpcbjcmPccZclrclrcbjcmQcmRcbnbPtcmScmTcmUcgscmVcmWcmXcmYcmZcnacnbcgucnccndcnecgucgscgscgscgscgscgscgscgsaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaacnfcieclzciecieckbckbckbckbckbckbckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaebPIbPIbPIbPIbPIbPIbPIbPIbPIbPIbYuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaccgQcngcngcgQcngcngcgQaaaaaacgAcnhcnicnjcgAcgEcgEcgEcamcnkcnlcnmcnmcnmcamcamcgQcnncnocnpcnqcgQcnrcnscgSclRcktcktcktcntcgWckvckwckwcnucnvcnwcnxcnycnzchcchcchcchcchccnAchcchccnBcnCchhchhcnDchhchkchhchhcaAcnEcnEcaAcnFcnGcnHcnIcnJcnKcnLcnMcnNcnObQVcnPcmycmzcnQcnRcnScnTcnUcnVchxcnWcnXcnYcnZcoacobcoccodcoecodcofcofcofcodcogcodcodcohcoiclrclrcbjcojclscbncokcolcomconcoocopcoqcoqcorcoscotcoucovcowcoxcoycozcoAcoBcoCcoDcoEcoFcoGcoHaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaacidciecoIcoJcoJckbckbckbckbckbckbckbckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaacgQcoKcoLcgQcoKcoLcgQaaaaaacoMceXcoNceXcoOaaaaabaaacamcamcamcamcamcamcamcoPcgQcoQcoRcoScoTclPcoUcoVcgScoWcoXcoYcktcoZcpacpbcpccpdcpecpfcgWcpgcphcpicpjcpkcpkcpkcpkcplcpmcpncpocpocppcppcpqcprcpschfcaAcptcpucpvcpwcpxckQcpycnIcpzcpAcpBcpCceicpDcpEcpFcpGcpHcpHcpIcpHcpHcpHcpJchxcpKcpLcpMcpNcpOcpPcpQcpRcpScpRcpTcpUcpVcpRcpWcpXcodcpYcpZcdacbjcbjcqacqbcqccqdcqecqfcqgcqhcqicqjcqkcqlcqmcqncqocqpcqqcqrcqqcqscqrcqrcqrcqtcqucqvcqwcqxaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaacieciecqyckbckbckbckbckbckbckbckbckbckbckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaccgQcqzcoLcgQcqzcoLcgQaaaaaaaabaabaabaabaabaabaabaabaabcgQcoLcqAcqBcgQcqCcqDcgQcqEcgQcgQcqFcgQcgQcqGcgScqHcqIcqJcqKcqLcqMcqNcqOcqPcqQcqRcpacqScqTcqUcqVcqWcqWcqWcqWcqXcqYcqZcracrbcracrccrdcrecrfcrgcrhcricrjcrkcrlcrmcrncrocrpcrqcrrcrscrtcrucrvcrwcrxcrybXubXucrzcrAcrBcrtcrCcrDcrDcrEcrDcrFcrGcrHcrIcpRcrJcrKcrLcrMcrLcrNcrOcrPcodcbjcrQcbjcbjcrRcrSclsbLRbPtcgscrTcgscgscrUcrVcrWcrXcrYcqrcrZcsacsbcqkcsbcqkcsccqkcqkcgscsdcsecsfcsgaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaacieckbckbckbckbckbckbcshckbcsickbckbckbckbckbciecieaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaebPIclCclDclEbRybRAclFbRyclGclHbRAbPIbPIbYuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceYcincincinceYcbgclIclJclKckmcfbcfbclLclMclNclOclPclPclPclQcgQcgQcgQcizcgSclRcktclScktclTcgWckvckwclUckwclVcgWclWclXclYchcclZcmacmbcmccmdcmecmfcmgcmhcmicmjcmkcmlcmmcmnchhcfIccuccucmockPckQcmpcmqcmrcjlcmscmtcmucmvcmwcmxcmycmzcmAcmBcmCcmDcjucmEchxcmFcmGcmHcmIcmJcmKcmLclpcllcmMcjGcjGcjGcmNcmOclpcbjcmPccZclrclrcbjcmQcmRcbnbPtcmScmTcmUcgscmVcmWcmXcmYcmZcnacnbcgucnccndcnecgucgscgscgscgscgscgscgscgsaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaacnfcieclzciecieckbckbckbckbckbckbckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaebPIbPIbPIbPIbPIbPIbPIbPIbPIbPIbYuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaccgQcngcngcgQcngcngcgQaaaaaacgAcnhcnicnjcgAcbgcbgcbgcamcnkcnlcnmcnmcnmcamcamcgQcnncnocnpcnqcgQcnrcnscgSclRcktcktcktcntcgWckvckwckwcnucnvcnwcnxcnycnzchcchcchcchcchccnAchcchccnBcnCchhchhcnDchhchkchhchhcaAcnEcnEcaAcnFcnGcnHcnIcnJcnKcnLcnMcnNcnObQVcnPcmycmzcnQcnRcnScnTcnUcnVchxcnWcnXcnYcnZcoacobcoccodcoecodcofcofcofcodcogcodcodcohcoiclrclrcbjcojclscbnchUcolcomconchVcopcoqcoqcorcoscotcoucovcowcoxcoycozcoAcoBcoCcoDcoEcoFcoGcoHaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaacidciecoIcoJcoJckbckbckbckbckbckbckbckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaacgQcoKcoLcgQcoKcoLcgQaaaaaacoMceXcoNceXcoOaaaaabaaacamcamcamcamcamcamcamcoPcgQcoQcoRcoScoTclPcoUcoVcgScoWcoXcoYcktcoZcpacpbcpccpdcpecpfcgWcpgcphcpicpjcpkcpkcpkcpkcplcpmcpncpocpocppcppcpqcprcpschfcaAcptcpucpvcpwcpxckQcpycnIcpzcpAcpBcpCceicpDcpEcpFcpGcpHcpHcpIcpHcpHcpHcpJchxcpKcpLcpMcpNcpOcpPcpQcpRcpScpRcpTcpUcpVcpRcpWcpXcodcpYcpZcdacbjcbjcqacqbcqccqdcqecqfcqgcqhcqicqjcqkcqlcqmcqncqocqpcqqcqrcqqcqscqrcqrcqrchWcqucqvcqwcqxaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaacieciecqyckbckbckbckbckbckbckbckbckbckbckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaccgQcqzcoLcgQcqzcoLcgQaaaaaaaabaabaabaabaabaabaabaabaabcgQcoLcqAcqBcgQcqCcqDcgQcqEcgQcgQcqFcgQcgQcqGcgScqHcqIcqJcqKcqLcqMcqNcqOcqPcqQcqRcpacqScqTcqUcqVcqWcqWcqWcqWcqXcqYcqZcracrbcracrccrdcrecrfcrgcrhcricrjcrkcrlcrmcrncrocrpcrqcrrcrscrtcrucrvcrwcrxcrybXubXucrzcrAcrBcrtcrCcrDcrDcrEcrDcrFcrGcrHcrIcpRcrJcrKcrLcrMcrLcrNcrOcrPcodcbjcokcbjcbjcrRcrSclsbLRbPtcgscrTcgscgscrUcrVcrWcrXcrYcqrcrZcsacsbcqkcsbcqkcsccqkcqkcgscsdcsecsfcsgaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaacieckbckbckbckbckbckbcshckbcsickbckbckbckbckbciecieaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcsjaacaabaMraMraaccgQcgQcqFcgQcgQcqFcgQcgQcgQcngcngcngcgQcgQcgQcgQcgQcgQcgQcoLcskcslcgQcsmcgQcgQcsncgQcsocspcoLcgQcsqcgScsrcsscstclRcsucsvcswckvcsxcsycszcsvcsAcsBcsCcsDcsDcsEcsFcsGcsHcsIcsJcsKcsLcsMchfcsNcsLcsLcsOcsPcsQcsRcsScrlcsTcsUcsVcsWcsXcsYcsZctactbcsYcsYctcctdctdctdctdctdctectfctgcthcthctictjctkctlctmctncpRctoctpctqctrctqctscttcrLctuctvctwbLRctxbLRcrSclsbLRbIictyctzctAcgscgscgscgscgsctBcqkctCctDcsccqkctEcqkclucqkctFcgsctGctHctIcgsaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaciectJctJctJctJctJctJctKckbctLctJcsickbckbckbckbcieaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaaccngcoLcoLcoLcoLctMctNcoLcoLcoQctOctOctPctOctOctOctOctOctOctOctOctOctOctOctOcoRcgQcskcqzctQcgQcsqctRctRctRctRctRctRcgWcgWcgWcgWcgWcgWcgWctSctTctUctVctWctXctYctYctZcuacsJcsLcsLcubcuccudcsLcsLcsLcuecufcugcrjcuhcuicujctdcukculcumcecculcuncuocuocuocupcuqcuqcuqcuqcurcusceccutcuucuvcuwcuxcuycuzcuAcpRcuBcuCcrLcuDcrLcuEcuFcuGcuHcuIcuJcuKbLRcuLcrSclscuMbIibPAcuNcuOcuPcuQbGGbGGcgscuRcuScuTcuUcuVcuWcuXcuYcuZcvacvbcgscvccvdcvecvfaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaacvgcjZcjZcjZcjZcjZcjZcjZcvhcvickbckbckbckbcvjckccieaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaaccngcoLcoLcoLcoLctMctNcoLcoLcoQctOctOctPctOctOctOctOctOctOctOctOctOctOctOctOcoRcgQcskcqzctQcgQcsqctRctRctRctRctRctRcgWcgWcgWcgWcgWcgWcgWctSctTctUcooctWctXctYctYctZcuacsJcsLcsLcubcuccudcsLcsLcsLcuecufcugcrjcuhcuicujctdcukculcumcecculcuncuocuocuocupcuqcuqcuqcuqcurcusceccutcuucuvcuwcuxcuycuzcuAcpRcuBcuCcrLcuDcrLcuEcuFcuGcqtcuIcuJcuKbLRcuLcrSclscuMbIibPAcuNcuOcuPcuQbGGbGGcgscuRcuScuTcuUcuVcuWcuXcuYcuZcvacvbcgscvccvdcvecvfaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaacvgcjZcjZcjZcjZcjZcjZcjZcvhcvickbckbckbckbcvjckccieaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaabaabaaccngcvkcvlcvmcoLcoLcvncoLcoLcsncgQcgQcgQcgQcgQcgQcqFcgQcgQcgQcgQcvocvocvocvocvocvocvocvocvocgQcsqcvpaaaaaaaaaaaacvqcvrcvscvtcvucvvcvwcvxcvycvzcvAcvBcvCcvDcvEcvEcvFcvGcvHcvIcvIcvIcvIcvJcvIcsLcsLcaAcvKcvLcvMcvNcvOcvPcuxcvQcvRcvScvTcvUcvVcvWcuqcuocvXcvYcvYcvYcvYcvZcwacwbcwccwdcwecwfcwgbQVcwhcwicpRcwjcwkcwlcwmcwncrLcwocpRcpRbIicwpbIibIibIicwqcwrcwsbIibGGcuNcwtcwucuQcuQcuQcgscgscgscgscgscgscgscgscgscgscgscgscgscgscgscgscgsaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaciecoJcoJcoJcoJcoJcoJcwvckbcoIcoJcwwckbckbckbckbcieaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcgQcwxcwxcwxcwxcwxcwxcwycwxcsncwzcgQcoLcwAcwBcwCcoLcwCcwDcwEcwBcvocwFcwFcvocwGcvocwHcwIcvocoLcqGcngaaacwJcwKcwLcwMcwNcwOcwPcwQcwRcwScwTcwUcwVcwWcwXcwYcwZcxacxbcxccxdcvHcxecxfcxfcxfcxgcvIcsLcsLcxhcxhcxhcxhcxicxhcxjcxjcxkcxhcxhcxlcxhcxmcxncxocxpcxocxqcxrcxscxtcxucxvcxwcxxcxycxzcxAcxBcxCcxDcpscpRcpRcxEcpRcxFcpRcxGcxHcxIcsMcxJcxKcxLcxMcxNcxOcxPcxQcxNbGGcuNcxRbGGbGGcxScxTcxUctybGGbGGbGGbGGbGGbGGbGGcxVcxWbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacieckbckbckbckbckbckbcshckbcwwckbckbckbckbckbciecieaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcgQcwxcwxcwxcwxcwxcwxcwycwxcsncwzcgQcoLcwAcwBcwCcoLcwCcwDcwEcwBcvocwFcwFcvocwGcvocwHcwIcvocoLcqGcngaaacwJcwKcwLcwMcwNcwOcwPcwQcwRcwScwTcwUcwVcwWcrQcwYcwZcxacxbcxccxdcvHcxecxfcxfcxfcxgcvIcsLcsLcxhcxhcxhcxhcxicxhcxjcxjcxkcxhcxhcxlcxhcxmcxncxocxpcxocxqcxrcxscxtcxucxvcxwcxxcxycxzcxAcxBcxCcxDcpscpRcpRcxEcpRcxFcpRcxGcxHcxIcsMcxJcxKcxLcxMcxNcxOcxPcxQcxNbGGcuNcxRbGGbGGcxScxTcxUctybGGbGGbGGbGGbGGbGGbGGcxVcxWbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacieckbckbckbckbckbckbcshckbcwwckbckbckbckbckbciecieaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxXcxYcxYcxYcxYcxYcxYcxZcyacybcyccydcyecyfcwycsncygcgQcoLcyhcwBcoLcoLcoLcwDcqBcwBcvocwFcyicwIcwIcyjcwIcykcvocylcqGcngaaacymcyncyocypcyqcwOcyrcyscytcyucvxcyvcsBcywcvBcyxctYcyyctYcyzcyAcyBcyCcyDcyDcyDcyEcvIcsLcsLcxhcyFcyGcyHcyIcyJcyKcyKcyLcyMcyNcyOcyPcyQcyRcyScyTcyUcyVcyWcyXcyYcyZczaczbcxBczcczdczecxxczfczgczhczicziczjczkczlczmcznczoczmczmczmczpczmczmczqczrczscztczuczvczwczxczyczyczzczyczyczyczyczAczBczyczyczyczCczDbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacieciecqyckbckbckbckbckbckbckbckbckbckbckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczEczFczFczFczFczGczHczIczJczKczKczLcwxcsncoLcqFcoLcoLcoLcoLcoLcoLcoLcoLcoLcvocvocwIczMcwIcvocwIczMcvoczNcsqcngaaacymczOczPczQczRczSczTczUczRczRczVczWczXczYczZczZcAacAbctYcAccAdcyBcyDcyDcyDcyDcAecvIcsLcsLcxhcAfcAgcAhcAicAjcAkcAkcAlcAmcAncAocyKcApcxhcAqcuocArcvYcAscAtcAucAvcAwcAxcxBcAycAzcAAcxBcABcACcADcAEcAEcAEcAEcAEcAFcAGcAHcAIcAJcAJcAKcAKcAJcALcAMcANcAOcAPcAPcAQcARcAPcAPcAPcAPcAPcAPcAPcAPcAPcAPcAPcAPcAScATcAUbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacnfcieciectJctJckbckbckbckbckbckbckbckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcAWcAXcAYcAXcAZcBacBbcBccBdcBecwxcsncgQcgQcBfcngcngcngcngcngcngcngcBgcvocwIcwIcwIcwIcBhcwIcwIcvocygcqGcngaaacymcBicBjcBkcBlcwOcBmcBncBocBpcvxcyvcsBcnycBqcsDcBrcsDcvBcvBcvBcBscBtcyDcyDcBucBvcvIcsLcBwcxhcBxcBycBzcBAcBAcBBcBCcBDcBAcBAcBEcyKcBFcxhcBGcuocBHcvYcvYcBIcvYcvYcAwcBJcxBcBKcBLcBMcxBcBNcBOcBwcBPcBPcBPcBPcBPcBQcBQcBQcBPcBPaaaaaaaaaaaacBRcBScBTcBUcAPcBVcBWcBXcBYcBZcCacCbcCccCdcCecCfcCgcChcCicAPcAScCjcCkcClcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCncCocieclzcieckbckbckbckbckbckbckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcCpcCqcCrcCsczJcCtcCucCvczJcCwcCxcCycskcgQcoLcngaaaaaaaaaaaaaaacngcoLcCzcwFcCAcwIcwIcwIcwIcCBcCCcCDcCEcngaaacCFcwKcCGcwMcCHcwOcwOcCIcCJcCKcCLcCMcCNcCOcBqcsDcCPcCQcCRcCScCTcvHcCUcyDcyDcyDcCVcvIcsLcsLcCWcCWcCXcCYcCZcCZcDacDbcDccDdcDdcDecDfcDgcDfcAqcuocArcDhcDicDjcDkcDlcAwcDmcxBcDncDocDpcxBcsLcBOcBPcBPaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDqcDrcDscDtcDucDvcDwcDwcDxcDwcDwcDwcDwcDwcDycDzcDAcDBcDCbGHcDDcjUbGHbGHaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciecDEcDFcDGciecieckbckbcDHckbckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcDIcAXcDJcAXcDKcDLcDMcDNcBbcDOcwxcDPcqBcgQcqzcvpaaaaaaaaaaaaaaacvpcDQcvocDRcDRcwFcDScDTcwIcDUcvocoLcqGcvpaaaaaaaaaaaacvqcDVcDWcDXcDXcvxcDYcvxcDZcsBcnycEacEbcEccEdcEecEecEecEfcEgcyDcEhcyDcEicvIcsLcsLcCWcEjcEkcElcEmcEncEocCWcEpcEqcErcEscEtcEucDfcEvcEwcExcDhcEycEzcEAcEBcECczbcxBcEDcEEcEFcxBcsLcBOcBPaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDqcEHcEIcEJcEKcELcEMcENcEOcDwcDwcEPcDwcDwcDycDAcDAcDAcEQbGHcERbGGbGHaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciccEScETclAcidciecieckbckcckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczEczFczFczFczFczGczHczIczJczKczKczLcwxcsncoLcqFcoLcoLcoLcoLcoLcoLcoLcoLcoLcvocvocwIczMcwIcvocwIczMcvoczNcsqcngaaacymczOczPczQczRczSczTczUczRczRczVczWczXczYczZczZcAacAbctYcAccAdcyBcyDcyDcyDcyDcAecvIcsLcsLcxhcAfcAgcAhcAicAjcAkcAkcAlcAmcAncAocyKcApcxhcAqcuocArcvYcAscAtcAucAvcAwcAxcxBcAycAzcAAcxBcABcACcADcAEcAEcAEcAEcAEcAFcAGcAHcAIcAJcAJcAKcAKcAJcALctVcwXcuHcAPcAPcAQcARcAPcAPcAPcAPcAPcAPcAPcAPcAPcAPcAPcAPcAScATcAUbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacnfcieciectJctJckbckbckbckbckbckbckbckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcAWcAXcAYcAXcAZcBacBbcBccBdcBecwxcsncgQcgQcBfcngcngcngcngcngcngcngcBgcvocwIcwIcwIcwIcBhcwIcwIcvocygcqGcngaaacymcBicBjcBkcBlcwOcBmcBncBocBpcvxcyvcsBcnycBqcsDcAMcsDcvBcvBcvBcBscBtcyDcyDcBucBvcvIcsLcBwcxhcBxcBycBzcBAcBAcBBcBCcBDcBAcBAcBEcyKcBFcxhcBGcuocBHcvYcvYcBIcvYcvYcAwcBJcxBcBKcBLcBMcxBcBNcBOcBwcBPcBPcBPcBPcBPcBQcBQcBQcBPcBPaaaaaaaaaaaacBRcBScBTcBUcAPcBVcBWcBXcBYcBZcCacCbcCccCdcCecCfcCgcChcCicAPcAScCjcCkcClcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCmcCncCocieclzcieckbckbckbckbckbckbckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcCpcCqcCrcCsczJcCtcCucCvczJcCwcANcCycskcgQcoLcngaaaaaaaaaaaaaaacngcoLcCzcwFcCAcwIcwIcwIcwIcCBcCCcCDcCEcngaaacCFcwKcCGcwMcCHcwOcwOcCIcCJcCKcCLcCMcCNcCOcBqcsDcCPcCQcCRcCScCTcvHcCUcyDcyDcyDcCVcvIcsLcsLcCWcCWcCXcCYcCZcCZcDacDbcDccDdcDdcDecDfcDgcDfcAqcuocArcDhcDicDjcDkcDlcAwcDmcxBcDncDocDpcxBcsLcBOcBPcBPaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDqcDrcDscDtcDucDvcDwcDwcDxcDwcDwcDwcDwcDwcDycDzcDAcDBcDCbGHcDDcjUbGHbGHaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciecDEcDFcDGciecieckbckbcDHckbckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcDIcAXcDJcAXcDKcDLcDMcDNcBbcDOcwxcDPcqBcgQcqzcvpaaaaaaaaaaaaaaacvpcDQcvocDRcDRcwFcDScDTcwIcDUcvocoLcqGcvpaaaaaaaaaaaacvqcDVcDWcDXcDXcvxcDYcvxcDZcsBcnycEacEbcEccEdcEecEecEecAOcEgcyDcEhcyDcEicvIcsLcsLcCWcEjcEkcElcEmcEncEocCWcEpcEqcErcEscEtcEucDfcEvcEwcExcDhcEycEzcEAcEBcECczbcxBcEDcEEcEFcxBcsLcBOcBPaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDqcEHcEIcEJcBrcELcEMcENcEOcDwcDwcEPcDwcDwcDycDAcDAcDAcEQbGHcERbGGbGHaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciccEScETclAcidciecieckbckcckbciecieaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEUcEUcEUcEUcEUcwxcEVcEWcEWcEWcEWcEWaXpcEYcEYcEYcEWcEWcEWcEWcEWcEWcEWcEYcEYcEYcvocvocvocvocvocvocvocqFcEZcFacFacFacFacFacvqcvxcvxcvxcvxcvxcvxcvxcFbcsBcnycFccFdcFecFfcFgcFhcFicFjcFkcFlcFmcFncFocvIcsLcsLcCWcFpcFqcFrcFscFscFtcCWcFucFvcFvcFwcFvcFxcFycFzcFzcFzcFAcFBcFCcFDcDlcFEczbcFFcFFcFFcBPcBPcsLcBOcBQaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaacDqcFHcFIcFJcFKcFLcFMcFNcFOcDwcDwcDwcDwcFPcFQcFRcFScFTcFUbGHcERbGGbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacicciccicciccidcidcieciecieciecifaabaabaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaacFVcFWcFXcFYcFXcFZcFWcGacGbcGccGccGdcGecGfcGgcGhcGicGjcGkcGlcGmcGmcGncGmcGocGpcGpcGqcGrcGscGtcGucGtcGtcGtcGscGtcGtcGvcGwcGxcGycsBcnycGzcGAcGBcGCcsDcGDczZcGEcGFcGGcGHcGIcGJcGKcsLcsLcCWcGLcGMcGNcGOcGPcGQcCWcGRcGScGTcGUcGVcGWcGXaaaaaaaaacFAcDhcGYcDhcDhcGZcHacHbcHccHdcHechfcsLcBOcBQaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaacBScBRcHfcHgcBScHhcHicHjcHkcHlcHmcHncDwcDwcHocHpcHqcHrcHsbGHcERbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFVcFWcFXcFXcFXcFZcFWcHtcFXcHucFXcHvcHwcHxcHycHzcHAcHzcHBcHCcHDcHEcHDcHDcHFcnzcnzcHDcHGcHDcHDcHDcHDcHDcHDcHDcHDcHDcHDcHHcHIcHJcHKcHLcHMcHNcHOcHPcHQcHRcHScHTcHUcHVcHWcHXcHYcHZcAEcIacIbcIccIdcIecIfcIgcIhcDfcIicErcIjcIkcErcIlcGXaaaaaaaaacImcIncIocIpcIqcGZcIrcIscItcIucIvcracrecIwcBQaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaacBRcIxcIycIzcBRcAPcAPcAPcAPcAPcAPcIAcHncIBcICcIDcIEcAPcAPbGHcERbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFVcIFcFXcIGcFXcFZcIHcIIcIJcIKcILcIMcINcIOcIPcIQcIRcIScITcIUcIVcIWcIXcIYcqVcIZcqVcIUcJacIUcIUcIUcIUcIUcIUcIUcIUcIUcIUcJbcHDcJccJdcJecJfcJgcJhcJicJjcJkcJlcJmcJncJocJpcJqcJrcGHcrecJscJtcJucEmcElcEmcEmcJvcDfcJwcErcErcEscErcJxcGXaaaaaaaaacImcJycJzcJAcJBcJCcJDcJEcJFcHdcsLcuccJGcBOcBPaaaaaaaaaaaaaaaaabcBRcBRcBRcBRcBRcBRcBRcBRcBRcJHcJIcJJcxNcJKcJKcJLcBRaabcAPcAPcJMcAPcJNcJOcJPcAPcJQcuQcERbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJRcJScEWcEWcEWcEWcEXcEYcEYcEYcEYcJTcEYcJUcJVcJVcJWcJXcJYcEYcJZcKacKbcKbcKccKbcKdcKbcKbcKecKfcKbcKbcKfcKfcKfcKbcKbcKbcKbcKgcKhcKicKjcKkcKlcKmcKncKocKncKncKncKncKpcKqcKrcKscKtcGKcsLcKucKvcKwcKxcKycKzcKAcKBcDfcKCcKDcKEcKFcKGcKHcFyaaaaaaaaacImcKIcKJcKKcIqcKLcKMcJDcKNcHdcKOchfchfcBOcBPaaaaaaaaaaaaaaaaaacBRcKPcKQcKRcKScKTcKUcKVcxNcKWcKXcKYcxNcJKcKZcLacBRaabaabcLbcLccLdcLecLfcLgcLbbGGbGGcERcLhbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalwalvalvalwalvalvaabamhaabayiaaaayiayicLicLjcLkcLkcLkcLlcLmcEYcLncLocLpcLqcLrcLscEYcLtcLucKfcLvcLwcLxcLycLzcLAcLBcLCcLDcKbcLCcLEcLFcLGcLGcLHcKbcLIcLJcHCcLKcnycLLcLMcLNcLOcLPcLQcLPcLRcLScLTcLUcLVcLWcGKcGKcKucKvcCWcCWcLXcCWcCWcKvcLYcLZcLZcLZcMacLZcMbcFyaaaaaaaaacImcImcImcImcImcFFcMccMdcMecHdcsLcsLcMfcBOcBPaaaaaaaaaaaaaaaaaacBRcJKcMgcJKcMhcMicEHcJIcxNcxQcMjcxQcxNcJKcJKcMkcBRaabaaacLbcMlcMmcLecLecMncLbcMobGGcERbKlcMpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaaaaabaabaaaaabaabaaaaaaaabaabaabaabaabcLicLicMqcLicLicMrcMscEYcEYcEYcEYcEYcEYcEYcEYcLicLucKfcMtcMucMvcMwcMwcMwcMwcMxcMycMzcLGcMAcLGcLGcMBcLGcMCcMDcMEcMFcLKcnycMGcHQcMHcLOcMIcMJcMKcLOcMLcMMcMNcMOcMPcMQcMRcMScMTcMUcMUcMVcMWcMXcMYcMZcNacrecrecNbcsLcNccBPcBPcBPcBPcBPaaaaaaaaaaaacNdcNecNfcNgcHdcNhchfchfcBOcBPcBPcBPcBPcBPaaaaaacBRcJKcJKcJKcNicNjcNkcNlcNmcNncNocNpcxNcNqcNrcNscBRaaaaaacLbcNtcLecNucLecNvcLbbGGbGGcERcMpbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaacFVcFWcFXcFYcFXcFZcFWcGacGbcGccGccGdcGecGfcGgcGhcGicGjcGkcGlcGmcGmcGncGmcGocGpcGpcGqcGrcGscGtcGucGtcGtcGtcGscGtcGtcGvcGwcGxcGycsBcnycGzcGAcCxcGCcsDcGDczZcGEcGFcGGcGHcGIcGJcGKcsLcsLcCWcGLcGMcGNcGOcGPcGQcCWcGRcGScGTcGUcGVcGWcGXaaaaaaaaacFAcDhcGYcDhcDhcGZcHacHbcHccHdcHechfcsLcBOcBQaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaacBScBRcEfcHgcBScHhcHicHjcHkcHlcHmcHncDwcDwcHocHpcHqcHrcHsbGHcERbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFVcFWcFXcFXcFXcFZcFWcHtcFXcHucFXcHvcHwcHxcHycHzcHAcHzcEKcHCcHDcHEcHDcHDcHFcnzcnzcHDcHGcHDcHDcHDcHDcHDcHDcHDcHDcHDcHDcHHcHIcHJcHKcHLcHMcHNcHOcHPcHQcHRcHScHTcHUcHVcHWcHXcHYcHZcAEcIacIbcIccIdcIecIfcIgcIhcDfcIicErcIjcIkcErcIlcGXaaaaaaaaacImcIncIocIpcIqcGZcIrcIscItcIucIvcracrecIwcBQaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaacBRcIxcIycIzcBRcAPcAPcAPcAPcAPcAPcIAcHncIBcICcIDcIEcAPcAPbGHcERbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFVcIFcFXcIGcFXcFZcIHcIIcIJcIKcILcIMcINcIOcIPcIQcIRcIScGBcIUcIVcIWcIXcIYcqVcIZcqVcIUcJacIUcIUcIUcIUcIUcIUcIUcIUcIUcIUcJbcHDcJccJdcJecJfcJgcJhcJicJjcJkcJlcJmcJncJocJpcJqcJrcGHcrecJscJtcJucEmcElcEmcEmcJvcDfcJwcErcErcEscErcJxcGXaaaaaaaaacImcJycJzcJAcJBcJCcJDcJEcJFcHdcsLcuccJGcBOcBPaaaaaaaaaaaaaaaaabcBRcBRcBRcBRcBRcBRcBRcBRcBRcJHcJIcJJcxNcJKcJKcJLcBRaabcAPcAPcJMcAPcJNcJOcJPcAPcJQcuQcERbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJRcJScEWcEWcEWcEWcEXcEYcEYcEYcEYcJTcEYcJUcJVcJVcJWcJXcJYcEYcJZcKacKbcKbcKccKbcKdcKbcKbcKecKfcKbcKbcKfcKfcKfcKbcKbcKbcKbcKgcKhcKicKjcKkcKlcHfcKncKocKncKncKncKncKpcKqcKrcKscKtcGKcsLcKucKvcKwcKxcKycKzcKAcKBcDfcKCcKDcKEcKFcKGcKHcFyaaaaaaaaacImcKIcKJcKKcIqcKLcKMcJDcKNcHdcKOchfchfcBOcBPaaaaaaaaaaaaaaaaaacBRcKPcKQcKRcKScKTcKUcKVcxNcKWcKXcKYcxNcJKcKZcLacBRaabaabcLbcLccLdcLecLfcLgcLbbGGbGGcERcLhbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalwalvalvalwalvalvaabamhaabayiaaaayiayicLicLjcLkcLkcLkcLlcLmcEYcLncLocLpcLqcLrcLscEYcLtcLucKfcLvcLwcLxcLycLzcLAcLBcLCcLDcKbcLCcLEcLFcLGcLGcLHcKbcLIcLJcHCcLKcnycLLcLMcLNcLOcLPcLQcLPcLRcLScLTcLUcLVcLWcGKcGKcKucKvcCWcCWcLXcCWcCWcKvcLYcLZcLZcLZcMacLZcMbcFyaaaaaaaaacImcImcImcImcImcFFcMccMdcMecHdcsLcsLcMfcBOcBPaaaaaaaaaaaaaaaaaacBRcJKcMgcJKcMhcMicEHcJIcxNcxQcHBcxQcxNcJKcJKcMkcBRaabaaacLbcMlcMmcLecLecMncLbcMobGGcERbKlcMpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaaaaabaabaaaaabaabaaaaaaaabaabaabaabaabcLicLicMqcLicLicMrcMscEYcEYcEYcEYcEYcEYcEYcEYcLicLucKfcMtcMucMvcMwcMwcMwcMwcMxcMycMzcLGcMAcLGcLGcMBcLGcMCcMDcMEcMFcLKcnycMGcHQcMHcLOcMIcMJcMKcLOcMLcITcMNcMOcMPcMQcMRcMScMTcMUcMUcMVcMWcMXcMYcMZcNacrecrecNbcsLcNccBPcBPcBPcBPcBPaaaaaaaaaaaacNdcNecNfcNgcHdcNhchfchfcBOcBPcBPcBPcBPcBPaaaaaacBRcJKcJKcJKcNicNjcNkcNlcNmcNncNocNpcxNcNqcNrcNscBRaaaaaacLbcNtcLecNucLecNvcLbbGGbGGcERcMpbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNwaaaalwaaacNxcNycNzaaacNxcNycNzaaacNxcNycNzaaaaaacLicNAcNBcNCcLicNDcNEcLkcLkcLkcLkcLkcLkcLkcLkcLkcNFcKfcNGcLGcMBcNHcLGcLGcLGcNIcLGcNGcNGcLGcLGcLGcLGcNJcNKcMDcNLcHDcNMcywcHQcHQcNNcLOcNOcNPcNQcLOcNRcHVcNScNTcNUcNVcNWcNXcsLcNYcpscNYcsLcNZcOacObcObcObcObcOccOdcOdcOdcOdcOdcOecBPaaaaaaaaaaaacNdcNecNfcOfcOgcsLcxMchfcBOcsLcsLcsLcsKcBPaaaaaacBRcxNcxNcxNcxNcOhcEHcOicOjcOkcOlcOmcxNcOncOocOpcBRaaaaaacLbcOqcOrcOscLecOtcLbcOubGGcERbGHaabaabaabaabaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaacNxcOvcNzaaacNxcOvcNzaaacNxcOvcNzaaaayicLicNBcNBcNBcLicLicOwcOxcLicLicOxcOxcLicLicOxcOxcLucKfcNGcOycLGcOzcOAcOBcOBcMAcLGcNGcOCcLGcLGcLGcLGcODcOEcOFcOGclXcOHcOIcOJcOKcOLcLOcNOcOMcONcLOcOOcHVcGKcOPcGHcOQcORcOScOTcOUcOVcOWcOTcOXcOTcOTcOTcBPcBPcBPcBPcBPcBPcBPcBPcOYcBPaaaaaaaaaaaacNdcOZcPacPbcHdcsKcPcchfcPdcPecPecPfcsLcBPaaaaaacBRcKPcKQcKRcPgcPhcNkcPicPjcPkcPlcPmcPncPocPmcPpcBRaaaaaacLbcLbcPqcPrcPscLbcLbbGHbGGcPtcuQcuQcuQbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaacNxcOvcNzaaacNxcOvcNzaaacNxcOvcNzaaaayicLicNBcNBcNBcLicLicOwcOxcLicLicOxcOxcLicLicOxcOxcLucKfcNGcOycLGcOzcOAcOBcOBcMAcLGcNGcOCcLGcLGcLGcLGcODcOEcOFcOGclXcOHcOIcOJcOKcOLcLOcNOcOMcONcLOcOOcHVcGKcOPcGHbDycORcOScOTcOUcOVcOWcOTcOXcOTcOTcOTcBPcBPcBPcBPcBPcBPcBPcBPcOYcBPaaaaaaaaaaaacNdcOZcPacPbcHdcsKcPcchfcPdcPecPecPfcsLcBPaaaaaacBRcKPcKQcKRcPgcPhcNkcPicPjcPkcPlcPmcPncPocPmcPpcBRaaaaaacLbcLbcPqcPrcPscLbcLbbGHbGGcPtcuQcuQcuQbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaayiaabcNxcOvcNzaaacNxcOvcNzaabcNxcOvcNzaaaaabcLicMrcPucNDcLiaaaaabaaaaaaaaaaaaaaaaabaaaaaacOxcLucKbcPvcLGcPwcPxcPycPzcPAcPzcPBcPzcPCcPDcLCcPEcNGcNGcNKcPFcPGcPHcPIcPJcPKcPLcPMcPNcPOcPPcPQcPRcPScPTcPUcPUcPVcPWcPXcPYcPZcQacQbcQccQdcQecQfcQgcQhcQicQicQicQicQicQicQjcBPcOYcQkcQkcQkcQkcQkcQkcQlcQmcQlcQncQkcQkcQkcQkcQkcQkcBOcsLcBPaaaaaacBRcJKcKZcJKcQocMicEHcQpcQqcQrcQscEHcEHcQtcEHcQucBRaaaaabaabcLbcLbcQvcLbcLbaaabGHbGGcERcuQcQwcQxbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaacNxcOvcNzaabcNxcOvcNzaaacNxcOvcNzaabaaacLicLicOxcLicLiaaaaabaabaaaaabaaaaabaabaaaaaacQycQzcKbcQAcQBcQBcQCcKbcKbcKbcKbcKbcKbcKbcKbcKbcKbcKbcKbcKbcJZcQDcJZcQEcJZcFacQFcQGcQHcQIcQIcQIcQJcQKcPTcQLcQMcQNcQOcQPcQQcPZcQRcQScQTcQUcQVcQWcQXcQYaabcQZcQZcQZcQZcQZcRacBPcRbcRccRdcRecRfcRgcQkcRhcRicRjcQkcRkcRlcRmcRncRocQkcBOcsLcBPaaaaaacBRcJKcJKcJKcRpcRqcNkcRrcRscRtcRucRvcRvcRwcEHcRxcBRaabaabaaaaaaaaacRyaaaaaaaaabGHbGGcERcuQbGGbGGbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaacNxcOvcNzaabcNxcOvcNzaaacNxcOvcNzaabaaacLicLicOxcLicLiaaaaabaabaaaaabaaaaabaabaaaaaacQycQzcKbcQAcQBcQBcQCcKbcKbcKbcKbcKbcKbcKbcKbcKbcKbcKbcKbcKbcJZcQDcJZcQEcJZcFacQFcKmcQHcQIcQIcQIcMjcQKcPTcQLcQMcQNcQOcQPcQQcPZcQRcQScQTcQUcQVcQWcQXcQYaabcQZcQZcQZcQZcQZcRacBPcRbcRccRdcRecRfcRgcQkcRhcRicRjcQkcRkcRlcRmcRncRocQkcBOcsLcBPaaaaaacBRcJKcJKcJKcRpcRqcNkcRrcRscRtcRucRvcRvcRwcEHcRxcBRaabaabaaaaaaaaacRyaaaaaaaaabGHbGGcERcuQbGGbGGbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvayiaaacNxcOvcNzaabcNxcOvcNzaaacNxcOvcNzaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcRzcRAcRAcRAcRAcQycRBcLucRCcRDcREcREcRFcRGcRHcRIcRIcRIcRIcRJcRKcRLcRMcRMcRNcRNcRMcROcRPcRQcRRcRRcRScRTcRUcRVcRWcRXcRXcRYcRZcSacSbcSccSdcQPcSecPZcSfcSgcShcSicSjcSkcSlcSmcQicSncSocSpcSqcQZcRacBQcOYcQkcSrcSscStcSucSvcSwcSxcSycQkcSzcSAcSBcSAcSCcQkcBOcsLcBPcBPaaacBRcxNcxNcxNcxNcSDcEHcQpcSEcSFcQscEHcSGcSHcSHcSIcSJcSKaabaaaaaaaaaaaaaaaaaaaaabGHbGGcPtbGGbGGcSLbGHaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaabaaaaabaabcSMaabaabaabcSMaabaaaaabcSMaabaaaaaaaaaaaaaaaaaaaaaaaaaaacRzcRzcRzcSNcSOcSPcRAcSQcSRcNFcRCcRCcSScSTcKbcKbcMscSUcSUcSUcSUcSVcSWcSXcSWcSWcSWcRRcRRcSYcSZcTacTbcTccRXcTdcTecRXcRXcRXcRXcTfcPTcTgcThcQNcSdcQPcSdcPZcSfcSgcTicTjcTkcTlcTmcTnaabcTocTpcSqcTqcQZcRacBQcRbcRccTrcTscSAcTtcQkcTucTvcTwcQkcTxcTycSAcTzcTAcQkcBOcsLcTBcBPaaacBRcKPcKQcKRcTCcPhcNkcTDcTEcTFcTGcTGcTHcTIcTJcTKcBRaabaabaabaaaaaaaaaaaaaaaaaabGHcTLcERbGHbGHbGHbGHbGHaabaabaabcTMcTMcTMcTMcTMcTMaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabcTNcTOcTOcTPcTQcTRcTRcTRcTQcTRcTRcTRcTQcTRcTRcTRcTScTOcTOcTOcTOcTOcTTcTUcTVcTWcTXcTYcTZcUacUbcNBcLucUccRCcKbcKbcKbcUdcMscSUcUecUfcUgcUhcUicUjcUkcUlcUmcUncUocUpcUqcUrcUscUncUtcUucTecUvcRXcRXcRXcUwcPTcUxcUxcSdcUycUzcUAcUBcUCcUDcUEcUFcUGcUHcUIcSmcUJcSncUKcSqcSqcQZcRacBQcOYcQkcULcUMcUNcQncQkcUOcUPcQncQkcUQcURcUScUTcUTcQkcBOcsLcUUcBPaaacBRcJKcMgcJKcUVcMicEHcUWcUXcUYcEHcUZcVacxNcxNcxNcBRaaaaaaaabaabaaaaaaaaaaaaaaabGHcJQcERbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaabaaaaabaabcSMaabaabaabcSMaabaaaaabcSMaabaaaaaaaaaaaaaaaaaaaaaaaaaaacRzcRzcRzcSNcSOcSPcRAcSQcSRcNFcRCcRCcSScSTcKbcKbcMscSUcSUcSUcSUcSVcSWcSXcSWcSWcSWcRRcRRcSYcSZcTacTbcOQcRXcTdcTecRXcRXcRXcRXcTfcPTcTgcThcQNcSdcQPcSdcPZcSfcSgcTicTjcTkcTlcTmcTnaabcTocTpcSqcTqcQZcRacBQcRbcRccTrcTscSAcTtcQkcTucTvcTwcQkcTxcTycSAcTzcTAcQkcBOcsLcTBcBPaaacBRcKPcKQcKRcTCcPhcNkcTDcTEcTFcTGcTGcTHcTIcTJcTKcBRaabaabaabaaaaaaaaaaaaaaaaaabGHcTLcERbGHbGHbGHbGHbGHaabaabaabcTMcTMcTMcTMcTMcTMaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabcTNcTOcTOcTPcTQcTRcTRcTRcTQcTRcTRcTRcTQcTRcTRcTRcTScTOcTOcTOcTOcTOcTTcTUcTVcTWcTXcTYcTZcUacUbcNBcLucUccRCcKbcKbcKbcUdcMscSUcUecUfcUgcUhcUicUjcUkcUlcUmcUncUocUpcUqcUrcUscUncUtcUucTecUvcRXcRXcRXcUwcPTcUxcUxcSdcUycUzcUAcMMcUCcUDcUEcUFcUGcUHcUIcSmcUJcSncUKcSqcSqcQZcRacBQcOYcQkcULcUMcUNcQncQkcUOcUPcQncQkcUQcURcUScUTcUTcQkcBOcsLcUUcBPaaacBRcJKcMgcJKcUVcMicEHcUWcUXcUYcEHcUZcVacxNcxNcxNcBRaaaaaaaabaabaaaaaaaaaaaaaaabGHcJQcERbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaabaaaaabaabcVbaabaaaaabcVbaabaaaaabcVbaabaaaaaaaaaaaaaaaaaaaaaaaaaaacRzcRzcRzcVccVdcVecRAcVfcNBcNEcSRcSRcSRcSRcVgcSRcUbcSUcVhcVicVjcVkcVlcVmcVncVocVpcVqcVrcVscVtcVucVvcVwcUtcTdcTecVxcVycRXcRXcVzcPTcVAcVBcSdcVCcQPcVDcVEcVFcVGcVHcVIcVJcVKcVJcVLaabcQZcQZcQZcQZcQZcRacBPcOYcQkcVMcVNcVOcVPcVQcVRcVScVTcVUcVVcVWcSAcVXcVYcQkcBOcsLcVZcBPaaacBRcJKcJKcJKcWacWbcWccWdcWecWfcEHcEHcEHcEHcWgcWhcWiaaaaaaaaaaabaabaaaaaaaaaaaabGHbGHcERbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvalwaabcNxcWjcNzaaacNxcWjcNzaaacNxcWjcNzaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabcRzcRAcRAcRAcRAcWkcWlcWmcNBcWncNBcNBcMscWocNBcSUcWpcWqcVjcWrcUicWscWtcWucWucWvcWwcWxcWycWzcWAcWvcWBcWCcWDcWEcWFcWGcWHcWIcWJcWKcUAcWLcWMcWNcWOcWPcWQcWRcWScWTcWUcWVcWWcWXcQicSncWYcWZcWZcQZcRacBPcOYcQkcQkcQkcQkcQkcXacXbcXccXdcXecXfcXgcXhcXicXjcQkcBOcXkcXlcXlcXlcXmcXmcXmcXmcXmcXncXocXpcXqcXrcNkcXscNkcXscNkcXtcWiaaaaaaaaaaaaaabaabaaaaaaaaaaaabGHcERbGHaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNxcWjcNzaabcNxcWjcNzaaacNxcWjcNzaaaaaaaaaaaaaabaaaaaaaaaaaaaabaabaabaaaaaaaabaabcXucXucXucXucXucXucXucXvcXucXucSUcXwcXxcVjcWrcUicXycUicUicXzcRRcXAcXBcUrcXCcXDcRRcXEcRXcTecXFcXGcXHcWHcXIcXJcXKcXLcXMcXNcXOcXLcXPcXQcXRcXScSdcXTcXUcXVcXWaabcTocXXcXYcXZcQZcRacBQcYacYbcYbcYbcYccQkcYdcUMcYecYfcURcYgcUTcUTcURcYhcQkcBOcYichfcsLcYjcYkcBPaaaaaacBRcYlcYmcYncYocYlcYmcYpcYqcYlcYmcYrcBRaabaabaabaabaabaabaabaabaabaabbGHcERbGHbGHbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabcNxcWjcNzaaacNxcWjcNzaaacNxcWjcNzaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaabaabaabcXucYtcYtcYucYvcYwcYwcYxcYycYycYzcYAcYBcVjcWrcVjcYCcVjcVjcVjcRRcYDcYEcYFcYGcYHcYIcYJcYKcYLcYMcYMcYMcYNcYOcYPcYQcYRcYScVCcQPcYTcYUcYVcYWcYXcSdcXTcYYcYZcZacZbcSncZccWZcWZcQZcRacBQcOYchfchfchfckJcQkcZdcZecZfcZgcURcZhcZicUTcZjcZkcQkcBOcYichfcsLcJGcsLcBPaaaaaacBRcZlcZmcZncxNcZocZpcZqcxNcZrcZscZtcBRaabaabaaaaaaaaaaaaaaaaaaaaaaaabGHcERbGGbGGbGHaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabcNxcWjcNzaaacNxcWjcNzaaacNxcWjcNzaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaabaabaabcXucYtcYtcYucYvcYwcYwcYxcYycYycYzcYAcYBcVjcWrcVjcYCcVjcVjcVjcRRcYDcYEcYFcYGcYHcYIcYJcQGcYLcYMcYMcYMcYNcYOcYPcYQcYRcYScVCcQPcYTcYUcYVcYWcYXcSdcXTcYYcYZcZacZbcSncZccWZcWZcQZcRacBQcOYchfchfchfckJcQkcZdcZecZfcZgcURcZhcZicUTcZjcZkcQkcBOcYichfcsLcJGcsLcBPaaaaaacBRcZlcZmcZncxNcZocZpcZqcxNcZrcZscZtcBRaabaabaaaaaaaaaaaaaaaaaaaaaaaabGHcERbGGbGGbGHaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabcNxcWjcNzaaacNxcWjcNzaabcNxcWjcNzaabaabaabaabaaaaabaaaaaaaabaabaaaaaaaaaaabaaaaaacXucYtcYtcYucZucZucZucZvcZwcZxcSUcZycZzcZAcZBcZCcZDcZEcZFcZFcZGcZHcZIcVjcVjcVjcZJcZKcZLcZMcZNcZOcZPcZQcZRcSUcZScZScZTcVCcQPcZUcZVcZWcZXcZYcSdcZZdaadabdacdadcQZcQZcQZcQZcQZcRacBQcOYdaecsLcsLckJcQkdafcSAcSAdagdahdaidajcUTdakdalcQkcBOcYicMfcsLcuccTBcBPaaaaaacBRcMkcJKcJKcxNcMkcJKcJKcxNcMkcJKcJKcBRaaaaabaabaaaaaaaaaaaaaaacuQcuQbGHdamcuQbGGbGHbGHbGHcTMcTMaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamhaabcNxdancNzaaacNxdancNzaaacNxdancNzaabalvaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabcXudaodapcZucZucZudaqdardardardardardardardasdatdaudavdawdawdawdaxdaydazdaAdaBdawdaydaCdaDdaEcZOdaFcZQcZRdaGdaHdaIdaJdaKdaLdaMdaNcYXdaOdaPdaQdaRdaSdaTcWXdaUcSndaVdaWdaWcQZcRacBPcOYchfcBNdaXckJcQkdaYcSAdaZdbacURdbbdbccUTdbddbecQkcBOcYichfcsLchfchfcBPaabaabcBRdbfcKZcJKcxNdbfcKZcJKcxNdbfcKZcJKcBRaaaaaaaabaabaaaaaaaaaaaacuQdbgbGGcERcuQdbhcuQdbibGHaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamhaabcNxdancNzaaacNxdancNzaaacNxdancNzaabalvaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabcXudaodapcZucZucZudaqdardardardardardardardasdatdaudavdawdawdawdaxdaydazdaAdaBdawdaydaCcQJdaEcZOdaFcZQcZRdaGdaHdaIdaJdaKdaLdaMdaNcYXdaOdaPdaQdaRdaSdaTcWXdaUcSndaVdaWdaWcQZcRacBPcOYchfcBNdaXckJcQkdaYcSAdaZdbacURdbbdbccUTdbddbecQkcBOcYichfcsLchfchfcBPaabaabcBRdbfcKZcJKcxNdbfcKZcJKcxNdbfcKZcJKcBRaaaaaaaabaabaaaaaaaaaaaacuQdbgbGGcERcuQdbhcuQdbibGHaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaabaaaaaaaaaaabaabaabaaaaaaaabaabaaaalvaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabcXudbjcZucZucZucZucZudardbkdbldbmdbndbodardbpdbqdbrcXxcVjcVjdbsdbtdbudbvdbwdbxdbydbzcSUdbAdaEcZOdbBcZQdbCcSUdbDcZSdbEdbFcSddaMdaNdbGcSddaPdaQcXTcXUdbHcXWdbIcTodbJdbKdbLcQZcRacBPcOYchfdbMdbMckJcQkcQkdbNdbOcQkdbPcQkcQkcQkcQkcQkcQkcBOcYichfcsLcsLdbQcBPaaaaaacBRdbRcJKcJKcxNdbRcJKcJKcxNdbRcJKcJKcBRaaaaaaaaaaabaabaaaaaadbScuQbGGbGGcERcuQbGGbGGbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvalwalwamhalvalvalvalvalwalvalvalwdbTaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXudbUcZwcZucZucZudbVdardbldbWdbXdbYdbZdcadcbdccdcddcecVjdcfdcgdchdcidcjdckdcldcmdcndcodbrcXxdcpdcqcZMdcrcSUdcscZSdctdcucSddaMdaNcYXcSddcvdaQcXTdcwdcxcZadcycSndczdaWdaWcQZcRacBQcOYdcAcuccABckJdcBcQkcQkdcCcQkdcDdcEdcFchfdcGdcHcsLcBOcYichfcsLdcIcTBcBPaaaaaacBRcBRcBRcBRcBRcBRcBRcBRcBRcBRcBRcBRcBRaaaaaaaaaaaaaabaabaaaaaabGHbGHbGHcERcuQdcJdcKbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcXucXucXudcLdcMdcMdcMdardcNdcOdcPdcPdcQdcRdawdcSdcTdcUdcVdcWdcXdcYdcZddaddbddcddddcYddeddfddgddhddiddjddkddldbDcZSddmddncSddaMcSdddocSddaPdaQcXTcXUddpcXWdbIcQZcQZcQZcQZcQZcRacBQddqcYccuccTBddrddsddsddsddtchfdduddvddwchfddxcYbcYbddyddzcMfcsLcsLcBPcBPaaaaaaddAaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaabaaabGHcJQddBddCcuQddDddEbGGbZZaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/cyberiad/z4.dmm b/_maps/map_files/cyberiad/z4.dmm index cf6f91d08f6..d1d1e19b27d 100644 --- a/_maps/map_files/cyberiad/z4.dmm +++ b/_maps/map_files/cyberiad/z4.dmm @@ -247,6 +247,7 @@ "eM" = (/obj/machinery/field/generator,/turf/simulated/floor/plating/airless,/area/space) "eN" = (/obj/item/weapon/grenade/chem_grenade/drugs,/turf/simulated/floor/plating,/area/exploration/methlab) "eO" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/drugs/meth,/obj/item/weapon/reagent_containers/glass/beaker/drugs/meth,/obj/item/weapon/reagent_containers/glass/beaker/drugs/meth,/turf/simulated/floor/plating,/area/exploration/methlab) +"eP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/constructionsite/atmospherics) "fe" = (/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/constructionsite/medical) "ff" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/constructionsite/medical) "fg" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/constructionsite/medical) @@ -262,7 +263,6 @@ "fv" = (/turf/simulated/wall,/area/constructionsite/atmospherics) "fw" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating/airless,/area/constructionsite/atmospherics) "fx" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1443; input_tag = "d_air_in"; name = "Mixed Air Supply Control"; output_tag = "d_air_out"; pressure_setting = 2000; sensors = list("d_air_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating/airless,/area/constructionsite/atmospherics) -"fy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/constructionsite/atmospherics) "fz" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; external_pressure_bound = 0; frequency = 1443; icon_state = "in"; id_tag = "d_air_out"; internal_pressure_bound = 2000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/constructionsite/atmospherics) "fA" = (/obj/machinery/light/small{dir = 1},/obj/machinery/air_sensor{frequency = 1443; id_tag = "d_air_sensor"; output = 7},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/constructionsite/atmospherics) "fB" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/plating/airless,/area/constructionsite/atmospherics) @@ -458,13 +458,13 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdhdtdtdhfrfqfrfqfrfqfqfmfqfmfqfmfqfmdCdidididCfhfhfhfhfififififhfhfhfhfhfhdhdjdjdhabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdhdtdtdhfqfqfqfqfqfqfqfqfmfmfmfmdhdhdhdidididhdhdhfhfhfififififhfhfhfhfhfhdhdjdjdCabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtdtdtfufrfqfrfqfrfqfrfrfrfqfqdhdhdidididididididhdhfifififififhfhfhfvfvfvdhdjdjdCabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafudtdtdtfqfqfqfqfqfqfqfqfqfqfqdhdidididididididididhfififififififwfxfyfzfAdhdjdjdCabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafudtdtdtfqfqfqfqfqfqfqfqfqfqfqdhdidididididididididhfififififififwfxePfzfAdhdjdjdCabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafudtdtfufrfrfrfrfrfrfrfrfrfqfqdhdidididididididididhfifififhfhfhfBfwfCfDfEdhdjdjdCabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafufufufufrfrfmfrfrfmfmfmfmfmfmfFdididididididididiftfifififhfhfhfhfhfvfvfvdhdjdjdCabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafufufufufmfrfmfrfmfqfmfqfmfqfmfFdididididididididiftfififififififGfHfyfIfJdhdjdjdCabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafufufufufmfrfmfrfmfqfmfqfmfqfmfFdididididididididiftfififififififGfHePfIfJdhdjdjdCabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafufufufufrfrfrfrfrfmfmfmfmfmfmfFdididididididididiftfifififififififGfCfKfLdhdjdjdCabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafufufufufrfrfrfrfrfrfrfrfrfqfqdhdidididididididididhfififififififififvfvfvdhdjdjdCabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafMfNfNfNfNfNfNfNfNfNfNfNfMfqfqfqfqfqdhdidididididididididhfififififififGfOfyfPfQdhdjdjdCabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafMfNfNfNfNfNfNfNfNfNfNfNfMfqfqfqfqfqdhdidididididididididhfififififififGfOePfPfQdhdjdjdCabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafMfRfSfRfSfRfRfRfRfRfRfSfNfrfqfrfmfmdhdhdidididididididhdhfvfvfififTfGfifGfCfUfVdhdtdtdCabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafMfRfRfRfRfRfSfRfSfMfSfSfNaaabaafSfRfSdhdhdhdidididhdhdhababfvfvfvfvfvfvfvfvfvfvdhdjdjdCalabalabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafMfRfSfRfSfRfRfRfRfRfRfWfNabababfRfRfRfRfRdhdidididhfSfSfRfRfSfRfSfRfRfRfRfSfRfSdjdtdtdjabababalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/cyberiad/z5.dmm b/_maps/map_files/cyberiad/z5.dmm index cef2e888446..f407ad706f0 100644 --- a/_maps/map_files/cyberiad/z5.dmm +++ b/_maps/map_files/cyberiad/z5.dmm @@ -12,7 +12,7 @@ "al" = (/obj/machinery/light/small,/obj/structure/transit_tube,/turf/simulated/floor/plating/airless/asteroid,/area/mine/dangerous/explored) "am" = (/obj/structure/transit_tube{icon_state = "W-SE"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/dangerous/explored) "an" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/simulated/mineral,/area/mine/dangerous/explored) -"ao" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) +"ao" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/hallway) "ap" = (/obj/structure/lattice,/obj/structure/transit_tube{icon_state = "NE-SW"},/turf/space,/area/space) "aq" = (/obj/structure/transit_tube{icon_state = "D-NW"},/obj/structure/lattice,/turf/space,/area/space) "ar" = (/turf/simulated/wall/r_wall,/area/research_outpost/maintstore1) @@ -20,10 +20,10 @@ "at" = (/obj/structure/transit_tube{icon_state = "NW-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/maintstore1) "au" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/simulated/mineral,/area/mine/dangerous/explored) "av" = (/obj/structure/transit_tube{icon_state = "E-SW"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/dangerous/explored) -"aw" = (/obj/structure/transit_tube,/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) +"aw" = (/obj/structure/transit_tube,/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/hallway) "ax" = (/obj/structure/transit_tube/station,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/research_outpost/hallway) "ay" = (/obj/structure/transit_tube,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) -"az" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) +"az" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/hallway) "aA" = (/obj/structure/transit_tube,/obj/structure/lattice,/turf/space,/area/space) "aB" = (/obj/structure/transit_tube{icon_state = "W-SE"},/obj/structure/lattice,/turf/space,/area/space) "aC" = (/obj/structure/lattice,/obj/structure/transit_tube{icon_state = "D-SW"},/turf/space,/area/space) @@ -65,14 +65,14 @@ "bm" = (/obj/structure/closet/crate/hydroponics,/obj/item/weapon/shovel/spade,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/minihoe,/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 13; pixel_y = 5},/obj/item/weedkiller/triclopyr,/obj/item/weapon/reagent_containers/glass/bottle/fertilizer/ez,/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "bn" = (/obj/machinery/light/small,/obj/structure/closet/walllocker/emerglocker/north{dir = 1; pixel_y = -32},/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "bo" = (/obj/machinery/light_switch{pixel_y = -23},/turf/simulated/floor/plating,/area/research_outpost/maintstore1) -"bp" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/maintenance{name = "Auxiliary Storage"; req_access_txt = "0"; req_one_access_txt = "65;12"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/maintstore1) +"bp" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Auxiliary Storage"; req_access_txt = "0"; req_one_access_txt = "65;12"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/maintstore1) "bq" = (/turf/simulated/floor/plasteel,/area/research_outpost/maintstore1) "br" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel,/area/research_outpost/maintstore1) "bs" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/camera{c_tag = "Research Outpost Auxiliary Storage"; dir = 8; network = list("Research Outpost")},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel,/area/research_outpost/maintstore1) "bt" = (/obj/structure/table,/turf/simulated/floor/carpet,/area/research_outpost/hallway) "bu" = (/obj/machinery/light_switch{pixel_y = -23},/turf/simulated/floor/carpet,/area/research_outpost/hallway) -"bv" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "rminingdorm1"; name = "Dorm 1"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) -"bw" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "rdorm2"; name = "Dorm 2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) +"bv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{id_tag = "rminingdorm1"; name = "Dorm 1"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) +"bw" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{id_tag = "rdorm2"; name = "Dorm 2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) "bx" = (/obj/structure/transit_tube{icon_state = "N-S"},/obj/structure/lattice,/turf/space,/area/space) "by" = (/obj/structure/lattice,/obj/structure/transit_tube{icon_state = "D-SE"},/turf/space,/area/space) "bz" = (/obj/structure/transit_tube{icon_state = "E-SW"},/obj/structure/lattice,/turf/space,/area/space) @@ -89,15 +89,15 @@ "bK" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel,/area/research_outpost/hallway) "bL" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitecorner"},/area/research_outpost/hallway) "bM" = (/turf/simulated/wall/r_wall,/area/research_outpost/atmos) -"bN" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) -"bO" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"bN" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/atmos) +"bO" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/atmos) "bP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "bQ" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) "bR" = (/obj/structure/lattice,/obj/structure/transit_tube{icon_state = "S-NE"},/turf/space,/area/space) "bS" = (/obj/structure/dresser,/turf/simulated/floor/carpet,/area/research_outpost/hallway) "bT" = (/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/spectro) "bU" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) -"bV" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Spectrometry Lab Sample Preparation"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/spectro) +"bV" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Spectrometry Lab Sample Preparation"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/spectro) "bW" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/sample) "bX" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/sample) "bY" = (/obj/structure/table,/obj/machinery/light{dir = 1},/obj/machinery/reagentgrinder,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/sample) @@ -135,7 +135,7 @@ "cE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/wall,/area/research_outpost/hallway) "cF" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/structure/curtain/open/shower,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/research_outpost/hallway) "cG" = (/obj/machinery/door_control{id = "rbath"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/research_outpost/hallway) -"cH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "rbath"; name = "Bathroom"},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/research_outpost/hallway) +"cH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock{id_tag = "rbath"; name = "Bathroom"},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/research_outpost/hallway) "cI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "cJ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "cK" = (/obj/machinery/light/small{dir = 8},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 5; level = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) @@ -155,7 +155,7 @@ "cY" = (/obj/machinery/light/small{dir = 4},/obj/machinery/power/apc{dir = 4; name = "Sample Preparation APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/sample) "cZ" = (/turf/simulated/wall/r_wall,/area/research_outpost/anomaly) "da" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/research_outpost/anomaly) -"db" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Anomalous Materials Loading"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/anomaly) +"db" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Anomalous Materials Loading"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/anomaly) "dc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/closet/walllocker/emerglocker/west,/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "de" = (/obj/machinery/atmospherics/unary/heat_reservoir/heater{dir = 4},/obj/structure/sign/nosmoking_1{pixel_x = -32},/turf/simulated/floor/plating,/area/research_outpost/atmos) @@ -173,15 +173,15 @@ "dq" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/camera{c_tag = "Research Outpost Sample Preparation"; dir = 1; network = list("Research Outpost")},/obj/item/weapon/reagent_containers/glass/beaker/water,/obj/item/weapon/reagent_containers/glass/beaker/fuel,/obj/item/weapon/reagent_containers/glass/bottle/toxin,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric{name = "beaker 'sulphuric acid'"},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 3; pixel_x = 2; pixel_y = 2},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) "dr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) "ds" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) -"dt" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Anomalous Materials Sample Preparation"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) +"dt" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Anomalous Materials Sample Preparation"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) "du" = (/obj/machinery/power/apc{dir = 1; name = "Anomalous Materials APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplecorner"},/area/research_outpost/anomaly) "dv" = (/obj/machinery/alarm{dir = 2; pixel_y = 25},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dx" = (/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dy" = (/obj/machinery/light{dir = 1},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 6; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dz" = (/obj/machinery/conveyor{dir = 1; id = "anolaser"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/research_outpost/anomaly) -"dA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) -"dB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) +"dA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) +"dB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dC" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 4},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dD" = (/obj/machinery/atmospherics/pipe/manifold4w/visible/cyan,/turf/simulated/floor/plating,/area/research_outpost/atmos) "dE" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 8; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) @@ -194,9 +194,9 @@ "dL" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/mine/abandoned) "dM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/hallway) -"dO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/spectro) +"dO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/spectro) "dP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/sample) -"dQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Sample Preparation"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/sample) +"dQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Sample Preparation"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/sample) "dR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/research_outpost/sample) "dS" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dT" = (/obj/structure/table,/obj/item/weapon/lighter/random,/obj/item/weapon/crowbar,/obj/item/weapon/reagent_containers/dropper{pixel_y = -4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) @@ -206,7 +206,7 @@ "dX" = (/obj/machinery/conveyor{dir = 1; id = "anolaser"},/obj/structure/plasticflaps,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/research_outpost/anomaly) "dY" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"},/area/research_outpost/hallway) -"ea" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"ea" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/atmos) "eb" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/atmos) "ec" = (/obj/machinery/light/small,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/visible/cyan,/turf/simulated/floor/plating,/area/research_outpost/atmos) "ed" = (/obj/machinery/meter,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/visible/cyan,/turf/simulated/floor/plating,/area/research_outpost/atmos) @@ -227,7 +227,7 @@ "es" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/alarm{dir = 2; pixel_y = 25},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "et" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "eu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) -"ev" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) +"ev" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) "ew" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) "ex" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/sign/chemistry{desc = "A warning sign which reads 'SAMPLE PREPARATION'"; name = "\improper SAMPLE PREPARATION"; pixel_y = 32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) "ey" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurple"},/area/research_outpost/anomaly) @@ -240,7 +240,7 @@ "eF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "eG" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"},/area/research_outpost/hallway) "eH" = (/turf/simulated/wall/r_wall,/area/research_outpost/power) -"eI" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plasteel,/area/research_outpost/power) +"eI" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plasteel,/area/research_outpost/power) "eJ" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 5},/turf/simulated/wall/r_wall,/area/research_outpost/power) "eK" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/turf/simulated/wall/r_wall,/area/research_outpost/power) "eL" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/turf/simulated/mineral,/area/mine/dangerous/explored) @@ -258,17 +258,17 @@ "eX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "eY" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "eZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) -"fa" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) +"fa" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) "fb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10; initialize_directions = 10; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) "fc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/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/plasteel{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) -"fd" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) +"fd" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) "fe" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplecorner"},/area/research_outpost/anomaly) "ff" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) "fg" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) "fh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) "fi" = (/obj/structure/sign/nosmoking_1{pixel_y = 32},/turf/simulated/floor/plating,/area/research_outpost/power) "fj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) -"fk" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) +"fk" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) "fl" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurple"},/area/research_outpost/hallway) "fm" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"},/area/research_outpost/hallway) "fn" = (/obj/structure/sign/science,/turf/simulated/wall/r_wall,/area/research_outpost/entry) @@ -299,7 +299,7 @@ "fM" = (/obj/machinery/camera{c_tag = "Research Outpost Anomalous Materials Lab"; dir = 8; network = list("Research Outpost")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) "fN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = -32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "fO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"},/area/research_outpost/hallway) -"fP" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) +"fP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) "fQ" = (/turf/simulated/floor/plating,/area/research_outpost/power) "fR" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/research_outpost/power) "fS" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/power) @@ -315,17 +315,17 @@ "gc" = (/obj/structure/table,/obj/item/device/camera,/obj/item/weapon/stamp/granted,/turf/simulated/floor/wood,/area/research_outpost/hallway) "gd" = (/turf/simulated/floor/wood,/area/research_outpost/hallway) "ge" = (/obj/machinery/vending/snack,/obj/machinery/light{dir = 4},/turf/simulated/floor/wood,/area/research_outpost/hallway) -"gf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) -"gg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) -"gh" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{name = "Anomalous Materials Locker Room"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) -"gi" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) +"gf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) +"gg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) +"gh" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{name = "Anomalous Materials Locker Room"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) +"gi" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) "gj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/camera{c_tag = "Research Outpost Hallway Engineering"; dir = 4; network = list("Research Outpost")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "gk" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellowcorner"},/area/research_outpost/hallway) "gl" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/power/apc{dir = 8; name = "Outpost Power APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/research_outpost/power) "gm" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/research_outpost/power) "gn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/research_outpost/power) "go" = (/obj/machinery/portable_atmospherics/scrubber,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/research_outpost/power) -"gp" = (/obj/effect/spawner/window/reinforced,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/power) +"gp" = (/obj/effect/spawner/window/reinforced,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/power) "gq" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/power) "gr" = (/obj/machinery/mass_driver{dir = 4; id_tag = "researchdriver"},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/power) "gs" = (/obj/item/stack/rods,/obj/structure/lattice,/turf/space,/area/space) @@ -367,11 +367,11 @@ "hc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "hd" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/mine/abandoned) "he" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/wall,/area/research_outpost/entry) -"hf" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"hf" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/entry) "hg" = (/obj/machinery/door/airlock/external{id_tag = "mining_away"; name = "Mining Dock Airlock"; req_access_txt = "48"},/turf/simulated/floor/plating,/area/mine/lobby) "hh" = (/turf/simulated/floor/plating,/area/research_outpost/tempstorage) -"hi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/entry) -"hj" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/entry) +"hi" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/entry) +"hj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/entry) "hk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/effect/spawner/window/reinforced,/turf/simulated/floor/wood,/area/research_outpost/hallway) "hl" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/wood,/area/research_outpost/hallway) "hm" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) @@ -389,7 +389,7 @@ "hy" = (/obj/structure/sign/deathsposal{pixel_x = 32},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/turf/simulated/floor/plating,/area/research_outpost/power) "hz" = (/obj/structure/rack,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/floor/plating,/area/research_outpost/maintstore2) "hA" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area/research_outpost/power) -"hB" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube{icon_state = "N-SE"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) +"hB" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube{icon_state = "N-SE"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/hallway) "hC" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/simulated/wall/r_wall,/area/research_outpost/hallway) "hD" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/hallway) "hE" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/space,/area/space) @@ -397,7 +397,7 @@ "hG" = (/obj/effect/gibspawner/robot,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned) "hH" = (/obj/effect/gibspawner/human,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned) "hI" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/obj/effect/decal/remains/xeno,/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"hJ" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"hJ" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/entry) "hK" = (/obj/machinery/computer/shuttle/science,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/research_outpost/entry) "hL" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel,/area/research_outpost/entry) "hM" = (/obj/docking_port/stationary{dir = 8; dwidth = 3; height = 5; id = "mining_away"; name = "asteroid mine"; width = 7},/turf/space,/area/space) @@ -412,7 +412,7 @@ "hV" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/fire,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/med) "hW" = (/turf/simulated/wall/r_wall,/area/research_outpost/tempstorage) "hX" = (/obj/machinery/camera{c_tag = "Research Outpost Temporary Storage"; dir = 2; network = list("Research Outpost")},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/research_outpost/tempstorage) -"hY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;65"},/turf/simulated/floor/plating,/area/research_outpost/maint) +"hY" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "hZ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/light_switch{pixel_x = 0; pixel_y = 23},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/research_outpost/tempstorage) "ia" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/tempstorage) "ib" = (/obj/machinery/camera{c_tag = "Research Outpost Hallway Central"; dir = 4; network = list("Research Outpost")},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) @@ -424,16 +424,16 @@ "ih" = (/obj/structure/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/color/latex,/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/research_outpost/anomaly) "ii" = (/obj/machinery/door/window/westleft{dir = 2; name = "Monkey Pen"; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) "ij" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/anomaly) -"ik" = (/obj/machinery/door/firedoor{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) -"il" = (/obj/machinery/door/firedoor{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) -"im" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) +"ik" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) +"il" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) +"im" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/harvesting) "in" = (/obj/structure/transit_tube{icon_state = "D-NE"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "io" = (/obj/structure/transit_tube{icon_state = "E-NW"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "ip" = (/obj/structure/transit_tube/station,/obj/structure/sign/securearea{desc = "A warning sign which reads 'INTERNALS REQUIRED'."; name = "INTERNALS REQUIRED"; pixel_x = 32; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/research_outpost/hallway) "iq" = (/obj/structure/transit_tube{icon_state = "W-NE"},/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) "ir" = (/obj/structure/transit_tube{icon_state = "D-NW"},/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) "is" = (/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) -"it" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/harvesting) +"it" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube{icon_state = "N-SE"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/entry) "iu" = (/obj/structure/transit_tube{icon_state = "D-NE"},/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) "iv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "iw" = (/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/mine/abandoned) @@ -443,23 +443,23 @@ "iA" = (/obj/machinery/door/airlock,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) "iB" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/mine/abandoned) "iC" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/mine/abandoned) -"iD" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube{icon_state = "N-SE"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"iD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Research Shuttle Dock"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/entry) "iE" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/research_outpost/entry) "iF" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel,/area/research_outpost/entry) -"iG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Research Shuttle Dock"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/entry) +"iG" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Medbay"; req_access_txt = "0"; req_one_access_txt = "65;5"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/med) "iH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor/plasteel,/area/research_outpost/entry) "iI" = (/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 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel,/area/research_outpost/entry) "iJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/research_outpost/entry) -"iK" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Medbay"; req_access_txt = "0"; req_one_access_txt = "65;5"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/med) +"iK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Temporary Storage"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "iL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/med) "iM" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/med) "iN" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/entry) "iO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "iP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) -"iQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Temporary Storage"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) +"iQ" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "iR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "iS" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) -"iT" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) +"iT" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/machinery/camera{c_tag = "Research Outpost Hallway Starboard"; dir = 2; network = list("Research Outpost"); pixel_x = 24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "iU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "iV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "iW" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) @@ -472,7 +472,7 @@ "jd" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellowcorner"},/area/research_outpost/hallway) "je" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteyellow"},/area/research_outpost/hallway) "jf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteyellowcorner"},/area/research_outpost/hallway) -"jg" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/machinery/camera{c_tag = "Research Outpost Hallway Starboard"; dir = 2; network = list("Research Outpost"); pixel_x = 24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) +"jg" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube{icon_state = "D-NE"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/entry) "jh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurple"},/area/research_outpost/hallway) "ji" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) "jj" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera{c_tag = "Research Outpost Exotic Particles Airlock"; dir = 2; network = list("Research Outpost")},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel,/area/research_outpost/harvesting) @@ -491,7 +491,7 @@ "jw" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) "jx" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorgrime"},/area/mine/abandoned) "jy" = (/obj/structure/rack,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned) -"jz" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube{icon_state = "D-NE"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"jz" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "jA" = (/obj/structure/transit_tube{icon_state = "S-NW"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/research_outpost/entry) "jB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel,/area/research_outpost/entry) "jC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "Research Outpost Shuttle Dock"; dir = 8; network = list("Research Outpost")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/research_outpost/entry) @@ -508,7 +508,7 @@ "jN" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/research_outpost/tempstorage) "jO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5; level = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "jP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) -"jQ" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) +"jQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "jR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "jS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1; pressure_checks = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "jT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/sign/examroom{desc = "A guidance sign which reads 'ISOLATION ROOM ONE'"; name = "\improper ISOLATION ROOM ONE"; pixel_y = -32},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/research_outpost/hallway) @@ -519,14 +519,14 @@ "jY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/research_outpost/hallway) "jZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/sign/examroom{desc = "A guidance sign which reads 'ISOLATION ROOM THREE'"; name = "\improper ISOLATION ROOM THREE"; pixel_y = -32},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/research_outpost/hallway) "ka" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) -"kb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) +"kb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Exotic Particles Collection"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/harvesting) "kc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/machinery/firealarm{pixel_y = -24},/turf/simulated/floor/plasteel{icon_state = "white"},/area/research_outpost/hallway) "kd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/biohazard{pixel_y = -32},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "ke" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 6; icon_state = "whitepurple"},/area/research_outpost/hallway) -"kf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Exotic Particles Collection"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/harvesting) +"kf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/external{name = "Access Airlock"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/harvesting) "kg" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/research_outpost/harvesting) "kh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/research_outpost/harvesting) -"ki" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/external{name = "Access Airlock"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/harvesting) +"ki" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;65"},/turf/simulated/floor/plating,/area/research_outpost/maint) "kj" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/research_outpost/harvesting) "kk" = (/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/harvesting) "kl" = (/obj/structure/table,/obj/item/weapon/anodevice{pixel_x = 3; pixel_y = 3},/obj/item/weapon/anodevice,/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/harvesting) @@ -548,7 +548,7 @@ "kB" = (/obj/machinery/light/small,/obj/machinery/camera{c_tag = "Research Outpost Medbay"; dir = 8; network = list("Research Outpost")},/obj/machinery/sleeper,/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 5},/area/research_outpost/med) "kC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "kD" = (/turf/simulated/wall/r_wall,/area/research_outpost/entry) -"kE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Expedition Prep"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/entry) +"kE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Maintenance Storage"; req_access_txt = "0"; req_one_access_txt = "12;65"},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) "kF" = (/turf/simulated/wall/r_wall,/area/research_outpost/maint) "kG" = (/obj/machinery/light/small{dir = 1},/obj/machinery/conveyor{dir = 4; id = "anosample"},/turf/simulated/floor/plating,/area/research_outpost/maint) "kH" = (/turf/simulated/wall/r_wall,/area/research_outpost/iso1) @@ -560,10 +560,10 @@ "kN" = (/turf/simulated/wall/r_wall,/area/research_outpost/iso3) "kO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/iso3) "kP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Isolation Room Three"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/iso3) -"kQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/maintenance{name = "Maintenance Storage"; req_access_txt = "0"; req_one_access_txt = "12;65"},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) +"kQ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Long Term Storage"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/longtermstorage) "kR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/maintstore2) "kS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/longtermstorage) -"kT" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Long Term Storage"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/longtermstorage) +"kT" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube{icon_state = "N-SW"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/entry) "kU" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel,/area/research_outpost/harvesting) "kV" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/research_outpost/harvesting) "kW" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/research_outpost/harvesting) @@ -574,15 +574,15 @@ "lb" = (/turf/simulated/wall,/area/mine/dangerous/unexplored) "lc" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'INTERNALS REQUIRED'."; name = "INTERNALS REQUIRED"; pixel_x = -32; pixel_y = 0},/turf/space,/area/space) "ld" = (/turf/simulated/wall/r_wall,/area/research_outpost/gearstore) -"le" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube{icon_state = "N-SW"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"le" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Expedition Prep"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/entry) "lf" = (/turf/simulated/wall,/area/research_outpost/entry) "lg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/wall,/area/research_outpost/entry) "lh" = (/obj/structure/closet/bombcloset,/turf/simulated/floor/plasteel,/area/research_outpost/gearstore) "li" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/wall,/area/research_outpost/entry) "lj" = (/turf/simulated/wall,/area/research_outpost/tempstorage) -"lk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Temporary Storage Loading"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) +"lk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Temporary Storage Loading"; req_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "ll" = (/obj/machinery/light_switch{pixel_x = 0; pixel_y = 23},/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/toolbox/emergency{pixel_x = 4; pixel_y = 4},/turf/simulated/floor/plasteel,/area/research_outpost/gearstore) -"lm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Loading Area"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/tempstorage) +"lm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Loading Area"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/tempstorage) "ln" = (/obj/machinery/conveyor{dir = 4; id = "anosample"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'MOVING PARTS'."; name = "\improper MOVING PARTS"; pixel_y = 32},/turf/simulated/floor/plating,/area/research_outpost/maint) "lo" = (/obj/machinery/disposal/deliveryChute{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/light_switch{pixel_x = 0; pixel_y = 23},/turf/simulated/floor/plating,/area/research_outpost/maint) "lp" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "Maintenance APC"; pixel_x = 24; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/research_outpost/maint) @@ -652,7 +652,7 @@ "mB" = (/obj/structure/transit_tube{tag = "icon-NE-SW"; icon_state = "NE-SW"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/dangerous/explored) "mC" = (/obj/structure/transit_tube{tag = "icon-D-SE"; icon_state = "D-SE"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating/airless/asteroid,/area/mine/dangerous/explored) "mD" = (/obj/structure/transit_tube{tag = "icon-D-NW"; icon_state = "D-NW"},/turf/simulated/mineral,/area/mine/dangerous/unexplored) -"mE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Equipment Storage"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/gearstore) +"mE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Equipment Storage"; req_access_txt = "65"},/turf/simulated/floor/plasteel,/area/research_outpost/gearstore) "mF" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plasteel,/area/research_outpost/gearstore) "mG" = (/obj/structure/table,/turf/simulated/floor/plasteel,/area/research_outpost/gearstore) "mH" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor/plating,/area/research_outpost/gearstore) @@ -784,7 +784,7 @@ "pd" = (/obj/structure/transit_tube/station{dir = 8; icon_state = "closed"; tag = "icon-closed (EAST)"},/obj/effect/decal/warning_stripes/yellow/hollow,/turf/simulated/floor/plasteel/airless,/area/mine/dangerous/explored) "pe" = (/obj/structure/transit_tube{tag = "icon-W-NE"; icon_state = "W-NE"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/dangerous/explored) "pf" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/space) -"pg" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/gearstore) +"pg" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/research_outpost/gearstore) "ph" = (/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/engine/vacuum,/area/mine/podbay) "pi" = (/turf/simulated/floor/engine,/area/mine/podbay) "pj" = (/obj/structure/transit_tube{tag = "icon-D-SE"; icon_state = "D-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/maintstore2) @@ -1069,7 +1069,7 @@ "uC" = (/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 5},/area/mine/dangerous/explored) "uD" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light,/turf/space,/area/mine/dangerous/explored) "uE" = (/turf/simulated/wall,/area/mine/living_quarters) -"uF" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/maintenance{name = "Mining Station Communications"; req_access_txt = "48"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/mine/maintenance) +"uF" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Mining Station Communications"; req_access_txt = "48"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/mine/maintenance) "uG" = (/obj/structure/table/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 8},/area/mine/dangerous/explored) "uH" = (/turf/simulated/floor/plasteel/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/dangerous/explored) "uI" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/carpet,/area/mine/living_quarters) @@ -1078,17 +1078,17 @@ "uL" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/dangerous/explored) "uM" = (/obj/structure/table,/turf/simulated/floor/carpet,/area/mine/living_quarters) "uN" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/carpet,/area/mine/living_quarters) -"uO" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "miningdorm1"; name = "Room 1"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) +"uO" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{id_tag = "miningdorm1"; name = "Room 1"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) "uP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters) "uQ" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/dangerous/explored) "uR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light/small{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel,/area/mine/living_quarters) "uS" = (/obj/structure/table/reinforced,/obj/machinery/cell_charger,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 10},/area/mine/dangerous/explored) "uT" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters) "uU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/camera{c_tag = "Mining Outpost Bedrooms"; dir = 4; network = list("Mining Outpost")},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"uV" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"uV" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/mine/living_quarters) "uW" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/dangerous/explored) "uX" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/west_outpost) -"uY" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "miningdorm2"; name = "Room 2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) +"uY" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{id_tag = "miningdorm2"; name = "Room 2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) "uZ" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 6},/area/mine/dangerous/explored) "va" = (/obj/structure/disposalpipe/segment,/turf/simulated/mineral/random,/area/mine/dangerous/unexplored) "vb" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/dangerous/explored) @@ -1101,7 +1101,7 @@ "vi" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "outpost_west_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = null},/turf/simulated/floor/plasteel/airless{tag = "icon-asteroidwarning (EAST)"; icon_state = "asteroidwarning"; dir = 4},/area/mine/dangerous/explored) "vj" = (/obj/machinery/light,/turf/simulated/floor/plating/airless/asteroid,/area/mine/dangerous/explored) "vk" = (/turf/simulated/wall,/area/mine/west_outpost) -"vl" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) +"vl" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/mine/west_outpost) "vm" = (/obj/structure/sign/xeno_warning_mining,/turf/simulated/wall,/area/mine/west_outpost) "vn" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) "vo" = (/obj/machinery/vending/cigarette,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) @@ -1127,13 +1127,13 @@ "vI" = (/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) "vJ" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) "vK" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"vL" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "miningdorm3"; name = "Room 3"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) +"vL" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{id_tag = "miningdorm3"; name = "Room 3"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) "vM" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel,/area/mine/living_quarters) "vN" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters) "vO" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor/plasteel,/area/mine/living_quarters) "vP" = (/turf/simulated/wall/r_wall,/area/mine/eva) "vQ" = (/turf/simulated/wall,/area/mine/eva) -"vR" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/eva) +"vR" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/mine/eva) "vS" = (/obj/structure/table,/obj/item/weapon/shovel,/turf/simulated/floor/plasteel,/area/mine/west_outpost) "vT" = (/turf/simulated/floor/plasteel,/area/mine/west_outpost) "vU" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plasteel,/area/mine/west_outpost) @@ -1155,7 +1155,7 @@ "wk" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/satchel,/obj/item/weapon/pickaxe,/obj/item/weapon/storage/belt/utility,/obj/machinery/light/small{dir = 1},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel,/area/mine/eva) "wl" = (/turf/simulated/floor/plasteel/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/dangerous/explored) "wm" = (/obj/structure/table,/obj/item/weapon/storage/backpack/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel,/area/mine/west_outpost) -"wn" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/west_outpost) +"wn" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/west_outpost) "wo" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel,/area/mine/west_outpost) "wp" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "outpost_west_pump"; tag_exterior_door = "outpost_west_outer"; frequency = 1379; id_tag = "outpost_west_airlock"; tag_interior_door = "outpost_west_inner"; pixel_x = 0; pixel_y = -25; req_access_txt = null; tag_chamber_sensor = "outpost_west_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "outpost_west_pump"},/turf/simulated/floor/plasteel,/area/mine/west_outpost) "wq" = (/obj/structure/ore_box,/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "outpost_west_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/camera{c_tag = "Mining Outpost West Outpost External Airlock"; dir = 1; network = list("Mining Outpost")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/west_outpost) @@ -1173,7 +1173,7 @@ "wC" = (/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/plasteel,/area/mine/living_quarters) "wD" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plasteel,/area/mine/living_quarters) "wE" = (/turf/simulated/wall,/area/mine/lobby) -"wF" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/lobby) +"wF" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Mining Station Pod Bay"; req_access_txt = "54"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plasteel,/area/mine/lobby) "wG" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/machinery/camera{c_tag = "Mining Outpost EVA"; dir = 4; network = list("Mining Outpost")},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel,/area/mine/eva) "wH" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/turf/simulated/floor/plasteel,/area/mine/eva) "wI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/mine/eva) @@ -1187,8 +1187,8 @@ "wQ" = (/obj/effect/decal/cleanable/fungus,/turf/simulated/wall,/area/mine/living_quarters) "wR" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/mine/living_quarters) "wS" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/mine/living_quarters) -"wT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass{name = "Crew Area"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) -"wU" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/mining{name = "Mining Station Storage"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"wT" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/mine/lobby) +"wU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Crew Area"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) "wV" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/camera{c_tag = "Mining Outpost Starboard Connector"; network = list("Mining Outpost")},/turf/simulated/floor/plasteel,/area/mine/lobby) "wW" = (/turf/simulated/floor/plasteel,/area/mine/lobby) "wX" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/mine/eva) @@ -1211,10 +1211,10 @@ "xo" = (/obj/machinery/mineral/unloading_machine{input_dir = 4; output_dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost) "xp" = (/obj/machinery/conveyor{dir = 4; id = "mining_west"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost) "xq" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/deliveryChute{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost) -"xr" = (/obj/effect/spawner/window/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) +"xr" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/mining{name = "Mining Station Storage"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) "xs" = (/obj/structure/toilet{dir = 4},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters) "xt" = (/obj/structure/sink{pixel_y = 30},/obj/machinery/light/small,/obj/structure/mirror{pixel_y = -32},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters) -"xu" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock{name = "Toilet"},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters) +"xu" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/mine/lobby) "xv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/mine/living_quarters) "xw" = (/obj/machinery/computer/podtracker,/turf/simulated/floor/plasteel,/area/mine/podbay) "xx" = (/obj/machinery/camera{c_tag = "Mining Outpost Crew Area Hallway"; network = list("Mining Outpost")},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor/plasteel,/area/mine/living_quarters) @@ -1227,7 +1227,7 @@ "xE" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/mine/lobby) "xF" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plasteel{tag = "icon-stage_stairs"; icon_state = "stage_stairs"},/area/mine/podbay) "xG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plasteel,/area/mine/lobby) -"xH" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_mining{name = "Mining Station EVA"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/eva) +"xH" = (/obj/effect/spawner/window/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/mine/west_outpost) "xI" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel,/area/mine/eva) "xJ" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining_east_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = null},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"},/turf/simulated/floor/plasteel,/area/mine/eva) "xK" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_east_inner"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/mine/eva) @@ -1237,7 +1237,7 @@ "xO" = (/turf/simulated/floor/plasteel/airless{tag = "icon-asteroidwarning (EAST)"; icon_state = "asteroidwarning"; dir = 4},/area/mine/dangerous/explored) "xP" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/wall,/area/mine/west_outpost) "xQ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/west_outpost) -"xR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "54"},/turf/simulated/floor/plating,/area/mine/west_outpost) +"xR" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Toilet"},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters) "xS" = (/obj/machinery/conveyor{backwards = 2; dir = 2; forwards = 1; id = "mining_west"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel,/area/mine/west_outpost) "xT" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel,/area/mine/living_quarters) "xU" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/mine/living_quarters) @@ -1247,10 +1247,10 @@ "xY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plasteel,/area/mine/living_quarters) "xZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel,/area/mine/living_quarters) "ya" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/living_quarters) -"yb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) +"yb" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Mining Station EVA"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/eva) "yc" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel,/area/mine/living_quarters) "yd" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel,/area/mine/lobby) -"ye" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/lobby) +"ye" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "54"},/turf/simulated/floor/plating,/area/mine/west_outpost) "yf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel,/area/mine/lobby) "yg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/lobby) "yh" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel,/area/mine/lobby) @@ -1276,11 +1276,11 @@ "yB" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/light,/turf/simulated/floor/plasteel,/area/mine/living_quarters) "yC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining_west_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = null},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters) "yD" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/camera{c_tag = "Mining Outpost Port Connector"; dir = 1; network = list("Mining Outpost")},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/mine/living_quarters) -"yE" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"yE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) "yF" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/turf/space,/area/mine/living_quarters) "yG" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/turf/space,/area/mine/lobby) "yH" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/light{dir = 4},/turf/space,/area/mine/lobby) -"yI" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/lobby) +"yI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/lobby) "yJ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/lobby) "yK" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/turf/simulated/floor/plasteel,/area/mine/lobby) "yL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/turf/simulated/floor/plasteel,/area/mine/lobby) @@ -1293,9 +1293,9 @@ "yS" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/plating,/area/mine/west_outpost) "yT" = (/obj/machinery/power/terminal{dir = 4},/obj/machinery/light/small,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/west_outpost) "yU" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable,/turf/simulated/floor/plating,/area/mine/west_outpost) -"yV" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/mine/living_quarters) +"yV" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/mine/living_quarters) "yW" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/living_quarters) -"yX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/firedoor{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "48"},/turf/simulated/floor/plating,/area/mine/living_quarters) +"yX" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/mine/lobby) "yY" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/wall,/area/mine/living_quarters) "yZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_inner"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plasteel,/area/mine/living_quarters) "za" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel,/area/mine/lobby) @@ -1363,16 +1363,16 @@ "Ak" = (/obj/machinery/mech_bay_recharge_port,/obj/machinery/light/small,/turf/simulated/floor/plating,/area/mine/production{name = "Mining Station Mech Bay"}) "Al" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/dangerous/explored) "Am" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/dangerous/explored) -"Ao" = (/obj/effect/spawner/window/reinforced,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/lobby) -"Ap" = (/obj/effect/spawner/window/reinforced,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/lobby) +"An" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/mine/living_quarters) +"Ao" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "48"},/turf/simulated/floor/plating,/area/mine/living_quarters) +"Ap" = (/obj/effect/spawner/window/reinforced,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/mine/lobby) "Aq" = (/obj/machinery/computer/shuttle/mining,/turf/simulated/floor/plasteel,/area/mine/lobby) "Ar" = (/obj/item/device/radio/beacon,/turf/simulated/floor/plasteel,/area/mine/lobby) "As" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/mine/lobby) "At" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel,/area/mine/lobby) "Au" = (/turf/simulated/wall,/area/mine/living_quarters{name = "Mining Station Break Room"}) "Av" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/wall,/area/mine/living_quarters{name = "Mining Station Break Room"}) -"Az" = (/obj/machinery/door/firedoor{dir = 2},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Pod Bay"; req_access_txt = "54"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plasteel,/area/mine/lobby) -"AA" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/mine/lobby) +"Aw" = (/obj/effect/spawner/window/reinforced,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/mine/lobby) "AB" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8},/turf/simulated/floor/plasteel,/area/mine/lobby) "AC" = (/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/lobby) "AD" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/camera{c_tag = "Mining Shuttle Airlock"; dir = 8; network = list("Mining Outpost")},/turf/simulated/floor/plasteel,/area/mine/lobby) @@ -1493,19 +1493,19 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPbQbPaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacbjacacacbjbjacbjbjbjacacbjbjbjbjbjbjbjbjbjbjbjbjacacacacaaaabRbBagagagagagafafafafblccbTbUbVbWbXbYbZcacbcdcwcebacfcgbJchcicjckclcmcncocpbNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqcrcqagaaaaaaacacacacacacacacacacacacbjbjbjbjbjbjacacacacacacacbjbjbjbjbjacacacbjbjbjbjbjcsbjbjbjbjbjbjbjbjacacacacaaaaaQaaaaaaaaaaaaafafafafblctcucvblcycxbWbWczcAcBcCcDcEcFcGcHcIcJbMcKcLcMcNcOcPbNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQcRcScTagaaaaacacacacacacacbjacacbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacaaaaaQaaaaaaaaaaaaafafafafblctcucUblcVbWcWcXcYcZdacZdbcZcZcZcZdcddbMdecLdfdgdhcpbNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadididjdkdlcqagaaaaacacacacbjbjbjacacbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacaaagaQaaaaaaaaaaaaafafafafblctdmdnbldodpdqdrdsdtdudvdwdxdydzcZdAdBbMdCdDdEdFbMbObNagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadididjdkdlcqagaaaaacacacacbjbjbjacacbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacaaagaQaaaaaaaaaaaaafafafafblctdmdnbldodpdqdrdsdtdudvdwdxdydzcZdBdAbMdCdDdEdFbMbObNagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadGdHdIdJdKdLdMagagacacacacbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacaaagaQaaagagagagagafaLaLaLaLaLdNdOaLbEbEdPdQdRcZdSdTdUdVdWdXcZdYdZeaebecedeebMefafagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaegdieheiejdlekacacacacacbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacacaaaaaQaaaaaaaaaaaaaaaLemenenepeqereseteuevewexcZeyezeoeBeAeDeEeFeGeHeHeHeIeJeKeMeLeLeNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagageOePeQekacacacacbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjcsbjbjbjbjbjbjbjacacacacacacaaaaaQaaaaaaaaaaaaaaaoeReSeSeUeVeWeXeYeZfafbfcfdfefffgfhfhfjfkflfmeHeCfieTfqeHfrafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagfsftfufvekacacacbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjcsbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacacaaaaaaaaaQaaaaaaaaaaaaaaaofwenfxfyfzfAfBfCfDaLfEfFfGfHfIfJfKfLfMcZfNfOfPfQfQfRfSfTfVfUafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagfWfXfYekfZgaekekekekbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjcsbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacaaaaaaaaaaaaaQaaaaaaaaaaaaaaaofwenfxfygbgcfBgdgeaLgfggcZghcZcZcZcZgicZgjgkeHglgmgngogpgqgraeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagfWfXfYekfZgaekekekekbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjcsbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacaaaaaaaaaaaaaQaaaaaaaaaaaaaaaofwenfxfygbgcfBgdgeaLgggfcZghcZcZcZcZgicZgjgkeHglgmgngogpgqgraeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaggsgtgugvgwgxbPdLgyekgzgAekbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacaaaaaaaaaaaaaQaaaaaaelaaaaaaaLfwengBfygCfAfBgEgFaLgGgHgIgJgKgLgMcZgOgNgPgQgRgSgTfQgVgpefafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaggWgXgtgYgZhahbhcgyhdgAgAgzekbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacaaaaaaaaaaaahehfhfhfadhfhfhffnhihjbahkhlaLaLaLaLaLhmhnhogJhpgLhqcZhshrhthuhvhwhxgUhyhAhBhCaLhDbzaAaAaAaAaAaAaBhEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahFgWgXgWgugufZhGgZekfvhHekgAhIekbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacaaaaaaaaaaaahJhKhLhNhNhNhOhPhQhRhShThUhVhWhXfohZiaibicidieifigihcZiiijikileHeHimeHeHeHinioipiqirisisitisisisiubhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagiviwguixiygueQizhaiAiBiCekekekekekekbjbjbjbjbjbjbjbjbjbjcsbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacacacacacacacacacacaaaaaaaaaaiDiEhNhNhNhNiFiGiHiIiJiKiLiMhWfpiOiPiQiRiSiTiUiViWiXiYiZiWjajbjcjdjejfjcjgjciWjhjijjjkjljmjnjojpisbxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagjqjrjsguiygAgYjtgZcrekjujvekjwgyjxjyekbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacacacacacacacacacacacaaaaaaaaaajzjAhNhNjBhNjCjDjEjFjGjHjIjJhWjKjLjMjNjOjPjQjRjSjTjUjVjWjXjUjYjVjZjUjVkakbkckdkekfkgkhkikjkkkkklisbxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagbjbjekgxkmkngzjskogZhajwbPdLkpekjwfvgyjyekbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacafafafafafafacacacacacacacaaaaaaaahfkqhNkrksktkukvkwkxkykzkAkBhWkCgDhhkFkFkFkFhYkHkIkJkHkKkLkMkKkNkOkPkNkNkQkRkSkTiskUkViskWkkkkkXisbxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagekekekekekekgwgZkYkmgZizkZjwjwhcgyjuekjweQlajyekbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacafafafaeaeaeaeafafafacacacaclblcaaaaaaiNlehfhfkDlflflflgkElibaljljhWlkkFkFkFkGlnlolpkHlqlrlskKltlulvkNlwlxlykNlzlAkSlBlCisisislDlElFjpisbxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaggWgXgtgYgZhahbhcgyhdgAgAgzekbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacaaaaaaaaaaaahehfhfhfadhfhfhffnhjhibahkhlaLaLaLaLaLhmhnhogJhpgLhqcZhshrhthuhvhwhxgUhyhAhBhCaLhDbzaAaAaAaAaAaAaBhEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahFgWgXgWgugufZhGgZekfvhHekgAhIekbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacaaaaaaaaaaaahJhKhLhNhNhNhOhPhQhRhShThUhVhWhXfohZiaibicidieifigihcZiiijikhYeHeHileHeHeHinioipiqirisisimisisisiubhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagiviwguixiygueQizhaiAiBiCekekekekekekbjbjbjbjbjbjbjbjbjbjcsbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacacacacacacacacacacaaaaaaaaaaitiEhNhNhNhNiFiDiHiIiJiGiLiMhWfpiOiPiKiRiSiQiUiViWiXiYiZiWjajbjcjdjejfjciTjciWjhjijjjkjljmjnjojpisbxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagjqjrjsguiygAgYjtgZcrekjujvekjwgyjxjyekbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacacacacacacacacacacacaaaaaaaaaajgjAhNhNjBhNjCjDjEjFjGjHjIjJhWjKjLjMjNjOjPjzjRjSjTjUjVjWjXjUjYjVjZjUjVkajQkckdkekbkgkhkfkjkkkkklisbxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagagbjbjekgxkmkngzjskogZhajwbPdLkpekjwfvgyjyekbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacafafafafafafacacacacacacacaaaaaaaahfkqhNkrksktkukvkwkxkykzkAkBhWkCgDhhkFkFkFkFkikHkIkJkHkKkLkMkKkNkOkPkNkNkEkRkSkQiskUkViskWkkkkkXisbxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagekekekekekekgwgZkYkmgZizkZjwjwhcgyjuekjweQlajyekbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacafafafaeaeaeaeafafafacacacaclblcaaaaaaiNkThfhfkDlflflflglelibaljljhWlkkFkFkFkGlnlolpkHlqlrlskKltlulvkNlwlxlykNlzlAkSlBlCisisislDlElFjpisbxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageklGdLhagwekjqlHjrekiAeklIlJlKekdLlLcrlMeQfucrekbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjcsbjbjbjbjbjbjacacacafafaeaeaeaeaeaeaeaeafafacaclNlOaAaAajaAbAbBagagldlhlRlllTlUlVlWlmlYlZmalPmglQlSmfmgmhkHmimjmkkKmlmmmnkNmompmqkNmrmsmtmumvmwmxisisisisismybkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceklGeQdLgYiAlLkmdLkmfudLdLmzgydLeQeQekcrmAeQdLekbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacafafaeaeaeaeaeaeaeaeaeaeafafmCmBmDacaaaaaaaaaaaaagldlXmFmbmHmImJmcljmdmMhWkFkFkFkFkFmgmPkHmQmRmSkKmTmUmVkNmWmXmYkNmZnanbncndndnelCmKaiaAaAngnhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaceklGnieQeQiAeQlafZeQnjfulakpcreQnkfvekkmcrlLdLekbjbjbjbjbjbjbjbjcsbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacafnfaeaeaeaeaeaeaeaeaeaeaenlafnnnmafafaaaaaaaaaaaaagldmenqnrmEnrntmGljljnvhWnononQnokFnAnBkHnCnDnEkKnFnGnHkNnInJnKkNnLnMlCnNnOnPnOlCnnnUafagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -1619,19 +1619,19 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaccsacacacacaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaacacacbjbjacaaaaaaaaaeaevkvkvkvkvkvkvlvlvlvkvmvkvkvkaeaeaeafacacacacacacbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacafafaeaeaeaeaeafafafafafacacacacacacacbjbjbjbjuEuEuEuEvnvovpuEuIvquEvruEuEuEuVuVuVuEaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaafafafafaeaeaeaeoapSpUpTpApVphaeaeaeaeaeaeaeaeafafafafafoBoBoBoBoBoBoBoBoBoBafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaacacacacacaaaaafaeaeaevkvvvwvxvyvzvAvBvCvDvEvFvGvyrkaeaeafafafafacacacacacacbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacafafaeaeaeaeaeaeaeaeaeaeafafafafafacacacacbjbjbjuEvHvIvJvKvIvIuEuMuNvLuKuEvMvNvOvOvOuVaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaafafafaeaeaeaeqdqcqsqqwXvPvRvRvQvQaeaeaeaeaeaeafafafafoBoBoBoBoBoBoBoBoBoBafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaacacacaaaaacafaeaeaevkvSvTvUvyvTvVvTvTvWvXvYvGvZviaeaeaeaeaeafafafacacacacacacacbjbjbjbjbjbjbjbjbjbjbjbjacacafafnfaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafacacacacacacuEwbvIwcwdwewfuEuEuEuEuKuEvMwgwgwgwhuVaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeqdxwzgxFwXwiwjwjwkvQaevjaeaeaenXnfafafafoBoBoBoBoBoBoBoBoBoBafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaacafaeaeaevkwmvTvTwnvTvVwovTvTvywpwqvyrKaeaeaeaeaeaeaeafafafafacacacacacacbjbjbjbjbjbjbjbjbjacacafafaevbaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafacacacuEwrwswtvIwuwvwwwhwxwywzuEoTwgwBwCwDuVaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaezRzRAAAzwXwGwHwIwJvQvQvQvQaeaeaeaeafafafafoBoBoBoBoBoBoBoBoBafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacafafaeaevkwKvTwLvEwMwNwOvTvkvkvkvkvkvmrjrkaeaeaeaeaeaeaeaeafafafacacacacacbjbjbjbjbjbjbjacacacafaeaeaeaeaeaeaeaeaeaeaerjrkaeaeaeaeaeaeaeaeaeafafacacwPuEuEuEwQuEuEwRwSwTwRwSuEuEuEuEuEwUuEuEuVuVaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaewFwFwVAMABwYwZxaxaxbxcxdxexcrkaeaeaenlafafafoBoBoBoBoBoBoBafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacafaeaevkxfxgxhvyxixjxkxlxmxnxoxpxqxrtStTqJqJqJqJqJqFaeaeaeaeafafafacacacacacbjbjbjacacacacafafaeaetRqJqJqJqJqJqJqJqJtStTqJqJqJqJqFaeaeaeaeaeafacacacacacwQxsxtxuwgwDxvwhwDwwzJxxxywhwDwgxzxAuVuVuVxBxCxCxCxCxCxCxCxDxDxDxDxDxDxDwFwFwFxEwWBQxGxHxIxaxaxJxKxLxMxNvsaeaeaenlafafafoBoBoBoBoBoBafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacafaeaevkvkvkvkvkxPxQxRvkvkxSvkvkvkvkrCrKaeaeaeaeaepuaeaeaeaeafaeafafacacacacacacacacacacafafaeaeaepuaeaeaeaeaeaeaeaerCrKaeaeaeaepuaeaeaeaeaeafafnfafafacuEuEuEuEwgwDxTxUxVwyxWxXxXxYxYxZxXyaybxXybycycycycycycycycydydydydydydydyeyfyeygyfyhyiyjykylymynxcyoypxcrKaeaeaeaeafafafafoBoBoBoBoBafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacafafaeaeaeaeaevkyqyrysytvknovtofaeaeaeaeaeqvaeaeaeqEqJqJqFaeaeaeaeafacacacacacacacacacacafaeaetRqJtQaeaeaeaeafaeaeqvaeaeaeaeaeaepuaeaeaeaeaeaeaevbaeafafafafafuEwgywyxyyyyyxyzyAyByyyyyCyxyDyEyEyEyFyFyFyFyFyFyFyFyGyGyGyGyGyGyHyIyIyIyJyKyLyMyNyOyPyOyOyOyOyOyOvuaeaeaeaenlafafafoBoBoBoBafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacafafaeaeaeaevkyRySyTyUvkaeaeaeaeaeaeafafnfafaeaeaeaeaepuaeaeaeaeaeafacacacacacafafafafafaetRtQaeaeaeafafafafafafnfaeaeaeaeaeaepuaeaeaeaeaeaeaeaeaeaeaeafafuEuEwRyVwRuEuEyWyXyYuEuEuEyZwRuEuVaeaeaeaaaaaaaaagaaaaaaagaaaaaaaaaaagaawFwFwWzazbzczdzezfBRzhziyOuvwaaeaeaeaeaeafafafoBoBoBoBafafafoBafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaacafaeaeaevkwmvTvTwnvTvVwovTvTvywpwqvyrKaeaeaeaeaeaeaeafafafafacacacacacacbjbjbjbjbjbjbjbjbjacacafafaevbaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafacacacuEwrwswtvIwuwvwwwhwxwywzuEoTwgwBwCwDuVaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaezRzRwTwFwXwGwHwIwJvQvQvQvQaeaeaeaeafafafafoBoBoBoBoBoBoBoBoBafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacafafaeaevkwKvTwLvEwMwNwOvTvkvkvkvkvkvmrjrkaeaeaeaeaeaeaeaeafafafacacacacacbjbjbjbjbjbjbjacacacafaeaeaeaeaeaeaeaeaeaeaerjrkaeaeaeaeaeaeaeaeaeafafacacwPuEuEuEwQuEuEwRwSwUwRwSuEuEuEuEuExruEuEuVuVaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaexuxuwVAMABwYwZxaxaxbxcxdxexcrkaeaeaenlafafafoBoBoBoBoBoBoBafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacafaeaevkxfxgxhvyxixjxkxlxmxnxoxpxqxHtStTqJqJqJqJqJqFaeaeaeaeafafafacacacacacbjbjbjacacacacafafaeaetRqJqJqJqJqJqJqJqJtStTqJqJqJqJqFaeaeaeaeaeafacacacacacwQxsxtxRwgwDxvwhwDwwzJxxxywhwDwgxzxAuVuVuVxBxCxCxCxCxCxCxCxDxDxDxDxDxDxDxuxuxuxEwWBQxGybxIxaxaxJxKxLxMxNvsaeaeaenlafafafoBoBoBoBoBoBafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacafaeaevkvkvkvkvkxPxQyevkvkxSvkvkvkvkrCrKaeaeaeaeaepuaeaeaeaeafaeafafacacacacacacacacacacafafaeaeaepuaeaeaeaeaeaeaeaerCrKaeaeaeaepuaeaeaeaeaeafafnfafafacuEuEuEuEwgwDxTxUxVwyxWxXxXxYxYxZxXyayExXyEycycycycycycycycydydydydydydydyIyfyIygyfyhyiyjykylymynxcyoypxcrKaeaeaeaeafafafafoBoBoBoBoBafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacafafaeaeaeaeaevkyqyrysytvknovtofaeaeaeaeaeqvaeaeaeqEqJqJqFaeaeaeaeafacacacacacacacacacacafaeaetRqJtQaeaeaeaeafaeaeqvaeaeaeaeaeaepuaeaeaeaeaeaeaevbaeafafafafafuEwgywyxyyyyyxyzyAyByyyyyCyxyDyVyVyVyFyFyFyFyFyFyFyFyGyGyGyGyGyGyHyXyXyXyJyKyLyMyNyOyPyOyOyOyOyOyOvuaeaeaeaenlafafafoBoBoBoBafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacafafaeaeaeaevkyRySyTyUvkaeaeaeaeaeaeafafnfafaeaeaeaeaepuaeaeaeaeaeafacacacacacafafafafafaetRtQaeaeaeafafafafafafnfaeaeaeaeaeaepuaeaeaeaeaeaeaeaeaeaeaeafafuEuEwRAnwRuEuEyWAoyYuEuEuEyZwRuEuVaeaeaeaaaaaaaaagaaaaaaagaaaaaaaaaaagaaxuxuwWzazbzczdzezfBRzhziyOuvwaaeaeaeaeaeafafafoBoBoBoBafafafoBafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacafafaeaeaevkvkvkvkvkvkaeaeafafafafafacacafafaeaeaeaepuaeaeaeaeaeaeafafafafafafaeaeaeaeaepuaeaeafafafacacacacacafaeaeaeaeaeaepuaeaeaerjrkaeaeaeaeaeaeaeafuEzkwAzmzluEzozpzqzrzsuEztzuzvuEaeaeaeaeaeaeaaaaagaaaaaaagagagagagagagagagwEzwzxzyzzzAzAzBzCzCzDzEwluLaeaeaeaeaeafafafoBoBoBafafoBoBoBafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacafaeaeaeaeaeaeaeaeaeaeaeafacacacacacacacafafaeaeaeqEqJqJqJqFaeaeaeaeaeaeaeaeaeaeaeaeaepuaeafafacacacacacacacafafaeaeaeaeaeqEqJqJqJtStTqJqJqJqFaeaeaeaeuEzHzGzIznuEzKzLzLzMzNuEzOzPzQuEaeaeaeaeaeaeagagagagagagagaaaaaaaaaaagaaaawEzSzTzUzVzWzXzWzCzCzDzEwluLaeaeaeaeafafafafoBoBafafafoBoBoBafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacafaeaeaeaeaeaeaeaeaeafafafacacacacacacacacafafafaeaeaeaeaeqEqFaeaerjrkaeaetRqJqJqJqJqJtQaeafacacacacbjbjbjacacafafafaeaeaeaeaeaeaerCrKaeaeaepuaeaeaeaewPuEuEuEuEuEzZAaAbAczNuEuEAdwRwPaeaeaeaeaeaeaaaaagaaaaaaagaaaaaaaaaaagaawFwFAeAfAgyOAhAiAjAkzhziyOuWuZaeaeaeaeafafafoBoBoBafafafafoBoBafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacafafafafaeaeaeaeafafafacacacacacacacacacacacacafafafaeqvaeaeqEqJqJtStTqJqJtQaeaeaeaeaeaeaeafacacacbjbjbjbjbjacacacafafafafaeaeaeaeaeaeaeaeaeqEqJqJqFaeaeaeaeaeaewPuEuEuEuEuEwPwlyuxOyvaeaeaeaeaeaaaaaaagaaaaaaagaaaaaaaaaaAowFApAqArAsAtwEAuAvAuAuAuAuAuAutraeaeaeafafafafoBoBafafafafoBoBoBafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacafaeaeaeaeaeaeaeaeaeafafafacacacacacacacacafafafaeaeaeaeaeqEqFaeaerjrkaeaetRqJqJqJqJqJtQaeafacacacacbjbjbjacacafafafaeaeaeaeaeaeaerCrKaeaeaepuaeaeaeaewPuEuEuEuEuEzZAaAbAczNuEuEAdwRwPaeaeaeaeaeaeaaaaagaaaaaaagaaaaaaaaaaagaaxuxuAeAfAgyOAhAiAjAkzhziyOuWuZaeaeaeaeafafafoBoBoBafafafafoBoBafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacafafafafaeaeaeaeafafafacacacacacacacacacacacacafafafaeqvaeaeqEqJqJtStTqJqJtQaeaeaeaeaeaeaeafacacacbjbjbjbjbjacacacafafafafaeaeaeaeaeaeaeaeaeqEqJqJqFaeaeaeaeaeaewPuEuEuEuEuEwPwlyuxOyvaeaeaeaeaeaaaaaaagaaaaaaagaaaaaaaaaaApxuAwAqArAsAtwEAuAvAuAuAuAuAuAutraeaeaeafafafafoBoBafafafafoBoBoBafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacafafafafafafacacacacacacacacacacacacacacacacafafnfafaeaeaeaerCrKaeaeaeaeqvaeafafafafafacacbjbjbjbjbjbjbjacacacacacafafafafafafafafaeaeaeaeaepuaeaeaeaeaeaeaeaerCyQzjzjzjzjzFrKaeaeaeaeaeaeagagagagagagagagaaaaaaaahMhgwWBSwWwWAsADwEAEAFAGAHAIAJAKALaeaeaeaeafafafafoBoBafafafoBoBoBafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacbjbjbjbjbjbjacacacacacacafafaeaeaeaeaeaeaeaeaenfafafacacacacacbjbjbjbjbjbjbjbjacacacacacacacacacacacacafafaeaeaeaepuaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaagaaaaaaaaaawFwFwFACwWANAOAPAQARASATAUAVAVALaeaeaeqKnfafafafoBafafafafoBoBoBafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacbjbjbjbjbjbjbjbjbjbjbjacacacacacacafafafaeaeaeafafafafafacacacacacbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacacafaeaeaeaeqEqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqFaeaeaeaeaeaeaaaaaaaaaaagaaaaaaaaaaagaawFwFwWAsAXAYAZBaAVAVBbBbBcAuaeaeaeaeafafafafafafafafoBoBoBafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacbjbjbjbjbjbjacacacacacacafafaeaeaeaeaeaeaeaeaenfafafacacacacacbjbjbjbjbjbjbjbjacacacacacacacacacacacacafafaeaeaeaepuaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaagaaaaaaaaaaxuxuxuACwWANAOAPAQARASATAUAVAVALaeaeaeqKnfafafafoBafafafafoBoBoBafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacbjbjbjbjbjbjbjbjbjbjbjacacacacacacafafafaeaeaeafafafafafacacacacacbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacacafaeaeaeaeqEqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqJqFaeaeaeaeaeaeaaaaaaaaaaagaaaaaaaaaaagaaxuxuwWAsAXAYAZBaAVAVBbBbBcAuaeaeaeaeafafafafafafafafoBoBoBafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacbjacacacacbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacacacafafafafafacacacacacacacbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacacafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaepuaerjrkaeaeaenfnfaaaaaaagaaaaaaaaaaagaaaawEBdAszUBeAVAVAVBfBgBgBhALaeaeaeaeafafafafafoBafafoBoBoBafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacacacacacacacacacacacacbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacacacafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeqEqJtStTqJqJqJAmAlBkBkBkBkBkBkBkBkBkBkBkBkBlBmBnBowEBpBqBrAVBsBsAVALaeaeaeafafafafoBoBoBafoBoBoBafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacacacacacacbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjacacacacacacafafafaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaerCrKaeaeaenfnfagaaaaaaaaaaaaaaaaaaaaaaBtBtBuBvBtAuAuAuALALALALAuaeaeafafafafoBoBoBoBoBoBoBafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/cyberiad/z6.dmm b/_maps/map_files/cyberiad/z6.dmm index 5a0231c9394..071bb866761 100644 --- a/_maps/map_files/cyberiad/z6.dmm +++ b/_maps/map_files/cyberiad/z6.dmm @@ -140,7 +140,7 @@ "cJ" = (/obj/item/stack/cable_coil/cut,/turf/space,/area/space) "cK" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "cL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/derelict/bridge/access) -"cM" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) +"cM" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) "cN" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "cO" = (/turf/simulated/wall/r_wall,/area/derelict/singularity_engine) "cP" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel,/area/derelict/bridge/access) @@ -564,7 +564,6 @@ "kS" = (/turf/simulated/wall/r_wall,/area/derelict/bridge/ai_upload) "kT" = (/obj/machinery/door/airlock/command{name = "AI Upload"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload) "kU" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) -"kV" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) "kW" = (/obj/structure/window/basic{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) "kX" = (/obj/structure/window/basic{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) "kY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload) @@ -767,7 +766,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackcncncscncncnckcAcncBckcncnckaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaeaeavavaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackcCcCcDcEcFckckcncncAckckcGckaaababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaAaaaaaeavavavcHaeaeaeaaaAaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaackcncncscncnckckcAcncncncncnckaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaAcIaeaecIavavavavavcIaeaecIaAaeaeaeaaaaaaaaaaaaaacJcJaAaAaAckcKcncLcncncMcNcncncncncncnckababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaAcIaeaecIavavavavavcIaeaecIaAaeaeaeaaaaaaaaaaaaaacJcJaAaAaAckcKcncLcncncGcNcncncncncncnckababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaecOcOcOcOavcHavavavcOcOcOcOaeaeaeaeaeaaaaaaaaaaaaaaaacJaAaAckcPcQcRcPcPckckckckckckckckckcSabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaecOcOcOcOcTcOcUcOcVcWcXcOcOcOcOcOcOaeaeaaaaaaaaaacJaaaaaaaAaAaAckcncncscncncYcZdadbdcdddedbdfdgabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOcOcOdhdidjdkdhcWdldldmdldhdjdhcOcOcOaeaaaaaaaaaaaaaacJaaaaaaaackcKcncLcncncYdndndodndndndndpdqabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -824,7 +823,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaektknknknkuknknknknknknkvkwkxkykzkAkBkCknknknknknknknknknknknkDkEkFktknknkkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaektktktknknknknknknknknkGkHkIkJkKkLkMkNknknknknknknknknknknknklknknknknknkkaaaaaaaaaakiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaekOkPkQkQkQjWkQkQkQkQkQjWkQkQkQkQkQjWkQkQkQkQkQjWkQkQkQkQjWklktktknknknkRhxhxhxaaaaaahoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavababababababababababbBabababababdDdDdDabababaAababababkSkTkSktknknktkUkVkWkXktaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavababababababababababbBabababababdDdDdDabababaAababababkSkTkSktknknktkUcMkWkXktaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaaaaaakSkYkSkZkZjYlajYlajYikikikaaaaaakiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPavavkSlblcldkSlelejYlfjYlfjYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeavkSlgkSlhliljljjYlfjYlfjYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index 1bcc5bad5ef..475870a9d92 100644 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -53,7 +53,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station var/list/apc = list() var/no_air = null // var/list/lights // list of all lights on this area - var/list/all_doors = list() //Added by Strumpetplaya - Alarm Change - Contains a list of doors adjacent to this area var/air_doors_activated = 0 var/tele_proof = 0 diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 7caaf090914..34c6d785fb5 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -80,26 +80,26 @@ return 0 /area/proc/air_doors_close() - if(!src.air_doors_activated) - src.air_doors_activated = 1 - for(var/obj/machinery/door/firedoor/E in src.all_doors) - if(!E.blocked) - if(E.operating) - E.nextstate = CLOSED - else if(!E.density) + if(!air_doors_activated) + air_doors_activated = 1 + for(var/obj/machinery/door/firedoor/D in src) + if(!D.welded) + if(D.operating) + D.nextstate = CLOSED + else if(!D.density) spawn(0) - E.close() + D.close() /area/proc/air_doors_open() - if(src.air_doors_activated) - src.air_doors_activated = 0 - for(var/obj/machinery/door/firedoor/E in src.all_doors) - if(!E.blocked) - if(E.operating) - E.nextstate = OPEN - else if(E.density) + if(air_doors_activated) + air_doors_activated = 0 + for(var/obj/machinery/door/firedoor/D in src) + if(!D.welded) + if(D.operating) + D.nextstate = OPEN + else if(D.density) spawn(0) - E.open() + D.open() /area/proc/fire_alert() @@ -145,46 +145,33 @@ if(!eject) eject = 1 updateicon() - return /area/proc/readyreset() if(eject) eject = 0 updateicon() - return /area/proc/radiation_alert() if(!radalert) radalert = 1 updateicon() - return /area/proc/reset_radiation_alert() if(radalert) radalert = 0 updateicon() - return /area/proc/partyalert() - if(!( party )) + if(!party) party = 1 updateicon() mouse_opacity = 0 - return /area/proc/partyreset() if(party) party = 0 mouse_opacity = 0 updateicon() - for(var/obj/machinery/door/firedoor/D in src) - if(!D.blocked) - if(D.operating) - D.nextstate = OPEN - else if(D.density) - spawn(0) - D.open() - return /area/proc/updateicon() if(radalert) // always show the radiation alert, regardless of power diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index a5db47222e6..efa6a1ded81 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -572,34 +572,6 @@ frequency.post_signal(src, alert_signal) -/obj/machinery/alarm/proc/air_doors_close(manual) - var/area/A = get_area(src) - if(!A.air_doors_activated) - A.air_doors_activated = 1 - for(var/obj/machinery/door/E in A.all_doors) - if(istype(E,/obj/machinery/door/firedoor)) - if(!E:blocked) - if(E.operating) - E:nextstate = CLOSED - else if(!E.density) - spawn(0) - E.close() - continue - -/obj/machinery/alarm/proc/air_doors_open(manual) - var/area/A = get_area(loc) - if(A.air_doors_activated) - A.air_doors_activated = 0 - for(var/obj/machinery/door/E in A.all_doors) - if(istype(E, /obj/machinery/door/firedoor)) - if(!E:blocked) - if(E.operating) - E:nextstate = OPEN - else if(E.density) - spawn(0) - E.open() - continue - /////////////// //END HACKING// /////////////// diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 09f4885dc07..7bf188c48f6 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -1,9 +1,15 @@ +#define CONSTRUCTION_COMPLETE 0 //No construction done - functioning as normal +#define CONSTRUCTION_PANEL_OPEN 1 //Maintenance panel is open, still functioning +#define CONSTRUCTION_WIRES_EXPOSED 2 //Cover plate is removed, wires are available +#define CONSTRUCTION_GUTTED 3 //Wires are removed, circuit ready to remove +#define CONSTRUCTION_NOCIRCUIT 4 //Circuit board removed, can safely weld apart + /var/const/OPEN = 1 /var/const/CLOSED = 2 /obj/machinery/door/firedoor - name = "Firelock" - desc = "Apply crowbar" + name = "firelock" + desc = "Apply crowbar." icon = 'icons/obj/doors/Doorfireglass.dmi' icon_state = "door_open" opacity = 0 @@ -11,47 +17,21 @@ heat_proof = 1 glass = 1 power_channel = ENVIRON - - var/list/areas_added - - var/blocked = 0 - var/nextstate = null - - var/logged_users closed_layer = 3.11 -/obj/machinery/door/firedoor/New() - . = ..() - for(var/obj/machinery/door/firedoor/F in loc) - if(F != src) - spawn(1) - qdel(src) - return . - - var/area/A = get_area(src) - ASSERT(istype(A)) - - A.all_doors.Add(src) - areas_added = list(A) - - for(var/direction in cardinal) - A = get_area(get_step(src,direction)) - if(istype(A) && !(A in areas_added)) - A.all_doors.Add(src) - areas_added += A - - -/obj/machinery/door/firedoor/Destroy() - for(var/area/A in areas_added) - A.all_doors.Remove(src) - . = ..() + var/assembly_type = /obj/structure/firelock_frame + var/nextstate = null + var/welded = 0 + var/boltslocked = 0 + var/can_deconstruct = 1 /obj/machinery/door/firedoor/Bumped(atom/AM) - if(p_open || operating) return - if(!density) return ..() + if(p_open || operating) + return + if(!density) + return ..() return 0 - /obj/machinery/door/firedoor/power_change() if(powered(power_channel)) stat &= ~NOPOWER @@ -60,154 +40,73 @@ stat |= NOPOWER return -/obj/machinery/door/firedoor/attack_hand(mob/user as mob) - return attackby(null, user) - /obj/machinery/door/firedoor/attackby(obj/item/weapon/C as obj, mob/user as mob, params) add_fingerprint(user) + if(operating) - return//Already doing something. + return if(istype(C, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/W = C if(W.remove_fuel(0, user)) - blocked = !blocked - user.visible_message("\red \The [user] [blocked ? "welds" : "unwelds"] \the [src] with \a [W].",\ - "You [blocked ? "weld" : "unweld"] \the [src] with \the [W].",\ - "You hear something being welded.") + welded = !welded + to_chat(user, "You [welded ? "welded" : "unwelded"] \the [src]") update_icon() return - if(blocked) - to_chat(user, "\red \The [src] is welded solid!") - return - - var/area/A = get_area_master(src) - ASSERT(istype(A)) // This worries me. - var/alarmed = A.air_doors_activated || A.fire - - if( istype(C, /obj/item/weapon/crowbar) || ( istype(C,/obj/item/weapon/twohanded/fireaxe) && C:wielded == 1 ) ) - if(operating) + if(welded) + if(istype(C, /obj/item/weapon/wrench)) + if(boltslocked) + to_chat(user, "There are screws locking the bolts in place!") + return + playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1) + user.visible_message("[user] starts undoing [src]'s bolts...", \ + "You start unfastening [src]'s floor bolts...") + if(!do_after(user, 50, target = src)) + return + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + user.visible_message("[user] unfastens [src]'s bolts.", \ + "You undo [src]'s floor bolts.") + deconstruct(TRUE) return - if(blocked) - user.visible_message("\red \The [user] pries at \the [src] with \a [C], but \the [src] is welded in place!",\ - "You try to pry \the [src] [density ? "open" : "closed"], but it is welded in place!",\ - "You hear someone struggle and metal straining.") + else if(istype(C, /obj/item/weapon/screwdriver)) + user.visible_message("[user] [boltslocked ? "unlocks" : "locks"] [src]'s bolts...", \ + "You [boltslocked ? "unlock" : "lock"] [src]'s floor bolts...") + playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1) + boltslocked = !boltslocked + return + else + to_chat(user, "\The [src] is welded solid!") - if(stat & (BROKEN|NOPOWER) || !density || !alarmed) - user.visible_message("\red \The [user] forces \the [src] [density ? "open" : "closed"] with \a [C]!",\ - "You force \the [src] [density ? "open" : "closed"] with \the [C]!",\ - "You hear metal strain, and a door [density ? "open" : "close"].") - - else if(allowed(user)) - user.visible_message("\blue \The [user] lifts \the [src] with \a [C].",\ - "\The [src] scans your ID, and obediently opens as you apply your [C].",\ - "You hear metal move, and a door [density ? "open" : "close"].") + if(istype(C, /obj/item/weapon/crowbar) || istype(C, /obj/item/weapon/twohanded/fireaxe)) + if(istype(C, /obj/item/weapon/twohanded/fireaxe)) + var/obj/item/weapon/twohanded/fireaxe/F = C + if(!F.wielded) + return if(density) - spawn(0) - open() - else - spawn(0) - close() - return - - var/access_granted = 0 - var/users_name - if(!istype(C, /obj)) //If someone hit it with their hand. We need to see if they are allowed. - if(allowed(user)) - access_granted = 1 - if(ishuman(user)) - users_name = FindNameFromID(user) - else - users_name = "Unknown" - - if(ishuman(user) && !stat && (istype(C, /obj/item/weapon/card/id) || istype(C, /obj/item/device/pda))) - var/obj/item/weapon/card/id/ID = C - - if( istype(C, /obj/item/device/pda) ) - var/obj/item/device/pda/pda = C - ID = pda.id - if(!istype(ID)) - ID = null - - if(ID) - users_name = ID.registered_name - - if(check_access(ID)) - access_granted = 1 - - var/answer = alert(user, "Are you sure you want to [density ? "open" : "close"] \the [src]?","\The [src] confirmation","Yes","No") - if(answer == "No") - return - - if(user.stat || user.stunned || user.weakened || user.paralysis || get_dist(src, user) > 1) - to_chat(user, "Sorry, you must remain able bodied and close to \the [src] in order to use it.") - return - - if(alarmed && density && !access_granted) - to_chat(user, "Access denied. Please wait for authorities to arrive, or for the alert to clear.") - return - - else - user.visible_message("\blue \The [src] [density ? "open" : "close"]s for \the [user].",\ - "\The [src] [density ? "open" : "close"]s.",\ - "You hear a beep, and a door opening.") - // Accountability! - if(!logged_users) - logged_users = list() - logged_users += users_name - - var/needs_to_close = 0 - if(density) - if(alarmed) - needs_to_close = 1 - spawn() open() - else - spawn() + else close() - if(needs_to_close) - spawn(50) - if(alarmed) - nextstate = CLOSED - -/obj/machinery/door/firedoor/attack_ai(mob/user as mob) - if(operating || stat & NOPOWER) - return //Already doing something or depowered. - - if(blocked) - to_chat(user, "\red \The [src] is welded solid!") +/obj/machinery/door/firedoor/attack_hand(mob/user) + add_fingerprint(user) + if(welded || operating || stat & NOPOWER) return - - var/area/A = get_area_master(src) - ASSERT(istype(A)) // This worries me. - var/alarmed = A.air_doors_activated || A.fire - - var/access_granted = 0 - if(isAI(user) || isrobot(user)) - access_granted = 1 - - if(access_granted == 1) - user.visible_message("\blue \The [src] [density ? "open" : "close"]s for \the [user].",\ - "\The [src] [density ? "open" : "close"]s.",\ - "You hear a beep, and a door opening.") - - var/needs_to_close = 0 if(density) - if(alarmed) - needs_to_close = 1 - spawn() - open() + open() else - spawn() - close() + close() + +/obj/machinery/door/firedoor/attack_ai(mob/user) + attack_hand(user) - if(needs_to_close) - spawn(50) - if(alarmed) - nextstate = CLOSED +/obj/machinery/door/firedoor/attack_alien(mob/user) + add_fingerprint(user) + if(welded) + to_chat(user, "[src] refuses to budge!") + return + open() /obj/machinery/door/firedoor/do_animate(animation) switch(animation) @@ -215,32 +114,25 @@ flick("door_opening", src) if("closing") flick("door_closing", src) - return /obj/machinery/door/firedoor/update_icon() overlays.Cut() if(density) icon_state = "door_closed" - if(blocked) + if(welded) overlays += "welded" else icon_state = "door_open" - if(blocked) + if(welded) overlays += "welded_open" - return /obj/machinery/door/firedoor/open() - ..() + . = ..() latetoggle() - return /obj/machinery/door/firedoor/close() - ..() - if(locate(/mob/living) in get_turf(src)) - open() - return + . = ..() latetoggle() - return /obj/machinery/door/firedoor/proc/latetoggle() if(operating || stat & NOPOWER || !nextstate) @@ -252,23 +144,30 @@ if(CLOSED) nextstate = null close() - return - - -/obj/machinery/door/firedoor/border_only + +/obj/machinery/door/firedoor/proc/deconstruct(disassembled = TRUE) + if(can_deconstruct) + var/obj/structure/firelock_frame/F = new assembly_type(get_turf(src)) + if(disassembled) + F.constructionStep = CONSTRUCTION_PANEL_OPEN + else + F.constructionStep = CONSTRUCTION_WIRES_EXPOSED + F.update_icon() + qdel(src) + +/obj/machinery/door/firedoor/border_only icon = 'icons/obj/doors/edge_Doorfire.dmi' flags = ON_BORDER -/obj/machinery/door/firedoor/border_only/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) +/obj/machinery/door/firedoor/border_only/CanPass(atom/movable/mover, turf/target, height=0) if(istype(mover) && mover.checkpass(PASSGLASS)) return 1 if(get_dir(loc, target) == dir) //Make sure looking at appropriate border - if(air_group) return 0 return !density else return 1 -/obj/machinery/door/firedoor/border_only/CheckExit(atom/movable/mover as mob|obj, turf/target as turf) +/obj/machinery/door/firedoor/border_only/CheckExit(atom/movable/mover as mob|obj, turf/target) if(istype(mover) && mover.checkpass(PASSGLASS)) return 1 if(get_dir(loc, target) == dir) @@ -276,8 +175,215 @@ else return 1 -/obj/machinery/door/firedoor/border_only/CanAtmosPass(var/turf/T) +/obj/machinery/door/firedoor/border_only/CanAtmosPass(turf/T) if(get_dir(loc, T) == dir) return !density else - return 1 \ No newline at end of file + return 1 + +/obj/machinery/door/firedoor/heavy + name = "heavy firelock" + icon = 'icons/obj/doors/Doorfire.dmi' + glass = 0 + opacity = 1 + assembly_type = /obj/structure/firelock_frame/heavy + +/obj/item/weapon/firelock_electronics + name = "firelock circuitry" + icon = 'icons/obj/doors/door_assembly.dmi' + icon_state = "door_electronics" + desc = "A circuit board used in construction of firelocks." + w_class = 2 + materials = list(MAT_METAL=50, MAT_GLASS=50) + +/obj/structure/firelock_frame + name = "firelock frame" + desc = "A partially completed firelock." + icon = 'icons/obj/doors/Doorfire.dmi' + icon_state = "frame1" + anchored = 0 + density = 1 + var/constructionStep = CONSTRUCTION_NOCIRCUIT + var/reinforced = 0 + +/obj/structure/firelock_frame/heavy + name = "heavy firelock frame" + reinforced = 1 + +/obj/structure/firelock_frame/examine(mob/user) + ..() + switch(constructionStep) + if(CONSTRUCTION_PANEL_OPEN) + to_chat(user, "There is a small metal plate covering the wires.") + if(CONSTRUCTION_WIRES_EXPOSED) + to_chat(user, "Wires are trailing from the maintenance panel.") + if(CONSTRUCTION_GUTTED) + to_chat(user, "The circuit board is visible.") + if(CONSTRUCTION_NOCIRCUIT) + to_chat(user, "There are no electronics in the frame.") + +/obj/structure/firelock_frame/update_icon() + ..() + icon_state = "frame[constructionStep]" + +/obj/structure/firelock_frame/attackby(obj/item/weapon/C, mob/user) + switch(constructionStep) + if(CONSTRUCTION_PANEL_OPEN) + if(istype(C, /obj/item/weapon/crowbar)) + playsound(get_turf(src), 'sound/items/Crowbar.ogg', 50, 1) + user.visible_message("[user] starts prying something out from [src]...", \ + "You begin prying out the wire cover...") + if(!do_after(user, 50, target = src)) + return + if(constructionStep != CONSTRUCTION_PANEL_OPEN) + return + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + user.visible_message("[user] pries out a metal plate from [src], exposing the wires.", \ + "You remove the cover plate from [src], exposing the wires.") + constructionStep = CONSTRUCTION_WIRES_EXPOSED + update_icon() + return + if(istype(C, /obj/item/weapon/wrench)) + if(locate(/obj/machinery/door/firedoor) in get_turf(src)) + to_chat(user, "There's already a firelock there.") + return + playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1) + user.visible_message("[user] starts bolting down [src]...", \ + "You begin bolting [src]...") + if(!do_after(user, 30, target = src)) + return + if(locate(/obj/machinery/door/firedoor) in get_turf(src)) + return + user.visible_message("[user] finishes the firelock.", \ + "You finish the firelock.") + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + if(reinforced) + new /obj/machinery/door/firedoor/heavy(get_turf(src)) + else + new /obj/machinery/door/firedoor(get_turf(src)) + qdel(src) + return + if(istype(C, /obj/item/stack/sheet/plasteel)) + var/obj/item/stack/sheet/plasteel/P = C + if(reinforced) + to_chat(user, "[src] is already reinforced.") + return + if(P.get_amount() < 2) + to_chat(user, "You need more plasteel to reinforce [src].") + return + user.visible_message("[user] begins reinforcing [src]...", \ + "You begin reinforcing [src]...") + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + if(do_after(user, 60, target = src)) + if(constructionStep != CONSTRUCTION_PANEL_OPEN || reinforced || P.get_amount() < 2 || !P) + return + user.visible_message("[user] reinforces [src].", \ + "You reinforce [src].") + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + P.use(2) + reinforced = 1 + return + + if(CONSTRUCTION_WIRES_EXPOSED) + if(istype(C, /obj/item/weapon/wirecutters)) + playsound(get_turf(src), 'sound/items/Wirecutter.ogg', 50, 1) + user.visible_message("[user] starts cutting the wires from [src]...", \ + "You begin removing [src]'s wires...") + if(!do_after(user, 60, target = src)) + return + if(constructionStep != CONSTRUCTION_WIRES_EXPOSED) + return + user.visible_message("[user] removes the wires from [src].", \ + "You remove the wiring from [src], exposing the circuit board.") + var/obj/item/stack/cable_coil/B = new(get_turf(src)) + B.amount = 5 + constructionStep = CONSTRUCTION_GUTTED + update_icon() + return + if(istype(C, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/W = C + if(W.remove_fuel(1, user)) + playsound(get_turf(src), 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user] starts welding a metal plate into [src]...", \ + "You begin welding the cover plate back onto [src]...") + if(!do_after(user, 80, target = src)) + return + if(constructionStep != CONSTRUCTION_WIRES_EXPOSED) + return + playsound(get_turf(src), 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user] welds the metal plate into [src].", \ + "You weld [src]'s cover plate into place, hiding the wires.") + constructionStep = CONSTRUCTION_PANEL_OPEN + update_icon() + return + if(CONSTRUCTION_GUTTED) + if(istype(C, /obj/item/weapon/crowbar)) + user.visible_message("[user] begins removing the circuit board from [src]...", \ + "You begin prying out the circuit board from [src]...") + playsound(get_turf(src), 'sound/items/Crowbar.ogg', 50, 1) + if(!do_after(user, 50, target = src)) + return + if(constructionStep != CONSTRUCTION_GUTTED) + return + user.visible_message("[user] removes [src]'s circuit board.", \ + "You remove the circuit board from [src].") + new /obj/item/weapon/firelock_electronics(get_turf(src)) + playsound(get_turf(src), 'sound/items/Crowbar.ogg', 50, 1) + constructionStep = CONSTRUCTION_NOCIRCUIT + update_icon() + return + if(istype(C, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/B = C + if(B.get_amount() < 5) + to_chat(user, "You need more wires to add wiring to [src].") + return + user.visible_message("[user] begins wiring [src]...", \ + "You begin adding wires to [src]...") + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + if(do_after(user, 60, target = src)) + if(constructionStep != CONSTRUCTION_GUTTED || B.get_amount() < 5 || !B) + return + user.visible_message("[user] adds wires to [src].", \ + "You wire [src].") + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + B.use(5) + constructionStep = CONSTRUCTION_WIRES_EXPOSED + update_icon() + return + if(CONSTRUCTION_NOCIRCUIT) + if(istype(C, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/W = C + if(W.remove_fuel(1,user)) + playsound(get_turf(src), 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user] begins cutting apart [src]'s frame...", \ + "You begin slicing [src] apart...") + if(!do_after(user, 80, target = src)) + return + if(constructionStep != CONSTRUCTION_NOCIRCUIT) + return + user.visible_message("[user] cuts apart [src]!", \ + "You cut [src] into metal.") + playsound(get_turf(src), 'sound/items/Welder2.ogg', 50, 1) + var/turf/T = get_turf(src) + new /obj/item/stack/sheet/metal(T, 3) + if(reinforced) + new /obj/item/stack/sheet/plasteel(T, 2) + qdel(src) + return + if(istype(C, /obj/item/weapon/firelock_electronics)) + user.visible_message("[user] starts adding [C] to [src]...", \ + "You begin adding a circuit board to [src]...") + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + if(!do_after(user, 40, target = src)) + return + if(constructionStep != CONSTRUCTION_NOCIRCUIT) + return + user.drop_item() + qdel(C) + user.visible_message("[user] adds a circuit to [src].", \ + "You insert and secure [C].") + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + constructionStep = CONSTRUCTION_GUTTED + update_icon() + return + return ..() \ No newline at end of file diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 55b7a18c936..2a2595c6b7b 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -1117,7 +1117,7 @@ icon_state = "engivend" icon_deny = "engivend-deny" req_access_txt = "11" //Engineering Equipment access - products = list(/obj/item/clothing/glasses/meson = 2,/obj/item/device/multitool = 4,/obj/item/weapon/airlock_electronics = 10,/obj/item/weapon/firealarm_electronics = 10,/obj/item/weapon/apc_electronics = 10,/obj/item/weapon/airalarm_electronics = 10,/obj/item/weapon/stock_parts/cell/high = 10,/obj/item/weapon/camera_assembly = 10) + products = list(/obj/item/clothing/glasses/meson = 2,/obj/item/device/multitool = 4,/obj/item/weapon/airlock_electronics = 10,/obj/item/weapon/firelock_electronics = 10,/obj/item/weapon/firealarm_electronics = 10,/obj/item/weapon/apc_electronics = 10,/obj/item/weapon/airalarm_electronics = 10,/obj/item/weapon/stock_parts/cell/high = 10,/obj/item/weapon/camera_assembly = 10) contraband = list(/obj/item/weapon/stock_parts/cell/potato = 3) premium = list(/obj/item/weapon/storage/belt/utility = 3) diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index affe4c12145..e6fb946d50d 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -109,7 +109,7 @@ /obj/structure/door_assembly/door_assembly_glass/attackby(obj/item/W as obj, mob/user as mob, params) if(is_type_in_list(W, items_allowed) || glass == 1) ..() - else if(istype(W, /obj/item/stack/cable_coil) + else if(istype(W, /obj/item/stack/cable_coil)) to_chat(user, "You need to insert the airlock's glass first.") else ..() diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm index 7adcc187109..8ee4771d0ed 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm @@ -138,7 +138,7 @@ var/global/list/ts_spiderlist = list() else if(istype(target, /obj/machinery/door/firedoor)) var/obj/machinery/door/firedoor/F = target if(F.density) - if(F.blocked) + if(F.welded) to_chat(src, "The fire door is welded shut.") else visible_message("\The [src] pries open the firedoor!") @@ -293,7 +293,7 @@ var/global/list/ts_spiderlist = list() try_open_airlock(L) if(istype(A, /obj/machinery/door/firedoor)) var/obj/machinery/door/firedoor/F = A - if(F.density && !F.blocked) + if(F.density && !F.welded) F.open() ..() diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index f34d9797124..1599d7bb99f 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -130,6 +130,14 @@ materials = list(MAT_METAL = 50, MAT_GLASS = 50) build_path = /obj/item/weapon/airlock_electronics category = list("initial", "Electronics") + +/datum/design/firelock_board + name = "Firelock Electronics" + id = "firelock_board" + build_type = AUTOLATHE + materials = list(MAT_METAL = 50, MAT_GLASS = 50) + build_path = /obj/item/weapon/firelock_electronics + category = list("initial", "Electronics") /datum/design/apc_electronics name="Power Control Module" From f1f0f9358f84a4317913beaa9a47b26f0145441b Mon Sep 17 00:00:00 2001 From: Markolie Date: Sat, 28 Jan 2017 23:28:32 +0100 Subject: [PATCH 013/101] Construction fixes --- code/game/machinery/doors/firedoor.dm | 7 +++++-- code/game/objects/items/stacks/sheets/sheet_types.dm | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 7bf188c48f6..c4e2ff935fb 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -22,7 +22,7 @@ var/assembly_type = /obj/structure/firelock_frame var/nextstate = null var/welded = 0 - var/boltslocked = 0 + var/boltslocked = 1 var/can_deconstruct = 1 /obj/machinery/door/firedoor/Bumped(atom/AM) @@ -77,6 +77,7 @@ return else to_chat(user, "\The [src] is welded solid!") + return if(istype(C, /obj/item/weapon/crowbar) || istype(C, /obj/item/weapon/twohanded/fireaxe)) if(istype(C, /obj/item/weapon/twohanded/fireaxe)) @@ -189,7 +190,7 @@ assembly_type = /obj/structure/firelock_frame/heavy /obj/item/weapon/firelock_electronics - name = "firelock circuitry" + name = "firelock electronics" icon = 'icons/obj/doors/door_assembly.dmi' icon_state = "door_electronics" desc = "A circuit board used in construction of firelocks." @@ -221,6 +222,8 @@ to_chat(user, "The circuit board is visible.") if(CONSTRUCTION_NOCIRCUIT) to_chat(user, "There are no electronics in the frame.") + if(reinforced) + to_chat(user, "The frame is reinforced.") /obj/structure/firelock_frame/update_icon() ..() diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 503e0e5a1be..9a579b16bb6 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -53,6 +53,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list( new /datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 50, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("machine frame", /obj/machinery/constructable_frame/machine_frame, 5, time = 25, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = 1, on_floor = 1), + new /datum/stack_recipe("firelock frame", /obj/structure/firelock_frame, 3, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("meatspike frame", /obj/structure/kitchenspike_frame, 5, time = 25, one_per_turf = 1, on_floor = 1), null, new /datum/stack_recipe_list("airlock assemblies", list( From 3c4a7100d040141af873679ea19e51512e94b01f Mon Sep 17 00:00:00 2001 From: Markolie Date: Sat, 28 Jan 2017 23:34:30 +0100 Subject: [PATCH 014/101] Make heavy firedoors more resistant to explosions --- code/game/machinery/doors/firedoor.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index c4e2ff935fb..ca4dddd92b0 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -188,6 +188,11 @@ glass = 0 opacity = 1 assembly_type = /obj/structure/firelock_frame/heavy + +/obj/machinery/door/firedoor/heavy/ex_act(severity) + switch(severity) + if(1.0) + qdel(src) /obj/item/weapon/firelock_electronics name = "firelock electronics" From 063b5728ad930919bd16bc203925bdd581f74ae1 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sat, 28 Jan 2017 23:39:59 +0100 Subject: [PATCH 015/101] Welp, revert glass airlock changes --- code/game/machinery/doors/airlock.dm | 1 - .../items/stacks/sheets/sheet_types.dm | 1 - code/game/objects/structures/door_assembly.dm | 19 ------------------ icons/obj/doors/door_assembly.dmi | Bin 47904 -> 47022 bytes 4 files changed, 21 deletions(-) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index d6b86307d63..114bada5e19 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -94,7 +94,6 @@ name = "Glass Airlock" icon = 'icons/obj/doors/Doorglass.dmi' opacity = 0 - assembly_type = /obj/structure/door_assembly/door_assembly_glass glass = 1 doorOpen = 'sound/machines/windowdoor.ogg' doorClose = 'sound/machines/windowdoor.ogg' diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 9a579b16bb6..bbc977224f5 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -70,7 +70,6 @@ var/global/list/datum/stack_recipe/metal_recipes = list( new /datum/stack_recipe("freezer airlock assembly", /obj/structure/door_assembly/door_assembly_fre, 4, time = 50, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("airtight hatch assembly", /obj/structure/door_assembly/door_assembly_hatch, 4, time = 50, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("maintenance hatch assembly", /obj/structure/door_assembly/door_assembly_mhatch, 4, time = 50, one_per_turf = 1, on_floor = 1), - new /datum/stack_recipe("glass airlock assembly", /obj/structure/door_assembly/door_assembly_glass, 4, time = 50, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("high security airlock assembly", /obj/structure/door_assembly/door_assembly_highsecurity, 4, time = 50, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("multi-tile airlock assembly", /obj/structure/door_assembly/multi_tile, 4, time = 50, one_per_turf = 1, on_floor = 1), ), 4), diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index e6fb946d50d..dc7152bbd5f 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -94,25 +94,6 @@ base_name = "Maintenance Hatch" airlock_type = "/maintenance_hatch" glass = -1 - -/obj/structure/door_assembly/door_assembly_glass - base_icon_state = "glass" - base_name = "Glass Airlock" - airlock_type = "/glass" - glass_type = "/glass" - var/list/items_allowed // The glass airlock does not have a "base" type to which glass can be inserted, so this list is used to ensure players have to insert reinforced glass first before constructing it - -/obj/structure/door_assembly/door_assembly_glass/New() - ..() - items_allowed = typecacheof(list(/obj/item/weapon/weldingtool, /obj/item/weapon/wrench, /obj/item/weapon/pen, /obj/item/stack/sheet/rglass)) - -/obj/structure/door_assembly/door_assembly_glass/attackby(obj/item/W as obj, mob/user as mob, params) - if(is_type_in_list(W, items_allowed) || glass == 1) - ..() - else if(istype(W, /obj/item/stack/cable_coil)) - to_chat(user, "You need to insert the airlock's glass first.") - else - ..() /obj/structure/door_assembly/door_assembly_highsecurity // Borrowing this until WJohnston makes sprites for the assembly base_icon_state = "highsec" diff --git a/icons/obj/doors/door_assembly.dmi b/icons/obj/doors/door_assembly.dmi index ae045bbb501fca11fadbbe066b67cb46dd65609d..232a54da3177100522a552e80a016dcf6b8e3fdc 100644 GIT binary patch delta 5839 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 HD(wFNmK{Hs From 707bdc584bcaa2e3acaf8cf1b175d7d38e514925 Mon Sep 17 00:00:00 2001 From: Kyep Date: Mon, 30 Jan 2017 23:35:07 -0800 Subject: [PATCH 016/101] Enables AI hologram to move between holopads --- code/game/machinery/hologram.dm | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 41952adf355..cd6cba323f9 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -28,6 +28,7 @@ Possible to do for anyone motivated enough: // 0 = RANGE BASED // 1 = AREA BASED var/const/HOLOPAD_MODE = 0 +var/list/holopads = list() /obj/machinery/hologram/holopad name = "\improper AI holopad" @@ -42,6 +43,7 @@ var/const/HOLOPAD_MODE = 0 /obj/machinery/hologram/holopad/New() ..() + holopads += src component_parts = list() component_parts += new /obj/item/weapon/circuitboard/holopad(null) component_parts += new /obj/item/weapon/stock_parts/capacitor(null) @@ -89,13 +91,15 @@ var/const/HOLOPAD_MODE = 0 if(user.eyeobj.loc != src.loc)//Set client eye on the object if it's not already. user.eyeobj.setLoc(get_turf(src)) else if(!hologram)//If there is no hologram, possibly make one. - activate_holo(user) + activate_holo(user, 0) else if(master == user)//If there is a hologram, remove it. But only if the user is the master. Otherwise do nothing. clear_holo() return -/obj/machinery/hologram/holopad/proc/activate_holo(mob/living/silicon/ai/user) - if(!(stat & NOPOWER) && user.eyeobj.loc == src.loc)//If the projector has power and client eye is on it. +/obj/machinery/hologram/holopad/proc/activate_holo(mob/living/silicon/ai/user, var/force = 0) + if(!force && user.eyeobj.loc != src.loc) // allows holopads to pass off holograms to the next holopad in the chain + to_chat(user, "ERROR: Unable to project hologram.") + else if(!(stat & NOPOWER))//If the projector has power if(user.holo) var/obj/machinery/hologram/holopad/current = user.holo current.clear_holo() @@ -163,7 +167,15 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ if(eye_area != holo_area) return 1 + var/mob/living/silicon/ai/theai = master + var/turf/target_turf = get_turf(master.eyeobj) clear_holo()//If not, we want to get rid of the hologram. + var/obj/machinery/hologram/holopad/pad_close = get_closest_atom(/obj/machinery/hologram/holopad, holopads, theai.eyeobj) + if(get_dist(pad_close, theai.eyeobj) <= pad_close.holo_range) + if(!(pad_close.stat & NOPOWER) && !pad_close.hologram) + pad_close.activate_holo(theai, 1) + if(pad_close.hologram) + pad_close.hologram.forceMove(target_turf) return 1 /obj/machinery/hologram/holopad/proc/move_hologram() @@ -221,6 +233,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ return /obj/machinery/hologram/holopad/Destroy() + holopads -= src if(hologram) clear_holo() return ..() From 0710a8262fd6b5aa7b81f32b4ca1b50ddda36479 Mon Sep 17 00:00:00 2001 From: Kyep Date: Mon, 30 Jan 2017 23:46:44 -0800 Subject: [PATCH 017/101] Also handles direction --- code/game/machinery/hologram.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index cd6cba323f9..aa345e29643 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -169,6 +169,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ var/mob/living/silicon/ai/theai = master var/turf/target_turf = get_turf(master.eyeobj) + var/newdir = hologram.dir clear_holo()//If not, we want to get rid of the hologram. var/obj/machinery/hologram/holopad/pad_close = get_closest_atom(/obj/machinery/hologram/holopad, holopads, theai.eyeobj) if(get_dist(pad_close, theai.eyeobj) <= pad_close.holo_range) @@ -176,6 +177,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ pad_close.activate_holo(theai, 1) if(pad_close.hologram) pad_close.hologram.forceMove(target_turf) + pad_close.hologram.dir = newdir return 1 /obj/machinery/hologram/holopad/proc/move_hologram() From 4a9f7f28f724a7fbdd2462b12801732f78c68db5 Mon Sep 17 00:00:00 2001 From: KasparoVy Date: Tue, 31 Jan 2017 05:01:23 -0500 Subject: [PATCH 018/101] Traitor Steal Objective now Checks Storage Implants Does what it says on the tin. In assessing the completion of a steal objective, storage implants will now be checked. --- .../items/weapons/implants/implant_storage.dm | 4 ++ code/modules/mob/living/living.dm | 38 ++++++++++--------- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/code/game/objects/items/weapons/implants/implant_storage.dm b/code/game/objects/items/weapons/implants/implant_storage.dm index 454c08f9df1..fba9c1377ef 100644 --- a/code/game/objects/items/weapons/implants/implant_storage.dm +++ b/code/game/objects/items/weapons/implants/implant_storage.dm @@ -49,6 +49,10 @@ return ..() +/obj/item/weapon/implant/storage/proc/get_contents() //Used for swiftly returning a list of the implant's contents i.e. for checking a theft objective's completion. + if(storage && storage.contents) + return storage.contents + /obj/item/weapon/implanter/storage name = "implanter (storage)" diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index c1f3f338893..d76ef650827 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -40,14 +40,14 @@ set category = "Object" if(AM.Adjacent(src)) - src.start_pulling(AM) + start_pulling(AM) return //same as above /mob/living/pointed(atom/A as mob|obj|turf in view()) if(incapacitated()) return 0 - if(src.status_flags & FAKEDEATH) + if(status_flags & FAKEDEATH) return 0 if(!..()) return 0 @@ -70,7 +70,7 @@ to_chat(src, "You have given up life and succumbed to death.") /mob/living/proc/InCritical() - return (src.health < 0 && src.health > -95.0 && stat == UNCONSCIOUS) + return (health < 0 && health > -95.0 && stat == UNCONSCIOUS) /mob/living/ex_act(severity) ..() @@ -106,7 +106,7 @@ if(actual < desired) temperature = desired // if(istype(src, /mob/living/carbon/human)) -// to_chat(world, "[src] ~ [src.bodytemperature] ~ [temperature]") +// to_chat(world, "[src] ~ [bodytemperature] ~ [temperature]") return temperature @@ -220,29 +220,31 @@ else - L += src.contents - for(var/obj/item/weapon/storage/S in src.contents) //Check for storage items + L += contents + for(var/obj/item/weapon/storage/S in contents) //Check for storage items L += get_contents(S) - for(var/obj/item/clothing/suit/storage/S in src.contents)//Check for labcoats and jackets + for(var/obj/item/clothing/suit/storage/S in contents)//Check for labcoats and jackets L += get_contents(S) - for(var/obj/item/clothing/accessory/storage/S in src.contents)//Check for holsters + for(var/obj/item/clothing/accessory/storage/S in contents)//Check for holsters L += get_contents(S) - for(var/obj/item/weapon/gift/G in src.contents) //Check for gift-wrapped items + for(var/obj/item/weapon/implant/storage/I in contents) //Check for storage implants. + L += I.get_contents() + for(var/obj/item/weapon/gift/G in contents) //Check for gift-wrapped items L += G.gift if(istype(G.gift, /obj/item/weapon/storage)) L += get_contents(G.gift) - for(var/obj/item/smallDelivery/D in src.contents) //Check for package wrapped items + for(var/obj/item/smallDelivery/D in contents) //Check for package wrapped items L += D.wrapped if(istype(D.wrapped, /obj/item/weapon/storage)) //this should never happen L += get_contents(D.wrapped) - for(var/obj/item/weapon/folder/F in src.contents) + for(var/obj/item/weapon/folder/F in contents) L += F.contents //Folders can't store any storage items. return L /mob/living/proc/check_contents_for(A) - var/list/L = src.get_contents() + var/list/L = get_contents() for(var/obj/B in L) if(B.type == A) @@ -265,27 +267,27 @@ /mob/living/proc/heal_organ_damage(var/brute, var/burn) adjustBruteLoss(-brute) adjustFireLoss(-burn) - src.updatehealth() + updatehealth() // damage ONE external organ, organ gets randomly selected from damaged ones. /mob/living/proc/take_organ_damage(var/brute, var/burn) if(status_flags & GODMODE) return 0 //godmode adjustBruteLoss(brute) adjustFireLoss(burn) - src.updatehealth() + updatehealth() // heal MANY external organs, in random order /mob/living/proc/heal_overall_damage(var/brute, var/burn) adjustBruteLoss(-brute) adjustFireLoss(-burn) - src.updatehealth() + updatehealth() // damage MANY external organs, in random order /mob/living/proc/take_overall_damage(var/brute, var/burn, var/used_weapon = null) if(status_flags & GODMODE) return 0 //godmode adjustBruteLoss(brute) adjustFireLoss(burn) - src.updatehealth() + updatehealth() /mob/living/proc/has_organic_damage() return (maxHealth - health) @@ -359,7 +361,7 @@ if(buckled) //Unbuckle the mob and clear the alerts. buckled.buckled_mob = null buckled = null - anchored = initial(src.anchored) + anchored = initial(anchored) update_canmove() clear_alert("buckled") post_buckle_mob(src) @@ -647,7 +649,7 @@ // The src mob is trying to place an item on someone // Override if a certain mob should be behave differently when placing items (can't, for example) /mob/living/stripPanelEquip(obj/item/what, mob/who, where, var/silent = 0) - what = src.get_active_hand() + what = get_active_hand() if(what && (what.flags & NODROP)) to_chat(src, "You can't put \the [what.name] on [who], it's stuck to your hand!") return From 78a25181356586b59d1ed9e018160c74fa5364d6 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Tue, 31 Jan 2017 20:44:52 -0500 Subject: [PATCH 019/101] Monkey cube refactor, pre-map --- code/datums/supplypacks.dm | 16 +++--- .../objects/items/weapons/storage/boxes.dm | 57 +++++-------------- code/modules/food_and_drinks/food/snacks.dm | 37 +----------- 3 files changed, 25 insertions(+), 85 deletions(-) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 7a8f05e08fc..33cdab32a38 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -905,28 +905,28 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /datum/supply_packs/organic/farwa name = "Farwa Crate" - contains = list (/obj/item/weapon/storage/box/farwacubes) - cost = 30 + contains = list (/obj/item/weapon/storage/box/monkeycubes/farwacubes) + cost = 20 containername = "farwa crate" /datum/supply_packs/organic/wolpin name = "Wolpin Crate" - contains = list (/obj/item/weapon/storage/box/wolpincubes) - cost = 30 + contains = list (/obj/item/weapon/storage/box/monkeycubes/wolpincubes) + cost = 20 containername = "wolpin crate" /datum/supply_packs/organic/skrell name = "Neaera Crate" - contains = list (/obj/item/weapon/storage/box/neaeracubes) - cost = 30 + contains = list (/obj/item/weapon/storage/box/monkeycubes/neaeracubes) + cost = 20 containername = "neaera crate" /datum/supply_packs/organic/stok name = "Stok Crate" - contains = list (/obj/item/weapon/storage/box/stokcubes) - cost = 30 + contains = list (/obj/item/weapon/storage/box/monkeycubes/stokcubes) + cost = 20 containername = "stok crate" /datum/supply_packs/organic/party diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index bfdc3a80727..88820290a48 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -391,59 +391,32 @@ icon_state = "monkeycubebox" storage_slots = 7 can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/monkeycube") - New() - ..() - for(var/i = 1; i <= 5; i++) - new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped(src) -/obj/item/weapon/storage/box/farwacubes + var/monkey_cube_type = /obj/item/weapon/reagent_containers/food/snacks/monkeycube + +/obj/item/weapon/storage/box/monkeycubes/New() + ..() + for(var/i in 1 to 5) + new monkey_cube_type(src) + +/obj/item/weapon/storage/box/monkeycubes/farwacubes name = "farwa cube box" desc = "Drymate brand farwa cubes. Just add water!" - icon = 'icons/obj/food/food.dmi' - icon_state = "monkeycubebox" - storage_slots = 7 - can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/farwacube") - New() - ..() - for(var/i = 1; i <= 5; i++) - new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/farwacube(src) + monkey_cube_type = /obj/item/weapon/reagent_containers/food/snacks/monkeycube/farwacube -/obj/item/weapon/storage/box/stokcubes +/obj/item/weapon/storage/box/monkeycubes/stokcubes name = "stok cube box" desc = "Drymate brand stok cubes. Just add water!" - icon = 'icons/obj/food/food.dmi' - icon_state = "monkeycubebox" - storage_slots = 7 - can_hold = list("/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/stokcube") - New() - ..() - for(var/i = 1; i <= 5; i++) - new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/stokcube(src) + monkey_cube_type = /obj/item/weapon/reagent_containers/food/snacks/monkeycube/stokcube -/obj/item/weapon/storage/box/neaeracubes +/obj/item/weapon/storage/box/monkeycubes/neaeracubes name = "neaera cube box" desc = "Drymate brand neaera cubes. Just add water!" - icon = 'icons/obj/food/food.dmi' - icon_state = "monkeycubebox" - storage_slots = 7 - can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/neaeracube") - New() - ..() - for(var/i = 1; i <= 5; i++) - new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/neaeracube(src) + monkey_cube_type = /obj/item/weapon/reagent_containers/food/snacks/monkeycube/neaeracube - -/obj/item/weapon/storage/box/wolpincubes +/obj/item/weapon/storage/box/monkeycubes/wolpincubes name = "wolpin cube box" desc = "Drymate brand wolpin cubes. Just add water!" - icon = 'icons/obj/food/food.dmi' - icon_state = "monkeycubebox" - storage_slots = 7 - can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/wolpincube") - New() - ..() - for(var/i = 1; i <= 5; i++) - new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/wolpincube(src) - + monkey_cube_type = /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wolpincube /obj/item/weapon/storage/box/permits name = "box of construction permits" diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index dd5884606d0..dd0d1101982 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -1190,7 +1190,7 @@ /obj/item/weapon/reagent_containers/food/snacks/monkeycube/afterattack(obj/O, mob/user, proximity) if(!proximity) return - if(istype(O,/obj/structure/sink) && !wrapped) + if(istype(O, /obj/structure/sink)) to_chat(user, "You place [src] under a stream of water...") user.drop_item() forceMove(get_turf(O)) @@ -1199,22 +1199,16 @@ var/obj/machinery/computer/camera_advanced/xenobio/X = O X.monkeys++ to_chat(user, "You feed [src] to the [X]. It now has [X.monkeys] monkey cubes stored.") + user.drop_item() qdel(src) return ..() -/obj/item/weapon/reagent_containers/food/snacks/monkeycube/attack_self(mob/user) - if(wrapped) - Unwrap(user) - /obj/item/weapon/reagent_containers/food/snacks/monkeycube/water_act(volume, temperature) if(volume >= 5) return Expand() /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wash(mob/user, atom/source) - if(wrapped) - ..() - return if(do_after(user, 40, target = source)) return 1 @@ -1224,49 +1218,22 @@ new/mob/living/carbon/human(get_turf(src),monkey_type) qdel(src) -/obj/item/weapon/reagent_containers/food/snacks/monkeycube/proc/Unwrap(mob/user) - icon_state = "monkeycube" - desc = "Just add water!" - to_chat(user, "You unwrap the cube.") - wrapped = 0 - -/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped - desc = "Still wrapped in some paper." - icon_state = "monkeycubewrap" - wrapped = 1 - /obj/item/weapon/reagent_containers/food/snacks/monkeycube/farwacube name = "farwa cube" monkey_type = "Farwa" -/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/farwacube - name = "farwa cube" - monkey_type = "Farwa" - /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wolpincube name = "wolpin cube" monkey_type = "Wolpin" -/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/wolpincube - name = "wolpin cube" - monkey_type = "Wolpin" - /obj/item/weapon/reagent_containers/food/snacks/monkeycube/stokcube name = "stok cube" monkey_type = "Stok" -/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/stokcube - name = "stok cube" - monkey_type = "Stok" - /obj/item/weapon/reagent_containers/food/snacks/monkeycube/neaeracube name = "neaera cube" monkey_type = "Neara" -/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/neaeracube - name = "neaera cube" - monkey_type = "Neara" - /obj/item/weapon/reagent_containers/food/snacks/spellburger name = "Spell Burger" From dff947b54b9301128022488d0c73cb28ff2e1199 Mon Sep 17 00:00:00 2001 From: Kyep Date: Thu, 2 Feb 2017 01:26:59 -0800 Subject: [PATCH 020/101] Shuttles M1, M2, S1 --- _maps/map_files/templates/medium_shuttle1.dmm | 52 ++++++++++----- _maps/map_files/templates/medium_shuttle2.dmm | 53 ++++++++++----- _maps/map_files/templates/small_shuttle_1.dmm | 65 ++++++++++--------- 3 files changed, 108 insertions(+), 62 deletions(-) diff --git a/_maps/map_files/templates/medium_shuttle1.dmm b/_maps/map_files/templates/medium_shuttle1.dmm index ee0c3ef5876..a39a70dcc5a 100644 --- a/_maps/map_files/templates/medium_shuttle1.dmm +++ b/_maps/map_files/templates/medium_shuttle1.dmm @@ -6,41 +6,61 @@ "f" = (/turf/simulated/shuttle/wall,/turf/simulated/shuttle/wall{tag = "icon-wall3 (SOUTHEAST)"; icon_state = "wall3"; dir = 6},/area/ruin/powered{name = "Shuttle"}) "g" = (/turf/simulated/shuttle/wall,/area/ruin/powered{name = "Shuttle"}) "h" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/ruin/powered{name = "Shuttle"}) -"i" = (/turf/simulated/shuttle/wall{tag = "icon-diagonalWall (SOUTHEAST)"; icon_state = "diagonalWall"; dir = 6},/area/ruin/powered{name = "Shuttle"}) +"i" = (/obj/machinery/power/smes/magical{name = "super smes"},/turf/simulated/floor/plasteel,/area/ruin/powered{name = "Shuttle"}) "j" = (/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) "k" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) -"l" = (/obj/machinery/door/airlock/glass,/turf/space,/area/ruin/powered{name = "Shuttle"}) +"l" = (/obj/structure/computerframe,/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) "m" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor/plasteel{tag = "icon-bluefull"; icon_state = "bluefull"},/area/ruin/powered{name = "Shuttle"}) -"n" = (/obj/machinery/sleeper{tag = "icon-sleeper (NORTH)"; icon_state = "sleeper"; dir = 1},/turf/simulated/floor/plasteel{tag = "icon-bluefull"; icon_state = "bluefull"},/area/ruin/powered{name = "Shuttle"}) +"n" = (/obj/structure/table,/obj/item/clothing/head/helmet/space/eva,/obj/item/clothing/suit/space/eva,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) "o" = (/turf/simulated/floor/plasteel,/area/ruin/powered{name = "Shuttle"}) "p" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/plasteel,/area/ruin/powered{name = "Shuttle"}) "q" = (/turf/simulated/floor/plasteel{tag = "icon-bluefull"; icon_state = "bluefull"},/area/ruin/powered{name = "Shuttle"}) "r" = (/turf/simulated/floor/plasteel{tag = "icon-whiteyellowfull"; icon_state = "whiteyellowfull"},/area/ruin/powered{name = "Shuttle"}) "s" = (/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{tag = "icon-whiteyellowfull"; icon_state = "whiteyellowfull"},/area/ruin/powered{name = "Shuttle"}) "t" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/ruin/powered{name = "Shuttle"}) -"u" = (/obj/machinery/power/smes/magical,/turf/simulated/floor/plasteel,/area/ruin/powered{name = "Shuttle"}) +"u" = (/obj/machinery/teleport/hub,/obj/item/weapon/hand_tele,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) "v" = (/turf/simulated/floor/plating,/turf/simulated/shuttle/wall{tag = "icon-window1"; icon_state = "window1"},/area/ruin/powered{name = "Shuttle"}) -"w" = (/turf/simulated/shuttle/wall{tag = "icon-diagonalWall (NORTHWEST)"; icon_state = "diagonalWall"; dir = 9},/area/ruin/powered{name = "Shuttle"}) +"w" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) "x" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-diagonalWall (NORTHWEST)"; icon_state = "diagonalWall"; dir = 9},/area/ruin/powered{name = "Shuttle"}) "y" = (/turf/simulated/shuttle/wall{tag = "icon-wall"; icon_state = "wall"},/area/ruin/powered{name = "Shuttle"}) "z" = (/obj/structure/shuttle/engine/propulsion/burst/right{tag = "icon-burst_r (EAST)"; icon_state = "burst_r"; dir = 4},/turf/space,/area/ruin/powered{name = "Shuttle"}) "A" = (/turf/simulated/shuttle/wall,/turf/simulated/shuttle/wall{tag = "icon-wall3 (NORTHEAST)"; icon_state = "wall3"; dir = 5},/area/ruin/powered{name = "Shuttle"}) "B" = (/turf/space,/turf/simulated/shuttle{tag = "icon-wall3 (SOUTHEAST)"; icon_state = "wall3"; dir = 6},/area/ruin/powered{name = "Shuttle"}) +"C" = (/obj/machinery/light{dir = 1},/obj/machinery/teleport/station,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"D" = (/obj/machinery/light,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"E" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"F" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"G" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-diagonalWall (SOUTHEAST)"; icon_state = "diagonalWall"; dir = 6},/area/ruin/powered{name = "Shuttle"}) +"H" = (/obj/machinery/sleeper,/turf/simulated/floor/plasteel{tag = "icon-bluefull"; icon_state = "bluefull"},/area/ruin/powered{name = "Shuttle"}) +"I" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/purple,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"J" = (/obj/machinery/vending/medical,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"K" = (/obj/machinery/light{dir = 4},/obj/machinery/vending/engivend,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"L" = (/obj/structure/stool/bed/chair/comfy/black{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-whiteyellowfull"; icon_state = "whiteyellowfull"},/area/ruin/powered{name = "Shuttle"}) +"M" = (/obj/machinery/computer,/turf/simulated/floor/plasteel{tag = "icon-whiteyellowfull"; icon_state = "whiteyellowfull"},/area/ruin/powered{name = "Shuttle"}) +"N" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical,/obj/item/clothing/gloves/color/yellow,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"O" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel,/area/ruin/powered{name = "Shuttle"}) +"P" = (/obj/machinery/light,/turf/simulated/floor/plasteel,/area/ruin/powered{name = "Shuttle"}) +"Q" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility/full/multitool,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"R" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"S" = (/obj/item/device/radio/beacon,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"T" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-diagonalWall (SOUTHEAST)"; icon_state = "diagonalWall"; dir = 6},/area/space) +"U" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/item/weapon/gun/energy/laser/retro,/turf/simulated/floor/plasteel{tag = "icon-whiteyellowfull"; icon_state = "whiteyellowfull"},/area/ruin/powered{name = "Shuttle"}) (1,1,1) = {" aaabcdddeaaaaaaaaaaaaaa aaabcddddeaaaaaaaaaaaaa -aaabcfgggghhgiaaaaaaaaa -aaggggjjjgjjggiaaaaaaaa -aagjjkjjjglggggggggiaaa -ggggkggkggjjgmngjjggggi -hopoogjjjljjlqqljjlrrst -gogougjjjgvvgvvggggrrst -hopoogjjjljjljjljjlrrst -ggggkggkggjjgjjgjjggggw -aagjjkjjjglggggggggxaaa -aaygggjjjgjjggwaaaaaaaa -aaazcAgggghhgwaaaaaaaaa +aaabcfgggghhgTaaaaaaaaa +aagggglCugjjggGaaaaaaaa +aagNjkjSjgkggggggggGaaa +ggggkggkggjEgmHgJKggggG +hopOognjjkjjkqqkjjkrrUt +gogoignjwgvvgvvggggrLMt +hopPognjjkjjkjjkjjkrrst +ggggpggkggjFgIIgjwggggx +aagQjkjjRgkggggggggxaaa +aaygggjDjgjjggxaaaaaaaa +aaazcAgggghhgxaaaaaaaaa aaazcdddBaaaaaaaaaaaaaa aaazcddBaaaaaaaaaaaaaaa "} + diff --git a/_maps/map_files/templates/medium_shuttle2.dmm b/_maps/map_files/templates/medium_shuttle2.dmm index 3aafdccbed8..b355e8e939b 100644 --- a/_maps/map_files/templates/medium_shuttle2.dmm +++ b/_maps/map_files/templates/medium_shuttle2.dmm @@ -6,13 +6,13 @@ "f" = (/obj/structure/shuttle/engine/propulsion/burst/right{tag = "icon-burst_r (EAST)"; icon_state = "burst_r"; dir = 4},/turf/space,/area/ruin/powered{name = "Shuttle"}) "g" = (/turf/simulated/shuttle/wall,/turf/simulated/shuttle{tag = "icon-wall3 (SOUTHEAST)"; icon_state = "wall3"; dir = 6},/area/ruin/powered{name = "Shuttle"}) "h" = (/turf/simulated/shuttle/wall,/area/ruin/powered{name = "Shuttle"}) -"i" = (/turf/simulated/shuttle/wall{tag = "icon-diagonalWall (SOUTHEAST)"; icon_state = "diagonalWall"; dir = 6},/area/space) +"i" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel,/area/ruin/powered{name = "Shuttle"}) "j" = (/turf/space,/turf/simulated/shuttle{tag = "icon-wall3 (NORTHWEST)"; icon_state = "wall3"; dir = 9},/area/ruin/powered{name = "Shuttle"}) "k" = (/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) "l" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) "m" = (/turf/simulated/floor/plasteel,/area/ruin/powered{name = "Shuttle"}) "n" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) -"o" = (/turf/simulated/shuttle/wall{tag = "icon-diagonalWall (SOUTHEAST)"; icon_state = "diagonalWall"; dir = 6},/area/ruin/powered{name = "Shuttle"}) +"o" = (/obj/machinery/light,/turf/simulated/floor/plasteel,/area/ruin/powered{name = "Shuttle"}) "p" = (/turf/simulated/floor/plasteel{tag = "icon-bluefull"; icon_state = "bluefull"},/area/ruin/powered{name = "Shuttle"}) "q" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/plasteel,/area/ruin/powered{name = "Shuttle"}) "r" = (/turf/simulated/floor/plasteel{tag = "icon-whiteyellowfull"; icon_state = "whiteyellowfull"},/area/ruin/powered{name = "Shuttle"}) @@ -23,26 +23,47 @@ "w" = (/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{tag = "icon-whiteyellowfull"; icon_state = "whiteyellowfull"},/area/ruin/powered{name = "Shuttle"}) "x" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/ruin/powered{name = "Shuttle"}) "y" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/ruin/powered{name = "Shuttle"}) -"z" = (/obj/machinery/power/smes/magical,/turf/simulated/floor/plating,/area/ruin/powered{name = "Shuttle"}) +"z" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plasteel,/area/ruin/powered{name = "Shuttle"}) "A" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/floor/plating,/area/ruin/powered{name = "Shuttle"}) "B" = (/obj/structure/stool/bed/chair/comfy{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/turf/simulated/floor/plasteel{tag = "icon-whiteyellowfull"; icon_state = "whiteyellowfull"},/area/ruin/powered{name = "Shuttle"}) "C" = (/turf/simulated/shuttle/wall,/turf/simulated/shuttle{tag = "icon-wall3 (NORTHEAST)"; icon_state = "wall3"; dir = 5},/area/ruin/powered{name = "Shuttle"}) -"D" = (/turf/simulated/shuttle/wall{tag = "icon-diagonalWall (NORTHWEST)"; icon_state = "diagonalWall"; dir = 9},/area/ruin/powered{name = "Shuttle"}) -"E" = (/turf/simulated/shuttle/wall{tag = "icon-diagonalWall (NORTHWEST)"; icon_state = "diagonalWall"; dir = 9},/area/space) +"D" = (/obj/structure/computerframe,/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"E" = (/obj/machinery/teleport/hub,/obj/item/weapon/hand_tele,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) "F" = (/turf/space,/turf/simulated/shuttle{tag = "icon-wall3 (SOUTHEAST)"; icon_state = "wall3"; dir = 6},/area/ruin/powered{name = "Shuttle"}) +"G" = (/obj/item/device/radio/beacon,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"H" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"I" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-diagonalWall (SOUTHEAST)"; icon_state = "diagonalWall"; dir = 6},/area/space) +"J" = (/obj/machinery/light{dir = 1},/obj/machinery/vending/snack,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"K" = (/obj/machinery/light,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"L" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-diagonalWall (NORTHWEST)"; icon_state = "diagonalWall"; dir = 9},/area/space) +"M" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/purple,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"N" = (/obj/structure/table,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"O" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility/full/multitool,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"P" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical,/obj/item/clothing/gloves/color/yellow,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"Q" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-diagonalWall (SOUTHEAST)"; icon_state = "diagonalWall"; dir = 6},/area/ruin/powered{name = "Shuttle"}) +"R" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-diagonalWall (NORTHWEST)"; icon_state = "diagonalWall"; dir = 9},/area/ruin/powered{name = "Shuttle"}) +"S" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/item/weapon/gun/energy/laser/retro,/turf/simulated/floor/plasteel{tag = "icon-whiteyellowfull"; icon_state = "whiteyellowfull"},/area/ruin/powered{name = "Shuttle"}) +"T" = (/obj/structure/table,/obj/item/clothing/head/helmet/space/eva,/obj/item/clothing/suit/space/eva,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"U" = (/obj/machinery/teleport/station,/turf/simulated/floor/plasteel{tag = "icon-dark"; icon_state = "dark"},/area/ruin/powered{name = "Shuttle"}) +"V" = (/obj/machinery/power/smes/magical{name = "super smes"},/turf/simulated/floor/plating,/area/ruin/powered{name = "Shuttle"}) +"W" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{tag = "icon-bluefull"; icon_state = "bluefull"},/area/ruin/powered{name = "Shuttle"}) +"X" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{tag = "icon-whiteyellowfull"; icon_state = "whiteyellowfull"},/area/ruin/powered{name = "Shuttle"}) +"Y" = (/obj/machinery/light,/turf/simulated/floor/plasteel{tag = "icon-whiteyellowfull"; icon_state = "whiteyellowfull"},/area/ruin/powered{name = "Shuttle"}) +"Z" = (/obj/machinery/computer,/turf/simulated/floor/plasteel{tag = "icon-whiteyellowfull"; icon_state = "whiteyellowfull"},/area/ruin/powered{name = "Shuttle"}) (1,1,1) = {" aaabcddddeaaaaaaaaaaaaaaaaaa -aaafcddghhhiaaaaaaaaaaaaaaaa -aaajdghhkkhhhhlhiaaaaaaaaaaa -bcdddhmnkknkkhkhhhhhhhhhhhoa -fcddghmhhhhkknknknppnkkqrrhh -aaashtmhhhhnhhhhkhuvhkkhrwxa -aaaaymmzhhhkhhhhkhAAhAAhBwxa -aaajhtmhhhhnhhhhkhkkhkkhrwxa -bcddChmhhhhkknknknkknkkqrrhh -fcdddhmnkknkkhkhhhhhhhhhhhDa -aaasdChhkkhhhhlhEaaaaaaaaaaa -aaabcddChhhEaaaaaaaaaaaaaaaa +aaafcddghhhIaaaaaaaaaaaaaaaa +aaajdghhTThhhhlhIaaaaaaaaaaa +bcdddhinkkhJHhkhhhhhhhhhhhQa +fcddghmhkknkknknknWpnkkqXrhh +aaashzmhDkhhhhhhkhuvhNNhrSxa +aaaaymmhUknkVhhhkhAAhAAhBZxa +aaajhtmhEGhhhhhhkhMMhPOhrwxa +bcddChmhkknkknknknKknkkqYrhh +fcdddhonkkhKkhkhhhhhhhhhhhRa +aaasdChhNNhhhhlhLaaaaaaaaaaa +aaabcddChhhLaaaaaaaaaaaaaaaa aaafcddddFaaaaaaaaaaaaaaaaaa "} + diff --git a/_maps/map_files/templates/small_shuttle_1.dmm b/_maps/map_files/templates/small_shuttle_1.dmm index ffb52eea1d0..98f9e53f4e2 100644 --- a/_maps/map_files/templates/small_shuttle_1.dmm +++ b/_maps/map_files/templates/small_shuttle_1.dmm @@ -1,33 +1,38 @@ -"a" = (/turf/space,/area/space) -"b" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"},/area/space) -"c" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/floor/plating/airless,/area/space) -"d" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"},/area/space) -"e" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"},/area/space) -"f" = (/turf/simulated/shuttle/floor,/area/space) -"g" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/space) -"h" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"},/area/space) -"i" = (/turf/simulated/shuttle/wall{tag = "icon-swall8"; icon_state = "swall8"},/area/space) -"j" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/space) -"k" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall4"},/area/space) -"l" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/space) -"m" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/space) -"n" = (/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating/airless,/area/space) -"o" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"},/area/space) -"p" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/simulated/floor/plating/airless,/area/space) -"q" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/floor/plating/airless,/area/space) -"r" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/simulated/floor/plating/airless,/area/space) -"s" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"},/area/space) +"a" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"},/area/ruin/powered) +"b" = (/turf/space,/area/ruin/powered) +"c" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"},/area/ruin/powered) +"d" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/ruin/powered) +"e" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"},/area/ruin/powered) +"f" = (/turf/simulated/shuttle/wall{tag = "icon-swall8"; icon_state = "swall8"},/area/ruin/powered) +"g" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/floor/plating/airless,/area/ruin/powered) +"h" = (/turf/simulated/shuttle/floor,/area/ruin/powered) +"i" = (/obj/machinery/light,/turf/simulated/shuttle/floor,/area/ruin/powered) +"j" = (/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating/airless,/area/ruin/powered) +"k" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/floor/plating/airless,/area/ruin/powered) +"l" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"},/area/ruin/powered) +"m" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/ruin/powered) +"n" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor,/area/ruin/powered) +"o" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/simulated/floor/plating/airless,/area/ruin/powered) +"p" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall4"},/area/ruin/powered) +"q" = (/obj/machinery/computer,/turf/simulated/shuttle/floor,/area/ruin/powered) +"r" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/ruin/powered) +"s" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"},/area/ruin/powered) +"t" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"},/area/ruin/powered) +"u" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/ruin/powered) +"v" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/shuttle/floor,/area/ruin/powered) +"w" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/simulated/floor/plating/airless,/area/ruin/powered) (1,1,1) = {" -abcccda -aefgfea -aefffea -bhijkhd -elfffme -elfffme -jfffffj -jfffffj -efffffe -ennnnne -opqqqrs +bagggsb +bchrqcb +bcihicb +alfdpls +cmhhhuc +cmhhhuc +dhhhhhd +dhhhhhd +cnhhhvc +cjjjjjc +eokkkwt "} + From e0c19b2479b71aa2a542e7b940620d103228d72a Mon Sep 17 00:00:00 2001 From: Kyep Date: Thu, 2 Feb 2017 06:23:24 -0800 Subject: [PATCH 021/101] Playtime bugfix --- code/game/jobs/job_controller.dm | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 5da3d8cad2d..a770084dbbc 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -51,6 +51,8 @@ var/global/datum/controller/occupations/job_master if(!job) return 0 if(jobban_isbanned(player, rank)) return 0 if(!job.player_old_enough(player.client)) return 0 + if(job.available_in_playtime(player.client)) + return 0 if(!is_job_whitelisted(player, rank)) return 0 var/position_limit = job.total_positions if(!latejoin) @@ -87,13 +89,16 @@ var/global/datum/controller/occupations/job_master Debug("Running FOC, Job: [job], Level: [level], Flag: [flag]") var/list/candidates = list() for(var/mob/new_player/player in unassigned) - Debug(" - Player: [player] Banned: [jobban_isbanned(player, job.title)] Old Enough: [!job.player_old_enough(player.client)] Flag && Be Special: [flag] && [player.client.prefs.be_special] Job Department: [player.client.prefs.GetJobDepartment(job, level)] Job Flag: [job.flag] Job Department Flag = [job.department_flag]") + Debug(" - Player: [player] Banned: [jobban_isbanned(player, job.title)] Old Enough: [!job.player_old_enough(player.client)] AvInPlaytime: [job.available_in_playtime(player.client)] Flag && Be Special: [flag] && [player.client.prefs.be_special] Job Department: [player.client.prefs.GetJobDepartment(job, level)] Job Flag: [job.flag] Job Department Flag = [job.department_flag]") if(jobban_isbanned(player, job.title)) Debug("FOC isbanned failed, Player: [player]") continue if(!job.player_old_enough(player.client)) Debug("FOC player not old enough, Player: [player]") continue + if(job.available_in_playtime(player.client)) + Debug("FOC player not enough playtime, Player: [player]") + continue if(flag && !(flag in player.client.prefs.be_special)) Debug("FOC flag failed, Player: [player], Flag: [flag], ") continue @@ -123,9 +128,6 @@ var/global/datum/controller/occupations/job_master if(job.admin_only) // No admin positions either. continue - if(job.available_in_playtime(player.client)) - continue - if(jobban_isbanned(player, job.title)) Debug("GRJ isbanned failed, Player: [player], Job: [job.title]") continue @@ -134,6 +136,10 @@ var/global/datum/controller/occupations/job_master Debug("GRJ player not old enough, Player: [player]") continue + if(job.available_in_playtime(player.client)) + Debug("GRJ player not enough playtime, Player: [player]") + continue + if(player.mind && job.title in player.mind.restricted_roles) Debug("GRJ incompatible with antagonist role, Player: [player], Job: [job.title]") continue @@ -313,6 +319,10 @@ var/global/datum/controller/occupations/job_master Debug("DO player not old enough, Player: [player], Job:[job.title]") continue + if(job.available_in_playtime(player.client)) + Debug("DO player not enough playtime, Player: [player], Job:[job.title]") + continue + if(player.mind && job.title in player.mind.restricted_roles) Debug("DO incompatible with antagonist role, Player: [player], Job:[job.title]") continue @@ -674,6 +684,9 @@ var/global/datum/controller/occupations/job_master if(!job.player_old_enough(player.client)) level6++ continue + if(job.available_in_playtime(player.client)) + level6++ + continue if(player.client.prefs.GetJobDepartment(job, 1) & job.flag) level1++ else if(player.client.prefs.GetJobDepartment(job, 2) & job.flag) From 5f2ef0ef7d70a9e07af90c86f57fccd8371c8828 Mon Sep 17 00:00:00 2001 From: uraniummeltdown Date: Sat, 4 Feb 2017 21:33:00 +0400 Subject: [PATCH 022/101] mineral floors from TG group silent tiles with mineral tiles add tile recipes add mineral floor tile stacks and turfs add ability to weld mineral floor tiles --- .../objects/items/stacks/sheets/mineral.dm | 54 ++++--- .../items/stacks/tiles/tile_mineral.dm | 66 ++++++++ .../objects/items/stacks/tiles/tile_types.dm | 98 +++++++----- code/game/turfs/simulated/floor/mineral.dm | 151 +++++++++++++++++- code/game/turfs/simulated/floor/misc_floor.dm | 7 - icons/obj/items.dmi | Bin 121436 -> 124153 bytes icons/turf/floors.dmi | Bin 389754 -> 411668 bytes 7 files changed, 306 insertions(+), 70 deletions(-) diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 3afb9b21eab..b7a9941a1ce 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -12,9 +12,6 @@ Mineral Sheets - Tranqillite - Enriched Uranium - Platinum - - Metallic Hydrogen - - Tritium - - Osmium */ var/global/list/datum/stack_recipe/sandstone_recipes = list ( \ @@ -24,23 +21,34 @@ var/global/list/datum/stack_recipe/sandstone_recipes = list ( \ var/global/list/datum/stack_recipe/silver_recipes = list ( \ new/datum/stack_recipe("silver door", /obj/structure/mineral_door/silver, 10, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("silver tile", /obj/item/stack/tile/mineral/silver, 1, 4, 20), \ ) var/global/list/datum/stack_recipe/diamond_recipes = list ( \ new/datum/stack_recipe("diamond door", /obj/structure/mineral_door/transparent/diamond, 10, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("diamond tile", /obj/item/stack/tile/mineral/diamond, 1, 4, 20), \ ) var/global/list/datum/stack_recipe/uranium_recipes = list ( \ new/datum/stack_recipe("uranium door", /obj/structure/mineral_door/uranium, 10, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("uranium tile", /obj/item/stack/tile/mineral/uranium, 1, 4, 20), \ ) var/global/list/datum/stack_recipe/gold_recipes = list ( \ new/datum/stack_recipe("golden door", /obj/structure/mineral_door/gold, 10, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("gold tile", /obj/item/stack/tile/mineral/gold, 1, 4, 20), \ + null, \ new/datum/stack_recipe("Simple Crown", /obj/item/clothing/head/crown, 5), \ ) var/global/list/datum/stack_recipe/plasma_recipes = list ( \ new/datum/stack_recipe("plasma door", /obj/structure/mineral_door/transparent/plasma, 10, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("plasma tile", /obj/item/stack/tile/mineral/plasma, 1, 4, 20), \ ) var/global/list/datum/stack_recipe/plastic_recipes = list ( \ @@ -61,13 +69,24 @@ var/global/list/datum/stack_recipe/plastic_recipes = list ( \ ) var/global/list/datum/stack_recipe/bananium_recipes = list ( \ + new/datum/stack_recipe("bananium tile", /obj/item/stack/tile/mineral/bananium, 1, 4, 20), \ + null, \ new/datum/stack_recipe("bananium computer frame", /obj/structure/computerframe/HONKputer, 50, time = 25, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("bananium grenade casing", /obj/item/weapon/grenade/bananade/casing, 4, on_floor = 1), \ ) var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ - new/datum/stack_recipe("silent tile", /obj/item/stack/tile/silent, 1, 4, 20), \ new/datum/stack_recipe("invisible wall", /obj/structure/barricade/mime, 5, one_per_turf = 1, on_floor = 1, time = 50), \ + null, \ + new/datum/stack_recipe("silent tile", /obj/item/stack/tile/mineral/tranquillite, 1, 4, 20), \ + ) + +var/global/list/datum/stack_recipe/abductor_recipes = list ( \ + new/datum/stack_recipe("alien bed", /obj/structure/stool/bed/abductor, 2, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("alien locker", /obj/structure/closet/abductor, 1, time = 15, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("alien table frame", /obj/structure/abductor_tableframe, 1, time = 15, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("alien floor tile", /obj/item/stack/tile/mineral/abductor, 1, 4, 20), \ ) /obj/item/stack/sheet/mineral @@ -100,11 +119,11 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ /obj/item/stack/sheet/mineral/diamond name = "diamond" icon_state = "sheet-diamond" + singular_name = "diamond" origin_tech = "materials=6" sheettype = "diamond" materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT) - /obj/item/stack/sheet/mineral/diamond/New() ..() recipes = diamond_recipes @@ -112,6 +131,7 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ /obj/item/stack/sheet/mineral/uranium name = "uranium" icon_state = "sheet-uranium" + singular_name = "uranium sheet" origin_tech = "materials=5" sheettype = "uranium" materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT) @@ -123,6 +143,7 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ /obj/item/stack/sheet/mineral/plasma name = "solid plasma" icon_state = "sheet-plasma" + singular_name = "plasma sheet" origin_tech = "plasmatech=2;materials=2" sheettype = "plasma" materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT) @@ -161,6 +182,7 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ /obj/item/stack/sheet/mineral/gold name = "gold" icon_state = "sheet-gold" + singular_name = "gold bar" origin_tech = "materials=4" sheettype = "gold" materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT) @@ -172,6 +194,7 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ /obj/item/stack/sheet/mineral/silver name = "silver" icon_state = "sheet-silver" + singular_name = "silver bar" origin_tech = "materials=3" sheettype = "silver" materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT) @@ -183,23 +206,24 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ /obj/item/stack/sheet/mineral/bananium name = "bananium" icon_state = "sheet-clown" + singular_name = "bananium sheet" origin_tech = "materials=4" sheettype = "bananium" materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT) -/obj/item/stack/sheet/mineral/bananium/New(var/loc, var/amount=null) +/obj/item/stack/sheet/mineral/bananium/New(loc, amount=null) ..() recipes = bananium_recipes /obj/item/stack/sheet/mineral/tranquillite name = "tranquillite" - singular_name = "beret" icon_state = "sheet-mime" + singular_name = "beret" origin_tech = "materials=4" sheettype = "tranquillite" materials = list(MAT_TRANQUILLITE=MINERAL_MATERIAL_AMOUNT) -/obj/item/stack/sheet/mineral/tranquillite/New(var/loc, var/amount=null) +/obj/item/stack/sheet/mineral/tranquillite/New(loc, amount=null) ..() recipes = tranquillite_recipes @@ -209,9 +233,7 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ origin_tech = "materials=6" materials = list(MAT_URANIUM=3000) -/* - * Alien Alloy - */ +//Alien Alloy /obj/item/stack/sheet/mineral/abductor name = "alien alloy" icon = 'icons/obj/abductor.dmi' @@ -225,14 +247,6 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ origin_tech = "materials=6;abductor=1" sheettype = "abductor" -var/global/list/datum/stack_recipe/abductor_recipes = list ( \ - new/datum/stack_recipe("alien bed", /obj/structure/stool/bed/abductor, 2, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("alien locker", /obj/structure/closet/abductor, 1, time = 15, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("alien table frame", /obj/structure/abductor_tableframe, 1, time = 15, one_per_turf = 1, on_floor = 1), \ - null, \ - new/datum/stack_recipe("alien floor tile", /obj/item/stack/tile/mineral/abductor, 1, 4, 20), \ - ) - -/obj/item/stack/sheet/mineral/abductor/New(var/loc, var/amount=null) +/obj/item/stack/sheet/mineral/abductor/New(loc, amount=null) recipes = abductor_recipes ..() \ No newline at end of file diff --git a/code/game/objects/items/stacks/tiles/tile_mineral.dm b/code/game/objects/items/stacks/tiles/tile_mineral.dm index 7e6d5459dbf..37ce234fb2a 100644 --- a/code/game/objects/items/stacks/tiles/tile_mineral.dm +++ b/code/game/objects/items/stacks/tiles/tile_mineral.dm @@ -1,3 +1,69 @@ +/obj/item/stack/tile/mineral/plasma + name = "plasma tile" + singular_name = "plasma floor tile" + desc = "A tile made out of highly flammable plasma. This can only end well." + icon_state = "tile_plasma" + origin_tech = "plasmatech=1" + turf_type = /turf/simulated/floor/mineral/plasma + mineralType = "plasma" + materials = list(MAT_PLASMA=500) + +/obj/item/stack/tile/mineral/uranium + name = "uranium tile" + singular_name = "uranium floor tile" + desc = "A tile made out of uranium. You feel a bit woozy." + icon_state = "tile_uranium" + turf_type = /turf/simulated/floor/mineral/uranium + mineralType = "uranium" + materials = list(MAT_URANIUM=500) + +/obj/item/stack/tile/mineral/gold + name = "gold tile" + singular_name = "gold floor tile" + desc = "A tile made out of gold, the swag seems strong here." + icon_state = "tile_gold" + turf_type = /turf/simulated/floor/mineral/gold + mineralType = "gold" + materials = list(MAT_GOLD=500) + +/obj/item/stack/tile/mineral/silver + name = "silver tile" + singular_name = "silver floor tile" + desc = "A tile made out of silver, the light shining from it is blinding." + icon_state = "tile_silver" + turf_type = /turf/simulated/floor/mineral/silver + mineralType = "silver" + materials = list(MAT_SILVER=500) + +/obj/item/stack/tile/mineral/diamond + name = "diamond tile" + singular_name = "diamond floor tile" + desc = "A tile made out of diamond. Wow, just, wow." + icon_state = "tile_diamond" + origin_tech = "materials=2" + turf_type = /turf/simulated/floor/mineral/diamond + mineralType = "diamond" + materials = list(MAT_DIAMOND=500) + +/obj/item/stack/tile/mineral/bananium + name = "bananium tile" + singular_name = "bananium floor tile" + desc = "A tile made out of bananium, HOOOOOOOOONK!" + icon_state = "tile_bananium" + turf_type = /turf/simulated/floor/mineral/bananium + mineralType = "bananium" + materials = list(MAT_BANANIUM=500) + +/obj/item/stack/tile/mineral/tranquillite + name = "silent tile" + singular_name = "silent floor tile" + desc = "A tile made out of tranquillite, SHHHHHHHHH!" + icon_state = "tile_silent" + origin_tech = "materials=1" + turf_type = /turf/simulated/floor/mineral/tranquillite + mineralType = "tranquillite" + materials = list(MAT_TRANQUILLITE=500) + /obj/item/stack/tile/mineral/abductor name = "alien floor tile" singular_name = "alien floor tile" diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index f5b3650c5bb..8ced89422e4 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -1,14 +1,3 @@ -/* Different misc types of tiles - * Contains: - * Grass - * Wood - * Carpet - * Plasteel - * Light - * Fakespace - * High-traction - \\ If you don't update the contains list, I'm going to shank you - */ /obj/item/stack/tile name = "broken tile" singular_name = "broken tile" @@ -26,9 +15,60 @@ var/turf_type = null var/mineralType = null -/* - * Grass - */ +/obj/item/stack/tile/New(loc, amount) + ..() + pixel_x = rand(-3, 3) + pixel_y = rand(-3, 3) //randomize a little + +/obj/item/stack/tile/attackby(obj/item/W, mob/user, params) + if(iswelder(W)) + var/obj/item/weapon/weldingtool/WT = W + + if(is_hot(W) && !mineralType) + to_chat(user, "You can not reform this!") + return + + if(get_amount() < 4) + to_chat(user, "You need at least four tiles to do this!") + return + + if(WT.remove_fuel(0,user)) + + if(mineralType == "plasma") + atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, 5) + user.visible_message("[user.name] sets the plasma tiles on fire!", \ + "You set the plasma tiles on fire!") + qdel(src) + return + + if (mineralType == "metal") + var/obj/item/stack/sheet/metal/new_item = new(user.loc) + user.visible_message("[user.name] shaped [src] into metal with the welding tool.", \ + "You shaped [src] into metal with the welding tool.", \ + "You hear welding.") + var/obj/item/stack/rods/R = src + src = null + var/replace = (user.get_inactive_hand()==R) + R.use(4) + if(!R && replace) + user.put_in_hands(new_item) + + else + var/sheet_type = text2path("/obj/item/stack/sheet/mineral/[mineralType]") + var/obj/item/stack/sheet/mineral/new_item = new sheet_type(user.loc) + user.visible_message("[user.name] shaped [src] into a sheet with the welding tool.", \ + "You shaped [src] into a sheet with the welding tool.", \ + "You hear welding.") + var/obj/item/stack/rods/R = src + src = null + var/replace = (user.get_inactive_hand()==R) + R.use(4) + if (!R && replace) + user.put_in_hands(new_item) + else + return ..() + +//Grass /obj/item/stack/tile/grass name = "grass tiles" gender = PLURAL @@ -39,9 +79,7 @@ turf_type = /turf/simulated/floor/grass burn_state = FLAMMABLE -/* - * Wood - */ +//Wood /obj/item/stack/tile/wood name = "wood floor tiles" gender = PLURAL @@ -51,9 +89,7 @@ turf_type = /turf/simulated/floor/wood burn_state = FLAMMABLE -/* - * Carpets - */ +//Carpets /obj/item/stack/tile/carpet name = "carpet" singular_name = "carpet" @@ -62,9 +98,7 @@ turf_type = /turf/simulated/floor/carpet burn_state = FLAMMABLE -/* - * Plasteel - */ +//Plasteel /obj/item/stack/tile/plasteel name = "floor tiles" gender = PLURAL @@ -80,9 +114,7 @@ turf_type = /turf/simulated/floor/plasteel mineralType = "metal" -/* - * Light - */ +//Light /obj/item/stack/tile/light name = "light tiles" gender = PLURAL @@ -94,9 +126,7 @@ attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "smashed") turf_type = /turf/simulated/floor/light -/* - * Fakespace - */ +//Fakespace /obj/item/stack/tile/fakespace name = "astral carpet" singular_name = "astral carpet" @@ -120,16 +150,6 @@ /obj/item/stack/tile/noslip/loaded amount = 20 -/obj/item/stack/tile/silent - name = "silent tile" - singular_name = "silent floor tile" - desc = "A tile made out of tranquillite, SHHHHHHHHH!" - icon_state = "tile-silent" - origin_tech = "materials=1" - turf_type = /turf/simulated/floor/silent - mineralType = "tranquillite" - materials = list(MAT_TRANQUILLITE=500) - //Pod floor /obj/item/stack/tile/pod name = "pod floor tile" diff --git a/code/game/turfs/simulated/floor/mineral.dm b/code/game/turfs/simulated/floor/mineral.dm index 9ef70522ec4..f4f67b9007b 100644 --- a/code/game/turfs/simulated/floor/mineral.dm +++ b/code/game/turfs/simulated/floor/mineral.dm @@ -1,10 +1,18 @@ +/* In this file: + * + * Plasma floor + * Gold floor + * Silver floor + * Bananium floor + * Diamond floor + * Uranium floor + */ + /turf/simulated/floor/mineral name = "mineral floor" icon_state = "" var/list/icons = list() - - /turf/simulated/floor/mineral/New() ..() broken_states = list("[initial(icon_state)]_dam") @@ -13,9 +21,145 @@ if(!..()) return 0 if(!broken && !burnt) - if( !(icon_state in icons) ) + if(!(icon_state in icons)) icon_state = initial(icon_state) +//PLASMA +/turf/simulated/floor/mineral/plasma + name = "plasma floor" + icon_state = "plasma" + floor_tile = /obj/item/stack/tile/mineral/plasma + icons = list("plasma","plasma_dam") + +/turf/simulated/floor/mineral/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + PlasmaBurn() + +/turf/simulated/floor/mineral/plasma/attackby(obj/item/weapon/W, mob/user, params) + if(is_hot(W) > 300)//If the temperature of the object is over 300, then ignite + message_admins("Plasma flooring was ignited by [key_name_admin(user)](?) (FLW) in ([x],[y],[z] - JMP)",0,1) + log_game("Plasma flooring was ignited by [key_name(user)] in ([x],[y],[z])") + ignite(is_hot(W)) + return + ..() + +/turf/simulated/floor/mineral/plasma/proc/PlasmaBurn() + make_plating() + atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, 20) + +/turf/simulated/floor/mineral/plasma/proc/ignite(exposed_temperature) + if(exposed_temperature > 300) + PlasmaBurn() + +//GOLD +/turf/simulated/floor/mineral/gold + name = "gold floor" + icon_state = "gold" + floor_tile = /obj/item/stack/tile/mineral/gold + icons = list("gold","gold_dam") + +//SILVER +/turf/simulated/floor/mineral/silver + name = "silver floor" + icon_state = "silver" + floor_tile = /obj/item/stack/tile/mineral/silver + icons = list("silver","silver_dam") + +//BANANIUM +/turf/simulated/floor/mineral/bananium + name = "bananium floor" + icon_state = "bananium" + floor_tile = /obj/item/stack/tile/mineral/bananium + icons = list("bananium","bananium_dam") + var/spam_flag = 0 + +/turf/simulated/floor/mineral/bananium/Entered(mob/AM) + .=..() + if(!.) + if(istype(AM)) + squeek() + +/turf/simulated/floor/mineral/bananium/attackby(obj/item/weapon/W, mob/user, params) + .=..() + if(!.) + honk() + +/turf/simulated/floor/mineral/bananium/attack_hand(mob/user) + .=..() + if(!.) + honk() + +/turf/simulated/floor/mineral/bananium/proc/honk() + if(!spam_flag) + spam_flag = 1 + playsound(src, 'sound/items/bikehorn.ogg', 50, 1) + spawn(20) + spam_flag = 0 + +/turf/simulated/floor/mineral/bananium/proc/squeek() + if(!spam_flag) + spam_flag = 1 + playsound(src, "clownstep", 50, 1) + spawn(10) + spam_flag = 0 + +/turf/simulated/floor/mineral/bananium/airless + oxygen = 0.01 + nitrogen = 0.01 + temperature = TCMB + +//TRANQUILLITE +/turf/simulated/floor/mineral/tranquillite + name = "silent floor" + icon_state = "tranquillite" + floor_tile = /obj/item/stack/tile/mineral/tranquillite + shoe_running_volume = 0 + shoe_walking_volume = 0 + +//DIAMOND +/turf/simulated/floor/mineral/diamond + name = "diamond floor" + icon_state = "diamond" + floor_tile = /obj/item/stack/tile/mineral/diamond + icons = list("diamond","diamond_dam") + +//URANIUM +/turf/simulated/floor/mineral/uranium + name = "uranium floor" + icon_state = "uranium" + floor_tile = /obj/item/stack/tile/mineral/uranium + icons = list("uranium","uranium_dam") + var/last_event = 0 + var/active = null + +/turf/simulated/floor/mineral/uranium/Entered(mob/AM) + .=..() + if(!.) + if(istype(AM)) + radiate() + +/turf/simulated/floor/mineral/uranium/attackby(obj/item/weapon/W, mob/user, params) + .=..() + if(!.) + radiate() + +/turf/simulated/floor/mineral/uranium/attack_hand(mob/user) + .=..() + if(!.) + radiate() + +/turf/simulated/floor/mineral/uranium/proc/radiate() + if(!active) + if(world.time > last_event+15) + active = 1 + for(var/mob/living/L in range(3,src)) + L.apply_effect(1,IRRADIATE,0) + for(var/turf/simulated/floor/mineral/uranium/T in orange(1,src)) + T.radiate() + last_event = world.time + active = 0 + return + // ALIEN ALLOY /turf/simulated/floor/mineral/abductor name = "alien floor" @@ -36,7 +180,6 @@ /turf/simulated/floor/mineral/abductor/make_plating() return ChangeTurf(/turf/simulated/floor/plating/abductor2) - /turf/simulated/floor/plating/abductor2 name = "alien plating" icon_state = "alienplating" diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index 1a307361341..3491f4d529a 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -66,10 +66,3 @@ /turf/simulated/floor/noslip/MakeSlippery() return - -/turf/simulated/floor/silent - name = "silent floor" - icon_state = "silent" - floor_tile = /obj/item/stack/tile/silent - shoe_running_volume = 0 - shoe_walking_volume = 0 \ No newline at end of file diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 0d503c324e33ff7a827ff48c90d3291227c323e1..5cf1d913af2405762b10e6c5b415a5a5d0b4c75f 100644 GIT binary patch delta 27041 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 N>1rBk6kV}<^grrmBOm|( delta 24317 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 Wlvgpw8)%hbFkMZ3jS@B6C;tVabcCD$ diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index 7c50369b1f9c7e6649d432b5db7c444047549e17..8c8b99149acd414707e21924b54cb41517a290c5 100644 GIT binary patch delta 38003 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 H>ivHM?xQ4; delta 15917 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 AUjP6A From 3b5972637110492dc86ea8b756144cba7bf50c18 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sun, 5 Feb 2017 06:25:39 -0500 Subject: [PATCH 023/101] Botany Reagent Changes --- code/modules/hydroponics/biogenerator.dm | 4 ++-- code/modules/hydroponics/grown/ambrosia.dm | 6 +++--- code/modules/hydroponics/grown/apple.dm | 6 +++--- code/modules/hydroponics/grown/banana.dm | 4 ++-- code/modules/hydroponics/grown/beans.dm | 4 ++-- code/modules/hydroponics/grown/berries.dm | 16 ++++++++-------- code/modules/hydroponics/grown/cereals.dm | 2 +- code/modules/hydroponics/grown/chili.dm | 6 +++--- code/modules/hydroponics/grown/citrus.dm | 8 ++++---- code/modules/hydroponics/grown/cocoa_vanilla.dm | 4 ++-- code/modules/hydroponics/grown/corn.dm | 2 +- code/modules/hydroponics/grown/eggplant.dm | 2 +- code/modules/hydroponics/grown/flowers.dm | 10 +++++----- code/modules/hydroponics/grown/grass_carpet.dm | 2 +- code/modules/hydroponics/grown/herbals.dm | 4 ++-- code/modules/hydroponics/grown/kudzu.dm | 2 +- code/modules/hydroponics/grown/melon.dm | 2 +- code/modules/hydroponics/grown/misc.dm | 4 ++-- code/modules/hydroponics/grown/nymph.dm | 2 +- code/modules/hydroponics/grown/peanut.dm | 2 +- code/modules/hydroponics/grown/potato.dm | 4 ++-- code/modules/hydroponics/grown/pumpkin.dm | 4 ++-- code/modules/hydroponics/grown/root.dm | 8 ++++---- code/modules/hydroponics/grown/tobacco.dm | 4 ++-- code/modules/hydroponics/grown/tomato.dm | 8 ++++---- code/modules/hydroponics/hydroponics.dm | 4 ++++ 26 files changed, 64 insertions(+), 60 deletions(-) diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index 6635329c4cb..b5e0c826683 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -219,10 +219,10 @@ var/S = 0 for(var/obj/item/weapon/reagent_containers/food/snacks/grown/I in contents) S += 5 - if(I.reagents.get_reagent_amount("nutriment") < 0.1) + if(I.reagents.get_reagent_amount("nutriment")+I.reagents.get_reagent_amount("plantmatter") < 0.1) points += 1*productivity else - points += I.reagents.get_reagent_amount("nutriment")*10*productivity + points += (I.reagents.get_reagent_amount("nutriment")+I.reagents.get_reagent_amount("plantmatter"))*10*productivity qdel(I) if(S) processing = 1 diff --git a/code/modules/hydroponics/grown/ambrosia.dm b/code/modules/hydroponics/grown/ambrosia.dm index 9700b8f3d3b..f1dac422fad 100644 --- a/code/modules/hydroponics/grown/ambrosia.dm +++ b/code/modules/hydroponics/grown/ambrosia.dm @@ -23,7 +23,7 @@ icon_dead = "ambrosia-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/ambrosia/deus) - reagents_add = list("space_drugs" = 0.15, "bicaridine" = 0.1, "kelotane" = 0.1, "vitamin" = 0.04, "nutriment" = 0.05, "toxin" = 0.1) + reagents_add = list("space_drugs" = 0.15, "bicaridine" = 0.1, "kelotane" = 0.1, "vitamin" = 0.04, "plantmatter" = 0.05, "toxin" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris seed = /obj/item/seeds/ambrosia @@ -40,7 +40,7 @@ plantname = "Ambrosia Deus" product = /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus mutatelist = list(/obj/item/seeds/ambrosia/gaia) - reagents_add = list("weak_omnizine" = 0.15, "synaptizine" = 0.15, "space_drugs" = 0.1, "vitamin" = 0.04, "nutriment" = 0.05) + reagents_add = list("weak_omnizine" = 0.15, "synaptizine" = 0.15, "space_drugs" = 0.1, "vitamin" = 0.04, "plantmatter" = 0.05) rarity = 40 /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus @@ -80,7 +80,7 @@ product = /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/cruciatus potency = 10 mutatelist = list() - reagents_add = list("thc" = 0.15, "kelotane" = 0.15, "bicaridine" = 0.1, "bath_salts" = 0.20, "nutriment" = 0.05) + reagents_add = list("thc" = 0.15, "kelotane" = 0.15, "bicaridine" = 0.1, "bath_salts" = 0.20, "plantmatter" = 0.05) /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/cruciatus seed = /obj/item/seeds/ambrosia/cruciatus \ No newline at end of file diff --git a/code/modules/hydroponics/grown/apple.dm b/code/modules/hydroponics/grown/apple.dm index 8acfac34f74..9300eb73fef 100644 --- a/code/modules/hydroponics/grown/apple.dm +++ b/code/modules/hydroponics/grown/apple.dm @@ -14,7 +14,7 @@ icon_dead = "apple-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/apple/gold) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/apple seed = /obj/item/seeds/apple @@ -28,7 +28,7 @@ /obj/item/seeds/apple/poisoned product = /obj/item/weapon/reagent_containers/food/snacks/grown/apple/poisoned mutatelist = list() - reagents_add = list("cyanide" = 0.5, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list("cyanide" = 0.5, "vitamin" = 0.04, "plantmatter" = 0.1) rarity = 50 // Source of cyanide, and hard (almost impossible) to obtain normally. /obj/item/weapon/reagent_containers/food/snacks/grown/apple/poisoned @@ -45,7 +45,7 @@ maturation = 10 production = 10 mutatelist = list() - reagents_add = list("gold" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list("gold" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.1) rarity = 40 // Alchemy! /obj/item/weapon/reagent_containers/food/snacks/grown/apple/gold diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index b59eeb42e53..dbdffffda29 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -12,7 +12,7 @@ icon_dead = "banana-dead" genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/banana/mime, /obj/item/seeds/banana/bluespace) - reagents_add = list("banana" = 0.1, "potassium" = 0.1, "vitamin" = 0.04, "nutriment" = 0.02) + reagents_add = list("banana" = 0.1, "potassium" = 0.1, "vitamin" = 0.04, "plantmatter" = 0.02) /obj/item/weapon/reagent_containers/food/snacks/grown/banana seed = /obj/item/seeds/banana @@ -92,7 +92,7 @@ product = /obj/item/weapon/reagent_containers/food/snacks/grown/banana/bluespace mutatelist = list() genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/teleport, /datum/plant_gene/trait/repeated_harvest) - reagents_add = list("singulo" = 0.2, "banana" = 0.1, "vitamin" = 0.04, "nutriment" = 0.02) + reagents_add = list("singulo" = 0.2, "banana" = 0.1, "vitamin" = 0.04, "plantmatter" = 0.02) rarity = 30 /obj/item/weapon/reagent_containers/food/snacks/grown/banana/bluespace diff --git a/code/modules/hydroponics/grown/beans.dm b/code/modules/hydroponics/grown/beans.dm index 277dfd06298..d939387fe2b 100644 --- a/code/modules/hydroponics/grown/beans.dm +++ b/code/modules/hydroponics/grown/beans.dm @@ -15,7 +15,7 @@ icon_dead = "soybean-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/soya/koi) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05) + reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.05) /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans seed = /obj/item/seeds/soya @@ -36,7 +36,7 @@ product = /obj/item/weapon/reagent_containers/food/snacks/grown/koibeans potency = 10 mutatelist = list() - reagents_add = list("carpotoxin" = 0.1, "vitamin" = 0.04, "nutriment" = 0.05) + reagents_add = list("carpotoxin" = 0.1, "vitamin" = 0.04, "plantmatter" = 0.05) rarity = 20 /obj/item/weapon/reagent_containers/food/snacks/grown/koibeans diff --git a/code/modules/hydroponics/grown/berries.dm b/code/modules/hydroponics/grown/berries.dm index 165853c63f7..ff411e0b990 100644 --- a/code/modules/hydroponics/grown/berries.dm +++ b/code/modules/hydroponics/grown/berries.dm @@ -15,7 +15,7 @@ icon_dead = "berry-dead" // Same for the dead icon genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/berry/glow, /obj/item/seeds/berry/poison) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/berries seed = /obj/item/seeds/berry @@ -35,7 +35,7 @@ plantname = "Poison-Berry Bush" product = /obj/item/weapon/reagent_containers/food/snacks/grown/berries/poison mutatelist = list(/obj/item/seeds/berry/death) - reagents_add = list("cyanide" = 0.15, "tirizene" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list("cyanide" = 0.15, "tirizene" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.1) rarity = 10 // Mildly poisonous berries are common in reality /obj/item/weapon/reagent_containers/food/snacks/grown/berries/poison @@ -56,7 +56,7 @@ lifespan = 30 potency = 50 mutatelist = list() - reagents_add = list("coniine" = 0.08, "tirizene" = 0.1, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list("coniine" = 0.08, "tirizene" = 0.1, "vitamin" = 0.04, "plantmatter" = 0.1) rarity = 30 /obj/item/weapon/reagent_containers/food/snacks/grown/berries/death @@ -78,7 +78,7 @@ endurance = 25 mutatelist = list() genes = list(/datum/plant_gene/trait/glow/berry , /datum/plant_gene/trait/noreact, /datum/plant_gene/trait/repeated_harvest) - reagents_add = list("uranium" = 0.25, "iodine" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list("uranium" = 0.25, "iodine" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.1) rarity = 20 /obj/item/weapon/reagent_containers/food/snacks/grown/berries/glow @@ -108,7 +108,7 @@ icon_dead = "cherry-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/cherry/blue) - reagents_add = list("nutriment" = 0.07, "sugar" = 0.07) + reagents_add = list("plantmatter" = 0.07, "sugar" = 0.07) /obj/item/weapon/reagent_containers/food/snacks/grown/cherries seed = /obj/item/seeds/cherry @@ -128,7 +128,7 @@ plantname = "Blue Cherry Tree" product = /obj/item/weapon/reagent_containers/food/snacks/grown/bluecherries mutatelist = list() - reagents_add = list("nutriment" = 0.07, "sugar" = 0.07) + reagents_add = list("plantmatter" = 0.07, "sugar" = 0.07) rarity = 10 /obj/item/weapon/reagent_containers/food/snacks/grown/bluecherries @@ -158,7 +158,7 @@ icon_dead = "grape-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/grape/green) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1, "sugar" = 0.1) + reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1, "sugar" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/grapes seed = /obj/item/seeds/grape @@ -177,7 +177,7 @@ species = "greengrape" plantname = "Green-Grape Vine" product = /obj/item/weapon/reagent_containers/food/snacks/grown/grapes/green - reagents_add = list("kelotane" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1, "sugar" = 0.1) + reagents_add = list("kelotane" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.1, "sugar" = 0.1) // No rarity: technically it's a beneficial mutant, but it's not exactly "new"... mutatelist = list() diff --git a/code/modules/hydroponics/grown/cereals.dm b/code/modules/hydroponics/grown/cereals.dm index fd5ea080ca3..68a9c8c42d8 100644 --- a/code/modules/hydroponics/grown/cereals.dm +++ b/code/modules/hydroponics/grown/cereals.dm @@ -11,7 +11,7 @@ potency = 15 icon_dead = "wheat-dead" mutatelist = list(/obj/item/seeds/wheat/oat, /obj/item/seeds/wheat/meat) - reagents_add = list("nutriment" = 0.04) + reagents_add = list("plantmatter" = 0.04) /obj/item/weapon/reagent_containers/food/snacks/grown/wheat seed = /obj/item/seeds/wheat diff --git a/code/modules/hydroponics/grown/chili.dm b/code/modules/hydroponics/grown/chili.dm index 4d07f17bb4c..c80ffa561d3 100644 --- a/code/modules/hydroponics/grown/chili.dm +++ b/code/modules/hydroponics/grown/chili.dm @@ -16,7 +16,7 @@ icon_dead = "chili-dead" // Same for the dead icon genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/chili/ice, /obj/item/seeds/chili/ghost) - reagents_add = list("capsaicin" = 0.25, "vitamin" = 0.04, "nutriment" = 0.04) + reagents_add = list("capsaicin" = 0.25, "vitamin" = 0.04, "plantmatter" = 0.04) /obj/item/weapon/reagent_containers/food/snacks/grown/chili seed = /obj/item/seeds/chili @@ -39,7 +39,7 @@ production = 4 rarity = 20 mutatelist = list() - reagents_add = list("frostoil" = 0.25, "vitamin" = 0.02, "nutriment" = 0.02) + reagents_add = list("frostoil" = 0.25, "vitamin" = 0.02, "plantmatter" = 0.02) /obj/item/weapon/reagent_containers/food/snacks/grown/icepepper seed = /obj/item/seeds/chili/ice @@ -64,7 +64,7 @@ yield = 3 rarity = 20 mutatelist = list() - reagents_add = list("condensedcapsaicin" = 0.3, "capsaicin" = 0.55, "nutriment" = 0.04) + reagents_add = list("condensedcapsaicin" = 0.3, "capsaicin" = 0.55, "plantmatter" = 0.04) /obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili seed = /obj/item/seeds/chili/ghost diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm index 7562e013b50..1657dd0e955 100644 --- a/code/modules/hydroponics/grown/citrus.dm +++ b/code/modules/hydroponics/grown/citrus.dm @@ -21,7 +21,7 @@ growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/orange) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05) + reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.05) /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lime seed = /obj/item/seeds/lime @@ -47,7 +47,7 @@ icon_dead = "lime-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/lime) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05) + reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.05) /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange seed = /obj/item/seeds/orange @@ -72,7 +72,7 @@ icon_dead = "lime-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/firelemon) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05) + reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.05) /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon seed = /obj/item/seeds/lemon @@ -96,7 +96,7 @@ lifespan = 55 endurance = 45 yield = 4 - reagents_add = list("nutriment" = 0.05) + reagents_add = list("plantmatter" = 0.05) /obj/item/weapon/reagent_containers/food/snacks/grown/firelemon seed = /obj/item/seeds/firelemon diff --git a/code/modules/hydroponics/grown/cocoa_vanilla.dm b/code/modules/hydroponics/grown/cocoa_vanilla.dm index 6e04bdaf97d..74754fac13e 100644 --- a/code/modules/hydroponics/grown/cocoa_vanilla.dm +++ b/code/modules/hydroponics/grown/cocoa_vanilla.dm @@ -16,7 +16,7 @@ icon_dead = "cocoapod-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/cocoapod/vanillapod) - reagents_add = list("cocoa" = 0.25, "nutriment" = 0.1) + reagents_add = list("cocoa" = 0.25, "plantmatter" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod seed = /obj/item/seeds/cocoapod @@ -36,7 +36,7 @@ product = /obj/item/weapon/reagent_containers/food/snacks/grown/vanillapod genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list() - reagents_add = list("vanilla" = 0.25, "nutriment" = 0.1) + reagents_add = list("vanilla" = 0.25, "plantmatter" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/vanillapod seed = /obj/item/seeds/cocoapod/vanillapod diff --git a/code/modules/hydroponics/grown/corn.dm b/code/modules/hydroponics/grown/corn.dm index 835b2574731..a7ef947a5ce 100644 --- a/code/modules/hydroponics/grown/corn.dm +++ b/code/modules/hydroponics/grown/corn.dm @@ -13,7 +13,7 @@ icon_grow = "corn-grow" // Uses one growth icons set for all the subtypes icon_dead = "corn-dead" // Same for the dead icon mutatelist = list(/obj/item/seeds/corn/snapcorn) - reagents_add = list("cornoil" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list("cornoil" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/corn seed = /obj/item/seeds/corn diff --git a/code/modules/hydroponics/grown/eggplant.dm b/code/modules/hydroponics/grown/eggplant.dm index 8ec46ff77de..6fb991b9d32 100644 --- a/code/modules/hydroponics/grown/eggplant.dm +++ b/code/modules/hydroponics/grown/eggplant.dm @@ -13,7 +13,7 @@ icon_dead = "eggplant-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/eggplant/eggy) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/eggplant seed = /obj/item/seeds/eggplant diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm index 74fc57be99c..7deb961e67a 100644 --- a/code/modules/hydroponics/grown/flowers.dm +++ b/code/modules/hydroponics/grown/flowers.dm @@ -15,7 +15,7 @@ icon_grow = "poppy-grow" icon_dead = "poppy-dead" mutatelist = list(/obj/item/seeds/poppy/geranium, /obj/item/seeds/poppy/lily) - reagents_add = list("bicaridine" = 0.2, "nutriment" = 0.05) + reagents_add = list("bicaridine" = 0.2, "plantmatter" = 0.05) /obj/item/weapon/reagent_containers/food/snacks/grown/poppy seed = /obj/item/seeds/poppy @@ -78,7 +78,7 @@ growthstages = 4 genes = list(/datum/plant_gene/trait/plant_type/weed_hardy) growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' - reagents_add = list("nutriment" = 0.04) + reagents_add = list("plantmatter" = 0.04) /obj/item/weapon/reagent_containers/food/snacks/grown/harebell seed = /obj/item/seeds/harebell @@ -106,7 +106,7 @@ icon_grow = "sunflower-grow" icon_dead = "sunflower-dead" mutatelist = list(/obj/item/seeds/sunflower/moonflower, /obj/item/seeds/sunflower/novaflower) - reagents_add = list("cornoil" = 0.08, "nutriment" = 0.04) + reagents_add = list("cornoil" = 0.08, "plantmatter" = 0.04) /obj/item/weapon/grown/sunflower // FLOWER POWER! seed = /obj/item/seeds/sunflower @@ -134,7 +134,7 @@ plantname = "Moonflowers" product = /obj/item/weapon/reagent_containers/food/snacks/grown/moonflower mutatelist = list() - reagents_add = list("moonshine" = 0.2, "vitamin" = 0.02, "nutriment" = 0.02) + reagents_add = list("moonshine" = 0.2, "vitamin" = 0.02, "plantmatter" = 0.02) rarity = 15 /obj/item/weapon/reagent_containers/food/snacks/grown/moonflower @@ -155,7 +155,7 @@ plantname = "Novaflowers" product = /obj/item/weapon/grown/novaflower mutatelist = list() - reagents_add = list("condensedcapsaicin" = 0.25, "capsaicin" = 0.3, "nutriment" = 0) + reagents_add = list("condensedcapsaicin" = 0.25, "capsaicin" = 0.3, "plantmatter" = 0) rarity = 20 /obj/item/weapon/grown/novaflower diff --git a/code/modules/hydroponics/grown/grass_carpet.dm b/code/modules/hydroponics/grown/grass_carpet.dm index f113074911c..24c0a9f9df2 100644 --- a/code/modules/hydroponics/grown/grass_carpet.dm +++ b/code/modules/hydroponics/grown/grass_carpet.dm @@ -16,7 +16,7 @@ icon_dead = "grass-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/grass/carpet) - reagents_add = list("nutriment" = 0.02, "hydrogen" = 0.05) + reagents_add = list("plantmatter" = 0.02, "hydrogen" = 0.05) /obj/item/weapon/reagent_containers/food/snacks/grown/grass seed = /obj/item/seeds/grass diff --git a/code/modules/hydroponics/grown/herbals.dm b/code/modules/hydroponics/grown/herbals.dm index 05efe26bd99..ed2340e5838 100644 --- a/code/modules/hydroponics/grown/herbals.dm +++ b/code/modules/hydroponics/grown/herbals.dm @@ -9,7 +9,7 @@ maturation = 3 growthstages = 1 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' - reagents_add = list("nutriment" = 0.1) + reagents_add = list("plantmatter" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/comfrey seed = /obj/item/seeds/comfrey @@ -35,7 +35,7 @@ product = /obj/item/weapon/reagent_containers/food/snacks/grown/aloe yield = 2 icon_dead = "ambrosia-dead" - reagents_add = list("nutriment" = 0.1) + reagents_add = list("plantmatter" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/aloe seed = /obj/item/seeds/aloe diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm index 84ea01235e9..e62d2df093e 100644 --- a/code/modules/hydroponics/grown/kudzu.dm +++ b/code/modules/hydroponics/grown/kudzu.dm @@ -14,7 +14,7 @@ growthstages = 4 rarity = 30 var/list/mutations = list() - reagents_add = list("charcoal" = 0.04, "nutriment" = 0.02) + reagents_add = list("charcoal" = 0.04, "plantmatter" = 0.02) /obj/item/seeds/kudzu/Copy() var/obj/item/seeds/kudzu/S = ..() diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm index 633c39d37f6..5a229148a17 100644 --- a/code/modules/hydroponics/grown/melon.dm +++ b/code/modules/hydroponics/grown/melon.dm @@ -12,7 +12,7 @@ icon_dead = "watermelon-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/watermelon/holy) - reagents_add = list("water" = 0.2, "vitamin" = 0.04, "nutriment" = 0.2) + reagents_add = list("water" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.2) /obj/item/weapon/reagent_containers/food/snacks/grown/watermelon seed = /obj/item/seeds/watermelon diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm index 0d0d786a077..2e05e3f18a0 100644 --- a/code/modules/hydroponics/grown/misc.dm +++ b/code/modules/hydroponics/grown/misc.dm @@ -32,7 +32,7 @@ growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/replicapod) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage seed = /obj/item/seeds/cabbage @@ -106,7 +106,7 @@ plantname = "Cherry Bomb Tree" product = /obj/item/weapon/reagent_containers/food/snacks/grown/cherry_bomb mutatelist = list() - reagents_add = list("nutriment" = 0.1, "sugar" = 0.1, "blackpowder" = 0.7) + reagents_add = list("plantmatter" = 0.1, "sugar" = 0.1, "blackpowder" = 0.7) rarity = 60 //See above /obj/item/weapon/reagent_containers/food/snacks/grown/cherry_bomb diff --git a/code/modules/hydroponics/grown/nymph.dm b/code/modules/hydroponics/grown/nymph.dm index b1868f10a11..acea5497fea 100644 --- a/code/modules/hydroponics/grown/nymph.dm +++ b/code/modules/hydroponics/grown/nymph.dm @@ -10,7 +10,7 @@ maturation = 10 production = 1 yield = 1 - reagents_add = list("nutriment" = 0.1) + reagents_add = list("plantmatter" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/nymph_pod seed = /obj/item/seeds/nymph diff --git a/code/modules/hydroponics/grown/peanut.dm b/code/modules/hydroponics/grown/peanut.dm index 922b64a8a20..146c1ecfacf 100644 --- a/code/modules/hydroponics/grown/peanut.dm +++ b/code/modules/hydroponics/grown/peanut.dm @@ -15,7 +15,7 @@ icon_grow = "potato-grow" icon_dead = "potato-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) - reagents_add = list("nutriment" = 0.1) + reagents_add = list("plantmatter" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/peanuts seed = /obj/item/seeds/peanuts diff --git a/code/modules/hydroponics/grown/potato.dm b/code/modules/hydroponics/grown/potato.dm index 2b144679698..5335346b713 100644 --- a/code/modules/hydroponics/grown/potato.dm +++ b/code/modules/hydroponics/grown/potato.dm @@ -16,7 +16,7 @@ icon_dead = "potato-dead" genes = list(/datum/plant_gene/trait/battery) mutatelist = list(/obj/item/seeds/potato/sweet) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/potato seed = /obj/item/seeds/potato @@ -56,7 +56,7 @@ plantname = "Sweet Potato Plants" product = /obj/item/weapon/reagent_containers/food/snacks/grown/potato/sweet mutatelist = list() - reagents_add = list("vitamin" = 0.1, "sugar" = 0.1, "nutriment" = 0.1) + reagents_add = list("vitamin" = 0.1, "sugar" = 0.1, "plantmatter" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/potato/sweet seed = /obj/item/seeds/potato/sweet diff --git a/code/modules/hydroponics/grown/pumpkin.dm b/code/modules/hydroponics/grown/pumpkin.dm index ed8e64742ce..e9861a3b90c 100644 --- a/code/modules/hydroponics/grown/pumpkin.dm +++ b/code/modules/hydroponics/grown/pumpkin.dm @@ -14,7 +14,7 @@ icon_dead = "pumpkin-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/pumpkin/blumpkin) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.2) + reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.2) /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin seed = /obj/item/seeds/pumpkin @@ -42,7 +42,7 @@ plantname = "Blumpkin Vines" product = /obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin mutatelist = list() - reagents_add = list("ammonia" = 0.2, "chlorine" = 0.1, "nutriment" = 0.2) + reagents_add = list("ammonia" = 0.2, "chlorine" = 0.1, "plantmatter" = 0.2) rarity = 20 /obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin diff --git a/code/modules/hydroponics/grown/root.dm b/code/modules/hydroponics/grown/root.dm index 82f81c0b3a6..236c1465c8c 100644 --- a/code/modules/hydroponics/grown/root.dm +++ b/code/modules/hydroponics/grown/root.dm @@ -12,7 +12,7 @@ growthstages = 3 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' mutatelist = list(/obj/item/seeds/carrot/parsnip) - reagents_add = list("oculine" = 0.25, "vitamin" = 0.04, "nutriment" = 0.05) + reagents_add = list("oculine" = 0.25, "vitamin" = 0.04, "plantmatter" = 0.05) /obj/item/weapon/reagent_containers/food/snacks/grown/carrot seed = /obj/item/seeds/carrot @@ -43,7 +43,7 @@ product = /obj/item/weapon/reagent_containers/food/snacks/grown/parsnip icon_dead = "carrot-dead" mutatelist = list() - reagents_add = list("vitamin" = 0.05, "nutriment" = 0.05) + reagents_add = list("vitamin" = 0.05, "plantmatter" = 0.05) /obj/item/weapon/reagent_containers/food/snacks/grown/parsnip seed = /obj/item/seeds/carrot/parsnip @@ -67,7 +67,7 @@ growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_dead = "whitebeet-dead" mutatelist = list(/obj/item/seeds/redbeet) - reagents_add = list("vitamin" = 0.04, "sugar" = 0.2, "nutriment" = 0.05) + reagents_add = list("vitamin" = 0.04, "sugar" = 0.2, "plantmatter" = 0.05) /obj/item/weapon/reagent_containers/food/snacks/grown/whitebeet seed = /obj/item/seeds/whitebeet @@ -91,7 +91,7 @@ growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_dead = "whitebeet-dead" genes = list(/datum/plant_gene/trait/maxchem) - reagents_add = list("vitamin" = 0.05, "nutriment" = 0.05) + reagents_add = list("vitamin" = 0.05, "plantmatter" = 0.05) /obj/item/weapon/reagent_containers/food/snacks/grown/redbeet seed = /obj/item/seeds/redbeet diff --git a/code/modules/hydroponics/grown/tobacco.dm b/code/modules/hydroponics/grown/tobacco.dm index 98fc2536f34..e08f1f0b9f4 100644 --- a/code/modules/hydroponics/grown/tobacco.dm +++ b/code/modules/hydroponics/grown/tobacco.dm @@ -13,7 +13,7 @@ growthstages = 3 icon_dead = "tobacco-dead" mutatelist = list(/obj/item/seeds/tobacco/space) - reagents_add = list("nicotine" = 0.03, "nutriment" = 0.03) + reagents_add = list("nicotine" = 0.03, "plantmatter" = 0.03) /obj/item/weapon/reagent_containers/food/snacks/grown/tobacco seed = /obj/item/seeds/tobacco @@ -31,7 +31,7 @@ plantname = "Space Tobacco Plant" product = /obj/item/weapon/reagent_containers/food/snacks/grown/tobacco/space mutatelist = list() - reagents_add = list("salbutamol" = 0.05, "nicotine" = 0.08, "nutriment" = 0.03) + reagents_add = list("salbutamol" = 0.05, "nicotine" = 0.08, "plantmatter" = 0.03) rarity = 20 /obj/item/weapon/reagent_containers/food/snacks/grown/tobacco/space diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm index 64764442e4a..6af49a1fe6f 100644 --- a/code/modules/hydroponics/grown/tomato.dm +++ b/code/modules/hydroponics/grown/tomato.dm @@ -12,7 +12,7 @@ icon_dead = "tomato-dead" genes = list(/datum/plant_gene/trait/squash, /datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/tomato/blue, /obj/item/seeds/tomato/blood, /obj/item/seeds/tomato/killer) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/tomato seed = /obj/item/seeds/tomato @@ -32,7 +32,7 @@ plantname = "Blood-Tomato Plants" product = /obj/item/weapon/reagent_containers/food/snacks/grown/tomato/blood mutatelist = list() - reagents_add = list("blood" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list("blood" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.1) rarity = 20 /obj/item/weapon/reagent_containers/food/snacks/grown/tomato/blood @@ -57,7 +57,7 @@ icon_grow = "bluetomato-grow" mutatelist = list(/obj/item/seeds/tomato/blue/bluespace) genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/repeated_harvest) - reagents_add = list("lube" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list("lube" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.1) rarity = 20 /obj/item/weapon/reagent_containers/food/snacks/grown/tomato/blue @@ -80,7 +80,7 @@ yield = 2 mutatelist = list() genes = list(/datum/plant_gene/trait/squash, /datum/plant_gene/trait/slip, /datum/plant_gene/trait/teleport, /datum/plant_gene/trait/repeated_harvest) - reagents_add = list("lube" = 0.2, "singulo" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list("lube" = 0.2, "singulo" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.1) rarity = 50 /obj/item/weapon/reagent_containers/food/snacks/grown/tomato/blue/bluespace diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index e531c3d5897..7240f846000 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -657,6 +657,10 @@ adjustHealth(round(S.get_reagent_amount("nutriment") * 0.5)) adjustNutri(round(S.get_reagent_amount("nutriment") * 1)) + if(S.has_reagent("plantmatter", 1)) + adjustHealth(round(S.get_reagent_amount("plantmatter") * 0.5)) + adjustNutri(round(S.get_reagent_amount("plantmatter") * 1)) + // Compost for EVERYTHING if(S.has_reagent("virusfood", 1)) adjustNutri(round(S.get_reagent_amount("virusfood") * 0.5)) From 69e1c69becac3f0103786c4ed85053ee116e777d Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sun, 5 Feb 2017 09:36:27 -0500 Subject: [PATCH 024/101] fishwater re-addition --- code/modules/hydroponics/hydroponics.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 7240f846000..ff55e812992 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -521,6 +521,12 @@ mutmod = 0 adjustNutri(round(S.get_reagent_amount("robustharvestnutriment") *1 )) + + //Fish Water is both an excellent fertilizer and waters + if(S.has_reagent("fishwater", 1)) + adjustNutri(round(S.get_reagent_amount("fishwater") * 0.75)) + adjustWater(round(S.get_reagent_amount("fishwater") * 1)) + // Antitoxin binds shit pretty well. So the tox goes significantly down if(S.has_reagent("charcoal", 1)) adjustToxic(-round(S.get_reagent_amount("charcoal") * 2)) From c5f3cf94e9cdb285653510403c0876e16832c6bf Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sun, 5 Feb 2017 09:55:10 -0500 Subject: [PATCH 025/101] replica pod people --- code/modules/hydroponics/grown/replicapod.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/hydroponics/grown/replicapod.dm b/code/modules/hydroponics/grown/replicapod.dm index f3cfa967363..8b90d28aa67 100644 --- a/code/modules/hydroponics/grown/replicapod.dm +++ b/code/modules/hydroponics/grown/replicapod.dm @@ -91,6 +91,8 @@ podman.ckey = ckey_holder podman.gender = blood_gender podman.faction |= factions + podman.faction |= "plants" + podman.faction |= "vines" //Pod grown Diona are allied with plants and vines alike. else //else, one packet of seeds. maybe two var/seed_count = 1 From 129a57bd9b925f4389ec2e71bb94400204f9f2e3 Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Fri, 13 Jan 2017 16:57:16 -0800 Subject: [PATCH 026/101] Goonlights Ports Goon Lighting from /vg/station. Summary - This adds smooth edges to all lighting in order to increase the aesthetic appeal of the lighting system. It works by using a matrix to change the appearance of the lighting overlay sprite, which has been changed to be a base for the matrix to modify. Ported from /vg/station with the help of @PJB3005. This lighting system is a hybrid between Mloc's lighting rewrite and Tobba's Goonlights. Notable changes: - Darksight now matters on mobs. The lighting overlays are not alpha=255 when they are completely dark, meaning you can still see the floor- assuming you can view the turf at all, because it retains the luminousity setting. - This means Tajaran have 100% night vision again as they are intended to. Humans can see in a 3x3 square centered around themselves. - No, I'm not changing this, if it's even possible. This is how BYOND's lighting is meant to work. If you have any complaints about game balance, please feel free to make a pull request to change see_in_dark values, which will be seperately evaluated. - The lighting controller now runs at world.tick_lag, to emulate the realtime function of StonedMC. So far with my testing, this hasn't caused any noticable performance decreases- the lighting system is obviously more expensive than our previous iteration, however, it's not the next ZAS ;) Technical Details: - /atom/movable/lighting_overlay/proc/get_clamped_lum has been removed, succeeded by /turf/proc/get_lumcount. They behave identically. - Turf lighting is actually controlled by four "corner" datums, which feed information into the overlay. - The way opacity is factored into the system has changed. Anything that doesn't use set_opacity is not going to work to block light. - /area/lighting_use_dynamic has been renamed to /area/dynamic_lighting, for consistency with /turf/dynamic_lighting. - Lighting is no longer seperately initialized for away missions. It is handled in ChangeTurf() as it should be. Known & Unfixable issues: - There is a 5-10 second delay from starting the round to the lights turning on. Attribute it to "the powernet being spun up" if you would like to- but it's actually just how long it takes the lighting system to update every single turf on the map. - When you walk with a light on you, the light will actually jump ahead of you before you visually get to the tile. This is because of the movement gliding on mobs, realtime lighting actually goes faster than the glide takes to complete, so it appears that your lights are moving faster than you. Thank you krausy~ Animated Goonlights This adds an animate() call to the update_overlays() proc. This makes it so that any light changes will smoothly transition between the changes instead of instantly changing their appearance. Also fixes a few issues pointed out on Github. Change lighting animation (turns out the old one totally breaks if you toggle a light quickly, whoopsies) Kill LIGHTING_INSTANT_UPDATES isturf --- code/__DEFINES/lighting.dm | 39 ++- code/__HELPERS/game.dm | 17 ++ code/controllers/Processes/lighting.dm | 93 +++++- code/controllers/verbs.dm | 5 +- code/game/area/Space Station 13 areas.dm | 28 +- code/game/area/areas.dm | 2 +- code/game/atoms_movable.dm | 6 + code/game/dna/genes/goon_powers.dm | 7 +- code/game/gamemodes/vampire/vampire.dm | 8 +- code/game/gamemodes/vampire/vampire_powers.dm | 3 +- code/game/objects/structures/curtains.dm | 2 +- code/game/objects/structures/mineral_doors.dm | 10 +- code/game/objects/structures/spirit_board.dm | 7 +- code/game/turfs/turf.dm | 31 +- .../awaymissions/mission_code/clownplanet.dm | 4 +- code/modules/awaymissions/zlevel.dm | 7 - code/modules/awaymissions/zvis.dm | 2 +- code/modules/lighting/light_source.dm | 257 ---------------- code/modules/lighting/lighting_area.dm | 9 + code/modules/lighting/lighting_atom.dm | 41 ++- code/modules/lighting/lighting_corner.dm | 125 ++++++++ code/modules/lighting/lighting_overlay.dm | 125 ++++---- code/modules/lighting/lighting_process.dm | 35 --- code/modules/lighting/lighting_setup.dm | 16 + code/modules/lighting/lighting_source.dm | 283 ++++++++++++++++++ code/modules/lighting/lighting_system.dm | 25 -- code/modules/lighting/lighting_turf.dm | 102 ++++++- code/modules/lighting/~lighting_undefs.dm | 8 +- .../living/simple_animal/posessed_object.dm | 2 +- code/modules/power/supermatter/wall.dm | 2 +- icons/effects/lighting_overlay.dmi | Bin 343 -> 0 bytes icons/effects/lighting_overlay.png | Bin 0 -> 1480 bytes paradise.dme | 8 +- 33 files changed, 811 insertions(+), 498 deletions(-) delete mode 100644 code/modules/lighting/light_source.dm create mode 100644 code/modules/lighting/lighting_area.dm create mode 100644 code/modules/lighting/lighting_corner.dm delete mode 100644 code/modules/lighting/lighting_process.dm create mode 100644 code/modules/lighting/lighting_setup.dm create mode 100644 code/modules/lighting/lighting_source.dm delete mode 100644 code/modules/lighting/lighting_system.dm delete mode 100644 icons/effects/lighting_overlay.dmi create mode 100644 icons/effects/lighting_overlay.png diff --git a/code/__DEFINES/lighting.dm b/code/__DEFINES/lighting.dm index 7fbec83455a..c18fb516f4b 100644 --- a/code/__DEFINES/lighting.dm +++ b/code/__DEFINES/lighting.dm @@ -1,10 +1,43 @@ -#define LIGHTING_INTERVAL 5 // frequency, in 1/10ths of a second, of the lighting process - #define LIGHTING_FALLOFF 1 // type of falloff to use for lighting; 1 for circular, 2 for square #define LIGHTING_LAMBERTIAN 0 // use lambertian shading for light sources #define LIGHTING_HEIGHT 1 // height off the ground of light sources on the pseudo-z-axis, you should probably leave this alone #define LIGHTING_LAYER 10 // drawing layer for lighting overlays -#define LIGHTING_ICON 'icons/effects/lighting_overlay.dmi' // icon used for lighting shading effects +#define LIGHTING_ICON 'icons/effects/lighting_overlay.png' // icon used for lighting shading effects #define LIGHTING_ROUND_VALUE (1 / 128) //Value used to round lumcounts, values smaller than 1/255 don't matter (if they do, thanks sinking points), greater values will make lighting less precise, but in turn increase performance, VERY SLIGHTLY. + +#define LIGHTING_SOFT_THRESHOLD 0.05 // If the max of the lighting lumcounts of each spectrum drops below this, disable luminosity on the lighting overlays. + +// If I were you I'd leave this alone. +#define LIGHTING_BASE_MATRIX \ + list \ + ( \ + LIGHTING_SOFT_THRESHOLD, LIGHTING_SOFT_THRESHOLD, LIGHTING_SOFT_THRESHOLD, 0, \ + LIGHTING_SOFT_THRESHOLD, LIGHTING_SOFT_THRESHOLD, LIGHTING_SOFT_THRESHOLD, 0, \ + LIGHTING_SOFT_THRESHOLD, LIGHTING_SOFT_THRESHOLD, LIGHTING_SOFT_THRESHOLD, 0, \ + LIGHTING_SOFT_THRESHOLD, LIGHTING_SOFT_THRESHOLD, LIGHTING_SOFT_THRESHOLD, 0, \ + 0, 0, 0, 1 \ + ) \ + +// Helpers so we can (more easily) control the colour matrices. +#define CL_MATRIX_RR 1 +#define CL_MATRIX_RG 2 +#define CL_MATRIX_RB 3 +#define CL_MATRIX_RA 4 +#define CL_MATRIX_GR 5 +#define CL_MATRIX_GG 6 +#define CL_MATRIX_GB 7 +#define CL_MATRIX_GA 8 +#define CL_MATRIX_BR 9 +#define CL_MATRIX_BG 10 +#define CL_MATRIX_BB 11 +#define CL_MATRIX_BA 12 +#define CL_MATRIX_AR 13 +#define CL_MATRIX_AG 14 +#define CL_MATRIX_AB 15 +#define CL_MATRIX_AA 16 +#define CL_MATRIX_CR 17 +#define CL_MATRIX_CG 18 +#define CL_MATRIX_CB 19 +#define CL_MATRIX_CA 20 \ No newline at end of file diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 1ada9f5100d..c6f0e9bf1c9 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -412,6 +412,23 @@ return 0 return 1 + +/proc/GetRedPart(const/hexa) + return hex2num(copytext(hexa, 2, 4)) + +/proc/GetGreenPart(const/hexa) + return hex2num(copytext(hexa, 4, 6)) + +/proc/GetBluePart(const/hexa) + return hex2num(copytext(hexa, 6, 8)) + +/proc/GetHexColors(const/hexa) + return list( + GetRedPart(hexa), + GetGreenPart(hexa), + GetBluePart(hexa), + ) + /proc/MinutesToTicks(var/minutes as num) return minutes * 60 * 10 diff --git a/code/controllers/Processes/lighting.dm b/code/controllers/Processes/lighting.dm index 7d463abbd7f..15b134ecf44 100644 --- a/code/controllers/Processes/lighting.dm +++ b/code/controllers/Processes/lighting.dm @@ -1,18 +1,91 @@ -var/global/datum/controller/process/lighting/lighting_controller +// Solves problems with lighting updates lagging shit +// Max constraints on number of updates per doWork(): +#define MAX_LIGHT_UPDATES_PER_WORK 100 +#define MAX_CORNER_UPDATES_PER_WORK 1000 +#define MAX_OVERLAY_UPDATES_PER_WORK 2000 +/var/lighting_overlays_initialised = FALSE + +/var/list/lighting_update_lights = list() // List of lighting sources queued for update. +/var/list/lighting_update_corners = list() // List of lighting corners queued for update. +/var/list/lighting_update_overlays = list() // List of lighting overlays queued for update. + +/var/list/lighting_update_lights_old = list() // List of lighting sources currently being updated. +/var/list/lighting_update_corners_old = list() // List of lighting corners currently being updated. +/var/list/lighting_update_overlays_old = list() // List of lighting overlays currently being updated. + + +/datum/controller/process/lighting /datum/controller/process/lighting/setup() name = "lighting" - schedule_interval = LIGHTING_INTERVAL - start_delay = 1 - lighting_controller = src - create_lighting_overlays() + schedule_interval = world.tick_lag // run as fast as you possibly can + create_all_lighting_overlays() + lighting_overlays_initialised = TRUE + // Pre-process lighting once before the round starts. Wait 30 seconds so the away mission has time to load. spawn(300) - doWork() + doWork(1) -/datum/controller/process/lighting/statProcess() - ..() - stat(null, "[last_light_count] lights, [last_overlay_count] overlays") +/datum/controller/process/lighting/doWork(roundstart) + // Counters + var/light_updates = 0 + var/corner_updates = 0 + var/overlay_updates = 0 -// Lighting process code located in modules\lighting\lighting_process.dm \ No newline at end of file + lighting_update_lights_old = lighting_update_lights //We use a different list so any additions to the update lists during a delay from scheck() don't cause things to be cut from the list without being updated. + lighting_update_lights = list() + for(var/datum/light_source/L in lighting_update_lights_old) + if(light_updates >= MAX_LIGHT_UPDATES_PER_WORK && !roundstart) + lighting_update_lights += L + continue // DON'T break, we're adding stuff back into the update queue. + + if(L.check() || L.destroyed || L.force_update) + L.remove_lum() + if(!L.destroyed) + L.apply_lum() + + else if(L.vis_update) //We smartly update only tiles that became (in) visible to use. + L.smart_vis_update() + + L.vis_update = FALSE + L.force_update = FALSE + L.needs_update = FALSE + + light_updates++ + + SCHECK + + lighting_update_corners_old = lighting_update_corners //Same as above. + lighting_update_corners = list() + for(var/A in lighting_update_corners_old) + if(corner_updates >= MAX_CORNER_UPDATES_PER_WORK && !roundstart) + lighting_update_corners += A + continue // DON'T break, we're adding stuff back into the update queue. + + var/datum/lighting_corner/C = A + + C.update_overlays() + + C.needs_update = FALSE + + corner_updates++ + + SCHECK + + lighting_update_overlays_old = lighting_update_overlays //Same as above. + lighting_update_overlays = list() + + for(var/atom/movable/lighting_overlay/O in lighting_update_overlays_old) + if(overlay_updates >= MAX_OVERLAY_UPDATES_PER_WORK && !roundstart) + lighting_update_overlays += O + continue // DON'T break, we're adding stuff back into the update queue. + + O.update_overlay() + O.needs_update = 0 + overlay_updates++ + SCHECK + +#undef MAX_LIGHT_UPDATES_PER_WORK +#undef MAX_CORNER_UPDATES_PER_WORK +#undef MAX_OVERLAY_UPDATES_PER_WORK diff --git a/code/controllers/verbs.dm b/code/controllers/verbs.dm index 027101df146..fe8d1cbb133 100644 --- a/code/controllers/verbs.dm +++ b/code/controllers/verbs.dm @@ -17,7 +17,7 @@ message_admins("Admin [key_name_admin(usr)] has restarted the [controller] controller.") return -/client/proc/debug_controller(controller in list("Master","failsafe","Ticker","Air","Lighting","Jobs","Sun","Radio","Configuration","pAI", "Cameras","Garbage", "Transfer Controller","Event","Alarm","Scheduler","Nano","Vote","Diseases","Fires","Mob","NPC AI","Shuttle","Timer","Weather","Space","Mob Hunt Server")) +/client/proc/debug_controller(controller in list("Master","failsafe","Ticker","Air","Jobs","Sun","Radio","Configuration","pAI", "Cameras","Garbage", "Transfer Controller","Event","Alarm","Scheduler","Nano","Vote","Diseases","Fires","Mob","NPC AI","Shuttle","Timer","Weather","Space","Mob Hunt Server")) set category = "Debug" set name = "Debug Controller" set desc = "Debug the various periodic loop controllers for the game (be careful!)" @@ -36,9 +36,6 @@ if("Air") debug_variables(air_master) feedback_add_details("admin_verb","DAir") - if("Lighting") - debug_variables(lighting_controller) - feedback_add_details("admin_verb","DLighting") if("Jobs") debug_variables(job_master) feedback_add_details("admin_verb","DJobs") diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index e1077773daa..66568a11a4a 100644 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -107,14 +107,14 @@ var/list/ghostteleportlocs = list() name = "\improper Admin Room" icon_state = "start" requires_power = 0 - lighting_use_dynamic = 0 + dynamic_lighting = 0 /area/adminconstruction name = "\improper Admin Testing Area" icon_state = "start" requires_power = 0 - lighting_use_dynamic = 0 + dynamic_lighting = 0 /area/space icon_state = "space" @@ -467,7 +467,7 @@ var/list/ghostteleportlocs = list() icon_state = "start" requires_power = 0 luminosity = 1 - lighting_use_dynamic = 0 + dynamic_lighting = 0 has_gravity = 1 // === end remove @@ -483,7 +483,7 @@ var/list/ghostteleportlocs = list() name = "\improper Centcom" icon_state = "centcom" requires_power = 0 - lighting_use_dynamic = 0 + dynamic_lighting = 0 /area/centcom/control name = "\improper Centcom Control" @@ -564,7 +564,7 @@ var/list/ghostteleportlocs = list() name = "\improper Thunderdome" icon_state = "thunder" requires_power = 0 - lighting_use_dynamic = 0 + dynamic_lighting = 0 /area/tdome/arena_source @@ -649,7 +649,7 @@ var/list/ghostteleportlocs = list() icon_state = "yellow" requires_power = 0 has_gravity = 1 - lighting_use_dynamic = 0 + dynamic_lighting = 0 /area/wizard_station name = "\improper Wizard's Den" @@ -672,7 +672,7 @@ var/list/ghostteleportlocs = list() name = "\improper Vox Base" icon_state = "yellow" requires_power = 0 - lighting_use_dynamic = 0 + dynamic_lighting = 0 no_teleportlocs = 1 /area/vox_station/transit @@ -1229,7 +1229,7 @@ var/list/ghostteleportlocs = list() /area/holodeck name = "\improper Holodeck" icon_state = "Holodeck" - lighting_use_dynamic = 0 + dynamic_lighting = 0 /area/holodeck/alphadeck name = "\improper Holodeck Alpha" @@ -1366,7 +1366,7 @@ var/list/ghostteleportlocs = list() /area/solar requires_power = 0 - lighting_use_dynamic = 0 + dynamic_lighting = 0 auxport name = "\improper Fore Port Solar Array" @@ -2281,25 +2281,25 @@ area/security/podbay name = "\improper AI Sat Ext" icon_state = "storage" luminosity = 1 - lighting_use_dynamic = 0 + dynamic_lighting = 0 /area/turret_protected/AIsatextFS name = "\improper AI Sat Ext" icon_state = "storage" luminosity = 1 - lighting_use_dynamic = 0 + dynamic_lighting = 0 /area/turret_protected/AIsatextAS name = "\improper AI Sat Ext" icon_state = "storage" luminosity = 1 - lighting_use_dynamic = 0 + dynamic_lighting = 0 /area/turret_protected/AIsatextAP name = "\improper AI Sat Ext" icon_state = "storage" luminosity = 1 - lighting_use_dynamic = 0 + dynamic_lighting = 0 /area/turret_protected/NewAIMain name = "\improper AI Main New" @@ -2476,7 +2476,7 @@ area/security/podbay name = "Beach" icon_state = "beach" luminosity = 1 - lighting_use_dynamic = 0 + dynamic_lighting = 0 requires_power = 0 ambientsounds = list('sound/ambience/shore.ogg', 'sound/ambience/seag1.ogg','sound/ambience/seag2.ogg','sound/ambience/seag2.ogg') diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 7caaf090914..5f960237381 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -29,7 +29,7 @@ if(type == /area) // override defaults for space. TODO: make space areas of type /area/space rather than /area requires_power = 1 always_unpowered = 1 - lighting_use_dynamic = 1 + dynamic_lighting = 1 power_light = 0 power_equip = 0 power_environ = 0 diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index f64b914f3eb..b8673b497d5 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -32,7 +32,13 @@ /atom/movable/Destroy() for(var/atom/movable/AM in contents) qdel(AM) + var/turf/un_opaque + if(opacity && isturf(loc)) + un_opaque = loc + loc = null + if(un_opaque) + un_opaque.recalc_atom_opacity() if(pulledby) if(pulledby.pulling == src) pulledby.pulling = null diff --git a/code/game/dna/genes/goon_powers.dm b/code/game/dna/genes/goon_powers.dm index 5654fe2fc72..0e8415a15e3 100644 --- a/code/game/dna/genes/goon_powers.dm +++ b/code/game/dna/genes/goon_powers.dm @@ -57,12 +57,7 @@ var/turf/simulated/T = get_turf(M) if(!istype(T)) return - var/atom/movable/lighting_overlay/L = locate(/atom/movable/lighting_overlay) in T - var/light_available - if(L) - light_available = L.get_clamped_lum()*10 - else - light_available = 5 + var/light_available = T.get_lumcount() * 10 if(light_available <= 2) M.alpha = round(M.alpha * 0.8) else diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm index f37f846104a..f3dc8e4e41a 100644 --- a/code/game/gamemodes/vampire/vampire.dm +++ b/code/game/gamemodes/vampire/vampire.dm @@ -416,12 +416,7 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha owner.alpha = 255 return var/turf/simulated/T = get_turf(owner) - var/atom/movable/lighting_overlay/L = locate(/atom/movable/lighting_overlay) in T - var/light_available - if(L) - light_available = L.get_clamped_lum(0.5) * 10 - else - light_available = 10 + var/light_available = T.get_lumcount(0.5) * 10 if(!istype(T)) return 0 @@ -429,6 +424,7 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha if(!iscloaking) owner.alpha = 255 return 0 + if(light_available <= 2) owner.alpha = round((255 * 0.15)) return 1 diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm index 023fef59a7b..c38c50ad40a 100644 --- a/code/game/gamemodes/vampire/vampire_powers.dm +++ b/code/game/gamemodes/vampire/vampire_powers.dm @@ -479,8 +479,7 @@ if(T.y > world.maxy-outer_tele_radius || T.y < outer_tele_radius) continue - var/atom/movable/lighting_overlay/L = locate(/atom/movable/lighting_overlay) in T - var/lightingcount = L.get_clamped_lum(0.5) * 10 + var/lightingcount = T.get_lumcount(0.5) * 10 // LIGHTING CHECK if(lightingcount > max_lum) diff --git a/code/game/objects/structures/curtains.dm b/code/game/objects/structures/curtains.dm index 9d7bbc96e1b..104fac7fd69 100644 --- a/code/game/objects/structures/curtains.dm +++ b/code/game/objects/structures/curtains.dm @@ -27,7 +27,7 @@ ..() /obj/structure/curtain/proc/toggle() - opacity = !opacity + set_opacity(!opacity) if(opacity) icon_state = "closed" layer = SHOWER_CLOSED_LAYER diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index b9af7b2d032..824759b35cb 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -191,7 +191,7 @@ Close() ..() - opacity = 0 + set_opacity(0) /obj/structure/mineral_door/transparent/plasma mineralType = "plasma" @@ -228,7 +228,7 @@ flick("[mineralType]opening",src) sleep(10) density = 0 - opacity = 0 + set_opacity(0) state = 1 update_icon() isSwitchingStates = 0 @@ -239,7 +239,7 @@ flick("[mineralType]closing",src) sleep(10) density = 1 - opacity = 1 + set_opacity(1) state = 0 update_icon() isSwitchingStates = 0 @@ -265,7 +265,7 @@ flick("[mineralType]opening",src) sleep(10) density = 0 - opacity = 0 + set_opacity(0) state = 1 update_icon() isSwitchingStates = 0 @@ -280,7 +280,7 @@ flick("[mineralType]closing",src) sleep(10) density = 1 - opacity = 1 + set_opacity(1) state = 0 update_icon() isSwitchingStates = 0 diff --git a/code/game/objects/structures/spirit_board.dm b/code/game/objects/structures/spirit_board.dm index 25fe7f4a134..253f93dc7ae 100644 --- a/code/game/objects/structures/spirit_board.dm +++ b/code/game/objects/structures/spirit_board.dm @@ -55,11 +55,10 @@ //lighting check var/light_amount = 0 var/turf/T = get_turf(src) - var/atom/movable/lighting_overlay/LO = locate(/atom/movable/lighting_overlay) in T - if(LO) - light_amount = LO.get_clamped_lum(0.5)*10 + if(T) + light_amount = T.get_lumcount(0.5) * 10 else - light_amount = 10 + light_amount = 10 if(light_amount > 2) to_chat(M, "It's too bright here to use [src.name]!") diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index ba5ced7723c..69b0df22ae3 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -24,8 +24,6 @@ var/PathNode/PNode = null //associated PathNode in the A* algorithm - var/dynamic_lighting = 1 - flags = 0 var/image/obscured //camerachunks @@ -161,10 +159,11 @@ return src var/old_opacity = opacity var/old_dynamic_lighting = dynamic_lighting - var/list/old_affecting_lights = affecting_lights + var/old_affecting_lights = affecting_lights var/old_lighting_overlay = lighting_overlay var/old_blueprint_data = blueprint_data var/old_obscured = obscured + var/old_corners = corners BeforeChange() if(air_master) @@ -178,16 +177,19 @@ for(var/turf/space/S in range(W,1)) S.update_starlight() - lighting_overlay = old_lighting_overlay + recalc_atom_opacity() - affecting_lights = old_affecting_lights - if((old_opacity != opacity) || (dynamic_lighting != old_dynamic_lighting)) - reconsider_lights() - if(dynamic_lighting != old_dynamic_lighting) - if(dynamic_lighting) - lighting_build_overlays() - else - lighting_clear_overlays() + if(lighting_overlays_initialised) + lighting_overlay = old_lighting_overlay + affecting_lights = old_affecting_lights + corners = old_corners + if((old_opacity != opacity) || (dynamic_lighting != old_dynamic_lighting)) + reconsider_lights() + if(dynamic_lighting != old_dynamic_lighting) + if(dynamic_lighting) + lighting_build_overlay() + else + lighting_clear_overlay() obscured = old_obscured @@ -384,11 +386,6 @@ if(ticker) cameranet.updateVisibility(src) -/turf/proc/get_lumcount() //Gets the lighting level of a given turf. - if(lighting_overlay) - return lighting_overlay.get_clamped_lum() - return 1 - /turf/attackby(obj/item/C, mob/user, params) if(can_lay_cable() && istype(C, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/coil = C diff --git a/code/modules/awaymissions/mission_code/clownplanet.dm b/code/modules/awaymissions/mission_code/clownplanet.dm index 359037ada0a..8d64d3074d2 100644 --- a/code/modules/awaymissions/mission_code/clownplanet.dm +++ b/code/modules/awaymissions/mission_code/clownplanet.dm @@ -4,10 +4,10 @@ name = "\improper Clown Planet" icon_state = "honk" luminosity = 1 - lighting_use_dynamic = 0 + dynamic_lighting = 0 requires_power = 0 report_alerts = 0 - + /area/awaymission/clownplanet/miningtown name = "\improper Clown Planet - Bananium-o-Rama" icon_state = "away1" diff --git a/code/modules/awaymissions/zlevel.dm b/code/modules/awaymissions/zlevel.dm index f5b951eb627..d340fc6a651 100644 --- a/code/modules/awaymissions/zlevel.dm +++ b/code/modules/awaymissions/zlevel.dm @@ -13,13 +13,6 @@ var/global/list/potentialRandomZlevels = generateMapList(filename = "config/away air_master.setup_allturfs(turfs) log_debug("\tTook [stop_watch(subtimer)]s") - subtimer = start_watch() - log_debug("Initializing lighting") - for(var/turf/T in turfs) - if(T.dynamic_lighting) - T.lighting_build_overlays() - log_debug("\tTook [stop_watch(subtimer)]s") - subtimer = start_watch() log_debug("Smoothing tiles") for(var/turf/T in smoothTurfs) diff --git a/code/modules/awaymissions/zvis.dm b/code/modules/awaymissions/zvis.dm index 06d60f3389f..735dd307ddb 100644 --- a/code/modules/awaymissions/zvis.dm +++ b/code/modules/awaymissions/zvis.dm @@ -1,7 +1,7 @@ /area/awaymission/upperlevel name = "Open Space" color = "#888" - lighting_use_dynamic = 0 + dynamic_lighting = 0 requires_power = 0 // Used by /turf/unsimulated/floor/upperlevel as a reference for where the other floor is diff --git a/code/modules/lighting/light_source.dm b/code/modules/lighting/light_source.dm deleted file mode 100644 index fd92e6675f1..00000000000 --- a/code/modules/lighting/light_source.dm +++ /dev/null @@ -1,257 +0,0 @@ -/datum/light_source - var/atom/top_atom - var/atom/source_atom - - var/turf/source_turf - var/light_power - var/light_range - var/light_color // string, decomposed by parse_light_color() - - var/lum_r - var/lum_g - var/lum_b - - var/tmp/applied_lum_r - var/tmp/applied_lum_g - var/tmp/applied_lum_b - - var/list/effect_str - var/list/effect_turf - - var/applied - - var/vis_update //Whetever we should smartly recalculate visibility. and then only update tiles that became (in) visible to us - var/needs_update - var/destroyed - var/force_update - -/datum/light_source/New(atom/owner, atom/top) - source_atom = owner - if(!source_atom.light_sources) source_atom.light_sources = list() - source_atom.light_sources += src - top_atom = top - if(top_atom != source_atom) - if(!top.light_sources) top.light_sources = list() - top_atom.light_sources += src - - source_turf = top_atom - light_power = source_atom.light_power - light_range = source_atom.light_range - light_color = source_atom.light_color - - parse_light_color() - - effect_str = list() - effect_turf = list() - - update() - - return ..() - -/datum/light_source/proc/destroy() - destroyed = 1 - force_update() - if(source_atom && source_atom.light_sources) source_atom.light_sources -= src - if(top_atom && top_atom.light_sources) top_atom.light_sources -= src - -/datum/light_source/proc/update(atom/new_top_atom) - if(new_top_atom && new_top_atom != top_atom) - if(top_atom != source_atom) top_atom.light_sources -= src - top_atom = new_top_atom - if(top_atom != source_atom) - if(!top_atom.light_sources) top_atom.light_sources = list() - top_atom.light_sources += src - - if(!needs_update) //Incase we're already updating either way. - lighting_update_lights += src - needs_update = 1 - -/datum/light_source/proc/force_update() - force_update = 1 - if(!needs_update) //Incase we're already updating either way. - needs_update = 1 - lighting_update_lights += src - -/datum/light_source/proc/vis_update() - if(!needs_update) - needs_update = 1 - lighting_update_lights += src - - vis_update = 1 - -/datum/light_source/proc/check() - if(!source_atom || !light_range || !light_power) - destroy() - return 1 - - if(!top_atom) - top_atom = source_atom - . = 1 - - if(istype(top_atom, /turf)) - if(source_turf != top_atom) - source_turf = top_atom - . = 1 - else if(top_atom.loc != source_turf) - source_turf = top_atom.loc - . = 1 - - if(source_atom.light_power != light_power) - light_power = source_atom.light_power - . = 1 - - if(source_atom.light_range != light_range) - light_range = source_atom.light_range - . = 1 - - if(light_range && light_power && !applied) - . = 1 - - if(source_atom.light_color != light_color) - light_color = source_atom.light_color - parse_light_color() - . = 1 - -/datum/light_source/proc/parse_light_color() - if(light_color) - lum_r = color2R(light_color) / 255 - lum_g = color2G(light_color) / 255 - lum_b = color2B(light_color) / 255 - else - lum_r = 1 - lum_g = 1 - lum_b = 1 - -#if LIGHTING_FALLOFF == 1 //circular - #define LUM_DISTANCE(swapvar, O, T) swapvar = (O.x - T.x)**2 + (O.y - T.y)**2 + LIGHTING_HEIGHT - #if LIGHTING_LAMBERTIAN == 1 - #define LUM_ATTENUATION(swapvar) swapvar = CLAMP01((1 - CLAMP01(sqrt(swapvar) / max(1,light_range))) * (1 / sqrt(swapvar + 1))) - #else - #define LUM_ATTENUATION(swapvar) swapvar = 1 - CLAMP01(sqrt(swapvar) / max(1,light_range)) - #endif -#elif LIGHTING_FALLOFF == 2 //square - #define LUM_DISTANCE(swapvar, O, T) swapvar = abs(O.x - T.x) + abs(O.y - T.y) + LIGHTING_HEIGHT - #if LIGHTING_LAMBERTIAN == 1 - #define LUM_ATTENUATION(swapvar) swapvar = CLAMP01((1 - CLAMP01(swapvar / max(1,light_range))) * (1 / sqrt(swapvar**2 + 1))) - #else - #define LUM_ATTENUATION(swapvar) swapvar = CLAMP01(swapvar / max(1,light_range)) - #endif -#endif - -#define LUM_FALLOFF(swapvar, O, T) \ - LUM_DISTANCE(swapvar, O, T); \ - LUM_ATTENUATION(swapvar); - -/datum/light_source/proc/apply_lum() - applied = 1 - - // Cache the applied lum counts. - applied_lum_r = lum_r - applied_lum_g = lum_g - applied_lum_b = lum_b - - if(istype(source_turf)) - FOR_DVIEW(var/turf/T, light_range, source_turf, INVISIBILITY_LIGHTING) - if(T.lighting_overlay) - var/strength - LUM_FALLOFF(strength, T, source_turf) - strength *= light_power - - if(!strength) //Don't add turfs that aren't affected to the affected turfs. - continue - - strength = round(strength, LIGHTING_ROUND_VALUE) //Screw sinking points. - - effect_str += strength - - T.lighting_overlay.update_lumcount( - lum_r * strength, - lum_g * strength, - lum_b * strength - ) - - else - effect_str += 0 - - if(!T.affecting_lights) - T.affecting_lights = list() - - T.affecting_lights += src - effect_turf += T - END_FOR_DVIEW - -/datum/light_source/proc/remove_lum() - applied = 0 - var/i = 1 - for(var/turf/T in effect_turf) - if(T.affecting_lights) - T.affecting_lights -= src - - if(T.lighting_overlay) - var/str = effect_str[i] - T.lighting_overlay.update_lumcount(-str * applied_lum_r, -str * applied_lum_g, -str * applied_lum_b) - - i++ - - effect_str.Cut() - effect_turf.Cut() - -/datum/light_source/proc/forget_turf(turf/T) - var/idx = effect_turf.Find(T) - effect_turf.Cut(idx, idx + 1) - effect_str.Cut(idx, idx + 1) - -//Smartly updates the lighting, only removes lum from and adds lum to turfs that actually got changed. -//This is for lights that need to reconsider due to nearby opacity changes. -//Stupid dumb copy pasta because BYOND and speed. -/datum/light_source/proc/smart_vis_update() - var/list/view[0] - FOR_DVIEW(var/turf/T, light_range, source_turf, INVISIBILITY_LIGHTING) - view += T //Filter out turfs. - END_FOR_DVIEW - //This is the part where we calculate new turfs (if any) - var/list/new_turfs = view - effect_turf //This will result with all the tiles that are added. - for(var/turf/T in new_turfs) - if(T.lighting_overlay) - LUM_FALLOFF(., T, source_turf) - . *= light_power - - if(!.) //Don't add turfs that aren't affected to the affected turfs. - continue - - . = round(., LIGHTING_ROUND_VALUE) - - effect_str += . - - T.lighting_overlay.update_lumcount( - lum_r * ., - lum_g * ., - lum_b * . - ) - - else - effect_str += 0 - - if(!T.affecting_lights) - T.affecting_lights = list() - - T.affecting_lights += src - effect_turf += T - - var/list/old_turfs = effect_turf - view - for(var/turf/T in old_turfs) - //Insert not-so-huge copy paste from remove_lum(). - var/idx = effect_turf.Find(T) //Get the index, luckily Find() is cheap in small lists like this. (with small I mean under a couple thousand len) - if(T.affecting_lights) - T.affecting_lights -= src - - if(T.lighting_overlay) - var/str = effect_str[idx] - T.lighting_overlay.update_lumcount(-str * lum_r, -str * lum_g, -str * lum_b) - - effect_turf.Cut(idx, idx + 1) - effect_str.Cut(idx, idx + 1) - -#undef LUM_FALLOFF -#undef LUM_DISTANCE -#undef LUM_ATTENUATION \ No newline at end of file diff --git a/code/modules/lighting/lighting_area.dm b/code/modules/lighting/lighting_area.dm new file mode 100644 index 00000000000..92923e6b0d5 --- /dev/null +++ b/code/modules/lighting/lighting_area.dm @@ -0,0 +1,9 @@ +/area + luminosity = TRUE + var/dynamic_lighting = TRUE + +/area/New() + . = ..() + + if(dynamic_lighting) + luminosity = FALSE \ No newline at end of file diff --git a/code/modules/lighting/lighting_atom.dm b/code/modules/lighting/lighting_atom.dm index 92500ecc1d9..679f6fb86ef 100644 --- a/code/modules/lighting/lighting_atom.dm +++ b/code/modules/lighting/lighting_atom.dm @@ -1,19 +1,30 @@ /atom var/light_power = 1 // intensity of the light var/light_range = 0 // range in tiles of the light - var/light_color // RGB string representing the colour of the light + var/light_color // Hexadecimal RGB string representing the colour of the light var/datum/light_source/light var/list/light_sources -/atom/proc/set_light(l_range, l_power, l_color) - if(l_power != null) light_power = l_power - if(l_range != null) light_range = l_range - if(l_color != null) light_color = l_color +// Nonsensical value for l_color default, so we can detect if it gets set to null. +#define NONSENSICAL_VALUE -99999 +/atom/proc/set_light(l_range, l_power, l_color = NONSENSICAL_VALUE) + if(l_power != null) + light_power = l_power + + if(l_range != null) + light_range = l_range + + if(l_color != NONSENSICAL_VALUE) + light_color = l_color update_light() +#undef NONSENSICAL_VALUE + /atom/proc/update_light() + set waitfor = FALSE + if(!light_power || !light_range) if(light) light.destroy() @@ -31,9 +42,14 @@ /atom/New() . = ..() + if(light_power && light_range) update_light() + if(opacity && isturf(loc)) + var/turf/T = loc + T.has_opaque_atom = TRUE // No need to recalculate it in this case, it's guranteed to be on afterwards anyways. + /atom/Destroy() if(light) light.destroy() @@ -62,11 +78,22 @@ new_loc.reconsider_lights() /atom/proc/set_opacity(new_opacity) - var/old_opacity = opacity + if(new_opacity == opacity) + return + opacity = new_opacity var/turf/T = loc - if(old_opacity != new_opacity && istype(T)) + if(!isturf(T)) + return + + if(new_opacity == TRUE) + T.has_opaque_atom = TRUE T.reconsider_lights() + else + var/old_has_opaque_atom = T.has_opaque_atom + T.recalc_atom_opacity() + if(old_has_opaque_atom != T.has_opaque_atom) + T.reconsider_lights() /obj/item/equipped() . = ..() diff --git a/code/modules/lighting/lighting_corner.dm b/code/modules/lighting/lighting_corner.dm new file mode 100644 index 00000000000..a464f5af2d0 --- /dev/null +++ b/code/modules/lighting/lighting_corner.dm @@ -0,0 +1,125 @@ +/var/list/datum/lighting_corner/all_lighting_corners = list() +/var/datum/lighting_corner/dummy/dummy_lighting_corner = new +// Because we can control each corner of every lighting overlay. +// And corners get shared between multiple turfs (unless you're on the corners of the map, then 1 corner doesn't). +// For the record: these should never ever ever be deleted, even if the turf doesn't have dynamic lighting. + +// This list is what the code that assigns corners listens to, the order in this list is the order in which corners are added to the /turf/corners list. +/var/list/LIGHTING_CORNER_DIAGONAL = list(NORTHEAST, SOUTHEAST, SOUTHWEST, NORTHWEST) + +/datum/lighting_corner + var/list/turf/masters = list() + var/list/datum/light_source/affecting = list() // Light sources affecting us. + var/active = FALSE // TRUE if one of our masters has dynamic lighting. + + var/x = 0 + var/y = 0 + var/z = 0 + + var/lum_r = 0 + var/lum_g = 0 + var/lum_b = 0 + + var/needs_update = FALSE + + var/cache_r = LIGHTING_SOFT_THRESHOLD + var/cache_g = LIGHTING_SOFT_THRESHOLD + var/cache_b = LIGHTING_SOFT_THRESHOLD + var/cache_mx = 0 + + var/update_gen = 0 + +/datum/lighting_corner/New(var/turf/new_turf, var/diagonal) + . = ..() + + all_lighting_corners += src + + masters[new_turf] = turn(diagonal, 180) + z = new_turf.z + + var/vertical = diagonal & ~(diagonal - 1) // The horizontal directions (4 and 8) are bigger than the vertical ones (1 and 2), so we can reliably say the lsb is the horizontal direction. + var/horizontal = diagonal & ~vertical // Now that we know the horizontal one we can get the vertical one. + + x = new_turf.x + (horizontal == EAST ? 0.5 : -0.5) + y = new_turf.y + (vertical == NORTH ? 0.5 : -0.5) + + // My initial plan was to make this loop through a list of all the dirs (horizontal, vertical, diagonal). + // Issue being that the only way I could think of doing it was very messy, slow and honestly overengineered. + // So we'll have this hardcode instead. + var/turf/T + var/i + + // Diagonal one is easy. + T = get_step(new_turf, diagonal) + if (T) // In case we're on the map's border. + if (!T.corners) + T.corners = list(null, null, null, null) + + masters[T] = diagonal + i = LIGHTING_CORNER_DIAGONAL.Find(turn(diagonal, 180)) + T.corners[i] = src + + // Now the horizontal one. + T = get_step(new_turf, horizontal) + if (T) // Ditto. + if (!T.corners) + T.corners = list(null, null, null, null) + + masters[T] = ((T.x > x) ? EAST : WEST) | ((T.y > y) ? NORTH : SOUTH) // Get the dir based on coordinates. + i = LIGHTING_CORNER_DIAGONAL.Find(turn(masters[T], 180)) + T.corners[i] = src + + // And finally the vertical one. + T = get_step(new_turf, vertical) + if (T) + if (!T.corners) + T.corners = list(null, null, null, null) + + masters[T] = ((T.x > x) ? EAST : WEST) | ((T.y > y) ? NORTH : SOUTH) // Get the dir based on coordinates. + i = LIGHTING_CORNER_DIAGONAL.Find(turn(masters[T], 180)) + T.corners[i] = src + + update_active() + +/datum/lighting_corner/proc/update_active() + active = FALSE + for (var/turf/T in masters) + if (T.lighting_overlay) + active = TRUE + +// God that was a mess, now to do the rest of the corner code! Hooray! +/datum/lighting_corner/proc/update_lumcount(var/delta_r, var/delta_g, var/delta_b) + lum_r += delta_r + lum_g += delta_g + lum_b += delta_b + + if (!needs_update) + needs_update = TRUE + lighting_update_corners += src + +/datum/lighting_corner/proc/update_overlays() + + // Cache these values a head of time so 4 individual lighting overlays don't all calculate them individually. + var/mx = max(lum_r, lum_g, lum_b) // Scale it so 1 is the strongest lum, if it is above 1. + . = 1 // factor + if (mx > 1) + . = 1 / mx + + else if (mx < LIGHTING_SOFT_THRESHOLD) + . = 0 // 0 means soft lighting. + + cache_r = lum_r * . || LIGHTING_SOFT_THRESHOLD + cache_g = lum_g * . || LIGHTING_SOFT_THRESHOLD + cache_b = lum_b * . || LIGHTING_SOFT_THRESHOLD + cache_mx = mx + + for (var/TT in masters) + var/turf/T = TT + if (T.lighting_overlay) + if (!T.lighting_overlay.needs_update) + T.lighting_overlay.needs_update = TRUE + lighting_update_overlays += T.lighting_overlay + + +/datum/lighting_corner/dummy/New() + return diff --git a/code/modules/lighting/lighting_overlay.dm b/code/modules/lighting/lighting_overlay.dm index 24854085c1a..7c2e1a55842 100644 --- a/code/modules/lighting/lighting_overlay.dm +++ b/code/modules/lighting/lighting_overlay.dm @@ -1,3 +1,4 @@ +var/list/all_lighting_overlays = list() // Global list of lighting overlays. /atom/movable/lighting_overlay name = "" mouse_opacity = 0 @@ -6,90 +7,75 @@ icon = LIGHTING_ICON layer = LIGHTING_LAYER invisibility = INVISIBILITY_LIGHTING - color = "#000000" + color = LIGHTING_BASE_MATRIX icon_state = "light1" auto_init = 0 // doesn't need special init + blend_mode = BLEND_MULTIPLY - var/lum_r - var/lum_g - var/lum_b + var/lum_r = 0 + var/lum_g = 0 + var/lum_b = 0 - var/needs_update + var/needs_update = FALSE -/atom/movable/lighting_overlay/New() +/atom/movable/lighting_overlay/New(var/atom/loc, var/no_update = FALSE) . = ..() verbs.Cut() + global.all_lighting_overlays += src var/turf/T = loc //If this runtimes atleast we'll know what's creating overlays outside of turfs. + T.lighting_overlay = src T.luminosity = 0 - -/atom/movable/lighting_overlay/proc/get_clamped_lum(var/minlum = 0, var/maxlum = 1) - var/lum = max(lum_r, lum_g, lum_b) - if(lum <= minlum) - return 0 - else if(lum >= maxlum) - return 1 - else - return (lum - minlum) / (maxlum - minlum) - -/atom/movable/lighting_overlay/proc/update_lumcount(delta_r, delta_g, delta_b) - if(!delta_r && !delta_g && !delta_b) //Nothing is being changed all together. + if(no_update) return - - var/should_update = 0 - - if(!needs_update) //If this isn't true, we're already updating anyways. - if(max(lum_r, lum_g, lum_b) < 1) //Any change that could happen WILL change appearance. - should_update = 1 - - else if(max(lum_r + delta_r, lum_g + delta_g, lum_b + delta_b) < 1) //The change would bring us under 1 max lum, again, guaranteed to change appearance. - should_update = 1 - - else //We need to make sure that the colour ratios won't change in this code block. - var/mx1 = max(lum_r, lum_g, lum_b) - var/mx2 = max(lum_r + delta_r, lum_g + delta_g, lum_b + delta_b) - - if(lum_r / mx1 != (lum_r + delta_r) / mx2 || lum_g / mx1 != (lum_g + delta_g) / mx2 || lum_b / mx1 != (lum_b + delta_b) / mx2) //Stuff would change. - should_update = 1 - - lum_r = max(lum_r + delta_r, 0) //Lum shouldn't drop below 1 - lum_g = max(lum_g + delta_g, 0) - lum_b = max(lum_b + delta_b, 0) - - if(!needs_update && should_update) - needs_update = 1 - lighting_update_overlays += src + update_overlay() /atom/movable/lighting_overlay/proc/update_overlay() + set waitfor = FALSE var/turf/T = loc - if(istype(T)) //Incase we're not on a turf, pool ourselves, something happened. - if(lum_r == lum_g && lum_r == lum_b) //greyscale - blend_mode = BLEND_OVERLAY - if(lum_r <= 0) - T.luminosity = 0 - color = "#000000" - alpha = 255 - else - T.luminosity = 1 - color = "#000000" - alpha = (1 - min(lum_r, 1)) * 255 + if(!istype(T)) + if(loc) + log_debug("A lighting overlay realised its loc was NOT a turf (actual loc: [loc][loc ? ", " + loc.type : "null"]) in update_overlay() and got qdel'ed!") else - alpha = 255 - var/mx = max(lum_r, lum_g, lum_b) - . = 1 // factor - if(mx > 1) - . = 1/mx - blend_mode = BLEND_MULTIPLY - color = rgb(lum_r * 255 * ., lum_g * 255 * ., lum_b * 255 * .) - if(color != "#000000") - T.luminosity = 1 - else //No light, set the turf's luminosity to 0 to remove it from view() - T.luminosity = 0 - else - //warning("A lighting overlay realised its loc was NOT a turf (actual loc: [loc][loc ? ", " + loc.type : "null"]) in update_overlay() and got qdel'ed!") //fucking bullshit bugs means this spams when shuttles move, feel free to fix - log_debug("A lighting overlay realised its loc was NOT a turf (actual loc: [loc][loc ? ", " + loc.type : "null"]) in update_overlay() and got qdel'ed!") + log_debug("A lighting overlay realised it was in nullspace in update_overlay() and got pooled!") qdel(src) + return + + // To the future coder who sees this and thinks + // "Why didn't he just use a loop?" + // Well my man, it's because the loop performed like shit. + // And there's no way to improve it because + // without a loop you can make the list all at once which is the fastest you're gonna get. + // Oh it's also shorter line wise. + // Including with these comments. + + // See LIGHTING_CORNER_DIAGONAL in lighting_corner.dm for why these values are what they are. + // No I seriously cannot think of a more efficient method, fuck off Comic. + var/datum/lighting_corner/cr = T.corners[3] || dummy_lighting_corner + var/datum/lighting_corner/cg = T.corners[2] || dummy_lighting_corner + var/datum/lighting_corner/cb = T.corners[4] || dummy_lighting_corner + var/datum/lighting_corner/ca = T.corners[1] || dummy_lighting_corner + + var/max = max(cr.cache_mx, cg.cache_mx, cb.cache_mx, ca.cache_mx) + + var/list/new_matrix = list( + cr.cache_r, cr.cache_g, cr.cache_b, 0, + cg.cache_r, cg.cache_g, cg.cache_b, 0, + cb.cache_r, cb.cache_g, cb.cache_b, 0, + ca.cache_r, ca.cache_g, ca.cache_b, 0, + 0, 0, 0, 1 + ) + var/lum = max > LIGHTING_SOFT_THRESHOLD + + if(lum) + luminosity = 1 + animate(src, color = new_matrix, time = 5) + else + animate(src, color = new_matrix, time = 5) + animate(luminosity = 0, time = 0) + + /atom/movable/lighting_overlay/singularity_act() return @@ -98,10 +84,13 @@ return /atom/movable/lighting_overlay/Destroy() - lighting_update_overlays -= src + global.all_lighting_overlays -= src + global.lighting_update_overlays -= src + global.lighting_update_overlays_old -= src var/turf/T = loc if(istype(T)) T.lighting_overlay = null + T.luminosity = 1 return ..() diff --git a/code/modules/lighting/lighting_process.dm b/code/modules/lighting/lighting_process.dm deleted file mode 100644 index 916920393ba..00000000000 --- a/code/modules/lighting/lighting_process.dm +++ /dev/null @@ -1,35 +0,0 @@ -/datum/controller/process/lighting - var/last_light_count = 0 - var/last_overlay_count = 0 - -/datum/controller/process/lighting/doWork() - var/list/lighting_update_lights_old = lighting_update_lights //We use a different list so any additions to the update lists during a delay from SCHECK don't cause things to be cut from the list without being updated. - last_light_count = lighting_update_lights.len - lighting_update_lights = null //Nulling it first because of http://www.byond.com/forum/?post=1854520 - lighting_update_lights = list() - - for(var/datum/light_source/L in lighting_update_lights_old) - if(L.destroyed || L.check() || L.force_update) - L.remove_lum() - if(!L.destroyed) - L.apply_lum() - - else if(L.vis_update) //We smartly update only tiles that became (in) visible to use. - L.smart_vis_update() - - L.vis_update = 0 - L.force_update = 0 - L.needs_update = 0 - - SCHECK - - var/list/lighting_update_overlays_old = lighting_update_overlays //Same as above. - last_overlay_count = lighting_update_overlays.len - lighting_update_overlays = null //Same as above - lighting_update_overlays = list() - - for(var/atom/movable/lighting_overlay/O in lighting_update_overlays_old) - O.update_overlay() - O.needs_update = 0 - - SCHECK diff --git a/code/modules/lighting/lighting_setup.dm b/code/modules/lighting/lighting_setup.dm new file mode 100644 index 00000000000..981de658649 --- /dev/null +++ b/code/modules/lighting/lighting_setup.dm @@ -0,0 +1,16 @@ +/proc/create_all_lighting_overlays() + for(var/zlevel = 1 to world.maxz) + create_lighting_overlays_zlevel(zlevel) + +/proc/create_lighting_overlays_zlevel(var/zlevel) + ASSERT(zlevel) + + for(var/turf/T in block(locate(1, 1, zlevel), locate(world.maxx, world.maxy, zlevel))) + if(!T.dynamic_lighting) + continue + + var/area/A = T.loc + if(!A.dynamic_lighting) + continue + + new /atom/movable/lighting_overlay(T, TRUE) diff --git a/code/modules/lighting/lighting_source.dm b/code/modules/lighting/lighting_source.dm new file mode 100644 index 00000000000..c26522dc5a7 --- /dev/null +++ b/code/modules/lighting/lighting_source.dm @@ -0,0 +1,283 @@ +// This is where the fun begins. +// These are the main datums that emit light. + +/datum/light_source + var/atom/top_atom // The atom we're emitting light from(for example a mob if we're from a flashlight that's being held). + var/atom/source_atom // The atom that we belong to. + + var/turf/source_turf // The turf under the above. + var/light_power // Intensity of the emitter light. + var/light_range // The range of the emitted light. + var/light_color // The colour of the light, string, decomposed by parse_light_color() + + // Variables for keeping track of the colour. + var/lum_r + var/lum_g + var/lum_b + + // The lumcount values used to apply the light. + var/tmp/applied_lum_r + var/tmp/applied_lum_g + var/tmp/applied_lum_b + + var/list/datum/lighting_corner/effect_str // List used to store how much we're affecting corners. + var/list/turf/affecting_turfs + + var/applied = FALSE // Whether we have applied our light yet or not. + + var/vis_update // Whether we should smartly recalculate visibility. and then only update tiles that became(in)visible to us. + var/needs_update // Whether we are queued for an update. + var/destroyed // Whether we are destroyed and need to stop emitting light. + var/force_update + +/datum/light_source/New(var/atom/owner, var/atom/top) + source_atom = owner // Set our new owner. + if(!source_atom.light_sources) + source_atom.light_sources = list() + + source_atom.light_sources += src // Add us to the lights of our owner. + top_atom = top + if(top_atom != source_atom) + if(!top.light_sources) + top.light_sources = list() + + top_atom.light_sources += src + + source_turf = top_atom + light_power = source_atom.light_power + light_range = source_atom.light_range + light_color = source_atom.light_color + + parse_light_color() + + effect_str = list() + affecting_turfs = list() + + update() + + return ..() + +// Kill ourselves. +/datum/light_source/proc/destroy() + destroyed = TRUE + force_update() + if(source_atom) + source_atom.light_sources -= src + + if(top_atom) + top_atom.light_sources -= src + +// Call it dirty, I don't care. +// This is here so there's no performance loss on non-instant updates from the fact that the engine can also do instant updates. +// If you're wondering what's with the "BYOND" argument: BYOND won't let me have a() macro that has no arguments :|. +#define effect_update(BYOND) \ + if(!needs_update) \ + { \ + lighting_update_lights += src; \ + needs_update = TRUE; \ + } + +// This proc will cause the light source to update the top atom, and add itself to the update queue. +/datum/light_source/proc/update(var/atom/new_top_atom) + // This top atom is different. + if(new_top_atom && new_top_atom != top_atom) + if(top_atom != source_atom) // Remove ourselves from the light sources of that top atom. + top_atom.light_sources -= src + + top_atom = new_top_atom + + if(top_atom != source_atom) + if(!top_atom.light_sources) + top_atom.light_sources = list() + + top_atom.light_sources += src // Add ourselves to the light sources of our new top atom. + + effect_update(null) + +// Will force an update without checking if it's actually needed. +/datum/light_source/proc/force_update() + force_update = 1 + + effect_update(null) + +// Will cause the light source to recalculate turfs that were removed or added to visibility only. +/datum/light_source/proc/vis_update() + vis_update = 1 + + effect_update(null) + +// Will check if we actually need to update, and update any variables that may need to be updated. +/datum/light_source/proc/check() + if(!source_atom || !light_range || !light_power) + destroy() + return 1 + + if(!top_atom) + top_atom = source_atom + . = 1 + + if(isturf(top_atom)) + if(source_turf != top_atom) + source_turf = top_atom + . = 1 + else if(top_atom.loc != source_turf) + source_turf = top_atom.loc + . = 1 + + if(source_atom.light_power != light_power) + light_power = source_atom.light_power + . = 1 + + if(source_atom.light_range != light_range) + light_range = source_atom.light_range + . = 1 + + if(light_range && light_power && !applied) + . = 1 + + if(source_atom.light_color != light_color) + light_color = source_atom.light_color + parse_light_color() + . = 1 + +// Decompile the hexadecimal colour into lumcounts of each perspective. +/datum/light_source/proc/parse_light_color() + if(light_color) + lum_r = GetRedPart (light_color) / 255 + lum_g = GetGreenPart(light_color) / 255 + lum_b = GetBluePart (light_color) / 255 + else + lum_r = 1 + lum_g = 1 + lum_b = 1 + +// Macro that applies light to a new corner. +// It is a macro in the interest of speed, yet not having to copy paste it. +// If you're wondering what's with the backslashes, the backslashes cause BYOND to not automatically end the line. +// As such this all gets counted as a single line. +// The braces and semicolons are there to be able to do this on a single line. + +#define APPLY_CORNER(C) \ + . = LUM_FALLOFF(C, source_turf); \ + \ + . *= light_power; \ + \ + effect_str[C] = .; \ + \ + C.update_lumcount \ + ( \ + . * applied_lum_r, \ + . * applied_lum_g, \ + . * applied_lum_b \ + ); + +// I don't need to explain what this does, do I? +#define REMOVE_CORNER(C) \ + . = -effect_str[C]; \ + C.update_lumcount \ + ( \ + . * applied_lum_r, \ + . * applied_lum_g, \ + . * applied_lum_b \ + ); + +// This is the define used to calculate falloff. +#define LUM_FALLOFF(C, T)(1 - CLAMP01(sqrt((C.x - T.x) ** 2 +(C.y - T.y) ** 2 + LIGHTING_HEIGHT) / max(1, light_range))) + +/datum/light_source/proc/apply_lum() + var/static/update_gen = 1 + applied = 1 + + // Keep track of the last applied lum values so that the lighting can be reversed + applied_lum_r = lum_r + applied_lum_g = lum_g + applied_lum_b = lum_b + + FOR_DVIEW(var/turf/T, light_range, source_turf, INVISIBILITY_LIGHTING) + if(!T.lighting_corners_initialised) + T.generate_missing_corners() + + for(var/datum/lighting_corner/C in T.get_corners()) + if(C.update_gen == update_gen) + continue + + C.update_gen = update_gen + C.affecting += src + + if(!C.active) + effect_str[C] = 0 + continue + + APPLY_CORNER(C) + + if(!T.affecting_lights) + T.affecting_lights = list() + + T.affecting_lights += src + affecting_turfs += T + + update_gen++ + +/datum/light_source/proc/remove_lum() + applied = FALSE + + for(var/turf/T in affecting_turfs) + if(!T.affecting_lights) + T.affecting_lights = list() + else + T.affecting_lights -= src + + affecting_turfs.Cut() + + for(var/datum/lighting_corner/C in effect_str) + REMOVE_CORNER(C) + + C.affecting -= src + + effect_str.Cut() + +/datum/light_source/proc/recalc_corner(var/datum/lighting_corner/C) + if(effect_str.Find(C)) // Already have one. + REMOVE_CORNER(C) + + APPLY_CORNER(C) + +/datum/light_source/proc/smart_vis_update() + var/list/datum/lighting_corner/corners = list() + var/list/turf/turfs = list() + FOR_DVIEW(var/turf/T, light_range, source_turf, 0) + if(!T.lighting_corners_initialised) + T.generate_missing_corners() + corners |= T.get_corners() + turfs += T + + var/list/L = turfs - affecting_turfs // New turfs, add us to the affecting lights of them. + affecting_turfs += L + for(var/turf/T in L) + if(!T.affecting_lights) + T.affecting_lights = list(src) + else + T.affecting_lights += src + + L = affecting_turfs - turfs // Now-gone turfs, remove us from the affecting lights. + affecting_turfs -= L + for(var/turf/T in L) + T.affecting_lights -= src + + for(var/datum/lighting_corner/C in corners - effect_str) // New corners + C.affecting += src + if(!C.active) + effect_str[C] = 0 + continue + + APPLY_CORNER(C) + + for(var/datum/lighting_corner/C in effect_str - corners) // Old, now gone, corners. + REMOVE_CORNER(C) + C.affecting -= src + effect_str -= C + +#undef effect_update +#undef LUM_FALLOFF +#undef REMOVE_CORNER +#undef APPLY_CORNER diff --git a/code/modules/lighting/lighting_system.dm b/code/modules/lighting/lighting_system.dm deleted file mode 100644 index bdad6316395..00000000000 --- a/code/modules/lighting/lighting_system.dm +++ /dev/null @@ -1,25 +0,0 @@ -/var/list/lighting_update_lights = list() -/var/list/lighting_update_overlays = list() - -/area/var/lighting_use_dynamic = 1 - -// duplicates lots of code, but this proc needs to be as fast as possible. -/proc/create_lighting_overlays(zlevel = 0) - var/area/A - if(zlevel == 0) // populate all zlevels - for(var/turf/T in world) - if(T.dynamic_lighting) - A = T.loc - if(A.lighting_use_dynamic) - var/atom/movable/lighting_overlay/O = new(T) - T.lighting_overlay = O - - else - for(var/x = 1; x <= world.maxx; x++) - for(var/y = 1; y <= world.maxy; y++) - var/turf/T = locate(x, y, zlevel) - if(T.dynamic_lighting) - A = T.loc - if(A.lighting_use_dynamic) - var/atom/movable/lighting_overlay/O = new(T) - T.lighting_overlay = O \ No newline at end of file diff --git a/code/modules/lighting/lighting_turf.dm b/code/modules/lighting/lighting_turf.dm index 53d9ab0455c..ddb934aed61 100644 --- a/code/modules/lighting/lighting_turf.dm +++ b/code/modules/lighting/lighting_turf.dm @@ -1,26 +1,102 @@ /turf - var/list/affecting_lights - var/atom/movable/lighting_overlay/lighting_overlay + var/dynamic_lighting = TRUE + luminosity = 1 + var/tmp/lighting_corners_initialised = FALSE + + var/tmp/list/datum/light_source/affecting_lights // List of light sources affecting this turf. + var/tmp/atom/movable/lighting_overlay/lighting_overlay // Our lighting overlay. + var/tmp/list/datum/lighting_corner/corners + var/tmp/has_opaque_atom = FALSE // Not to be confused with opacity, this will be TRUE if there's any opaque atom on the tile. + +/turf/New() + . = ..() + + if(opacity) + has_opaque_atom = TRUE + +// Causes any affecting light sources to be queued for a visibility update, for example a door got opened. /turf/proc/reconsider_lights() for(var/datum/light_source/L in affecting_lights) L.vis_update() -/turf/proc/lighting_clear_overlays() +/turf/proc/lighting_clear_overlay() if(lighting_overlay) qdel(lighting_overlay) -/turf/proc/lighting_build_overlays() + for(var/datum/lighting_corner/C in corners) + C.update_active() + +// Builds a lighting overlay for us, but only if our area is dynamic. +/turf/proc/lighting_build_overlay() if(lighting_overlay) return var/area/A = loc - if(A.lighting_use_dynamic) - var/atom/movable/lighting_overlay/O = new(src) - lighting_overlay = O - // forcibly refresh lighting on this tile - // must make light forget tile or it wil remain - // convinced that it is already lighting it - for(var/datum/light_source/L in affecting_lights) - L.forget_turf(src) - L.vis_update() \ No newline at end of file + if(A.dynamic_lighting) + if(!lighting_corners_initialised) + generate_missing_corners() + + new /atom/movable/lighting_overlay(src) + + for(var/datum/lighting_corner/C in corners) + if(!C.active) // We would activate the corner, calculate the lighting for it. + for(var/L in C.affecting) + var/datum/light_source/S = L + S.recalc_corner(C) + + C.active = TRUE + +// Used to get a scaled lumcount. +/turf/proc/get_lumcount(var/minlum = 0, var/maxlum = 1) + if(!lighting_overlay) + return 1 + + var/totallums = 0 + for(var/datum/lighting_corner/L in corners) + totallums += max(L.lum_r, L.lum_g, L.lum_b) + + totallums /= 4 // 4 corners, max channel selected, return the average + + totallums =(totallums - minlum) /(maxlum - minlum) + + return CLAMP01(totallums) + +// Can't think of a good name, this proc will recalculate the has_opaque_atom variable. +/turf/proc/recalc_atom_opacity() + has_opaque_atom = FALSE + for(var/atom/A in src.contents + src) // Loop through every movable atom on our tile PLUS ourselves (we matter too...) + if(A.opacity) + has_opaque_atom = TRUE + +// If an opaque movable atom moves around we need to potentially update visibility. +/turf/Entered(var/atom/movable/Obj, var/atom/OldLoc) + . = ..() + + if(Obj && Obj.opacity) + has_opaque_atom = TRUE // Make sure to do this before reconsider_lights(), incase we're on instant updates. Guaranteed to be on in this case. + reconsider_lights() + +/turf/Exited(var/atom/movable/Obj, var/atom/newloc) + . = ..() + + if(Obj && Obj.opacity) + recalc_atom_opacity() // Make sure to do this before reconsider_lights(), incase we're on instant updates. + reconsider_lights() + +/turf/proc/get_corners() + if(has_opaque_atom) + return null // Since this proc gets used in a for loop, null won't be looped though. + + return corners + +/turf/proc/generate_missing_corners() + lighting_corners_initialised = TRUE + if(!corners) + corners = list(null, null, null, null) + + for(var/i = 1 to 4) + if(corners[i]) // Already have a corner on this direction. + continue + + corners[i] = new /datum/lighting_corner(src, LIGHTING_CORNER_DIAGONAL[i]) diff --git a/code/modules/lighting/~lighting_undefs.dm b/code/modules/lighting/~lighting_undefs.dm index 09100322b8a..2de3f9dbe26 100644 --- a/code/modules/lighting/~lighting_undefs.dm +++ b/code/modules/lighting/~lighting_undefs.dm @@ -1,9 +1,7 @@ -#undef LIGHTING_INTERVAL - #undef LIGHTING_FALLOFF #undef LIGHTING_LAMBERTIAN #undef LIGHTING_HEIGHT -#undef LIGHTING_RESOLUTION -#undef LIGHTING_LAYER -#undef LIGHTING_ICON \ No newline at end of file +#undef LIGHTING_ICON + +#undef LIGHTING_BASE_MATRIX diff --git a/code/modules/mob/living/simple_animal/posessed_object.dm b/code/modules/mob/living/simple_animal/posessed_object.dm index 70ea452381d..1473bd5990a 100644 --- a/code/modules/mob/living/simple_animal/posessed_object.dm +++ b/code/modules/mob/living/simple_animal/posessed_object.dm @@ -103,7 +103,7 @@ dir = possessed_item.dir color = possessed_item.color overlays = possessed_item.overlays - opacity = possessed_item.opacity + set_opacity(possessed_item.opacity) visible_message("[src] rises into the air and begins to float!") // Inform those around us that shit's gettin' spooky. animate_ghostly_presence(src, -1, 20, 1) diff --git a/code/modules/power/supermatter/wall.dm b/code/modules/power/supermatter/wall.dm index e8997dee07c..afadcb23a46 100644 --- a/code/modules/power/supermatter/wall.dm +++ b/code/modules/power/supermatter/wall.dm @@ -49,7 +49,7 @@ icon_state = "smatter" temperature = T20C+80 density = 1 - opacity = 1 + set_opacity(1) blocks_air = 1 spawn(2) diff --git a/icons/effects/lighting_overlay.dmi b/icons/effects/lighting_overlay.dmi deleted file mode 100644 index a5bee534b3d7b84ebea980f30a17928e59d45c54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^2|(M5>u zb$SmDFfy#+2=v)-;Uvh8NW&Hj9u{oJD8zyJ38|NQOa z|M-u;{hjmky?xmq8}>77#ec@IUtGUa@plf}ajk^;9)r~m<`{nLsNF2OdGx_rY3A96 zWwR9@KGZP&dj?k!_@MxP`89$47XoiqfPb^<8{l_T-46&HRgVq^@fTWi|u4@}5K=9BMP`7XFfwUSsJI_mEWW(PCeh02& zNn|@X0Zjqdt-wdi7E1uvIVX_Dg_zyjxLsR=04I?4)&vMoe@{5NZ|_WYuexV8bdMw_ z&@_QA0ZbqPZ4k(UySG5!=(=I=@@j&;6`0+l<|&{l_`4(sME8`S0Kk+83glVQJ(ocO zgw_Q7g1fb#04kw5DB*&Sq{JmqVAgR4YfH&VwI zYSle5C?OFFa1Vs-P4 zXaf5TCA8^OIRy$ZfTMH3Id(`;0M{oRQ6a0nnn6DWZw0pHIYOQO{TB!C=9 zTLKlqmF*74#$&b#?*-3-r*GJ505g{WM~@J`AxAr~0ShX4KLp0_3qGL>e&9&E;C;iX z-D50?+%U|ZnOjNN23#K{z)g7YNAQCZ*;xVZ5IMN!+HC9|Y74&Y60i*?vEU^!2%q4_ zD)=aPh21}FL*Lt+z;XWUgYXr~0IqNl3VK2`+F=;5gy-I3)xhkE$9y^Qd}G-~rq=C~%w;0NlD`C$y3P7zx59flY=S zvDRK|e!?$kRjfClT@`z|psa^u_)hdgOK@lp?6n~^f#y*H9t87rV-1~fTxZ_rA8US0 zXw`fKps}s4QM*4<0_eK48YZA!@W6iM1lakE;JctYTC>19WTNhEopcxcHuhB5wIn*O z0|HxnVpU6`Yy1HFhXA^7E0FL?@=R~*eDBIUV7Sxc-{H^D_=E6gPB5ncI7HBW<*6y0 z0@gHvJOyxc=6bLY>hpLVXZLBJYaTNh@x-Z(3B*$q=oEoKqk!_jbMR@r8QUdbf}1;^ zTodk9*F$BUa5`kV?(vqJI&U3aZzX{1fP}z+ati22*AyUpTmsyL=$zn!U&-}IJ)dfl z5SX_Zg7*M+FOlrp`2aDE-9KZ31z!_rl<=3PP!nMHt_h4w01ps=^XwkaaUHAce80dA zw^|FrYZ47(_bGv(``1_k?ypf3P`w1uJ>L@-9Ot#`Io<%z^+;V$HNo*JnsvXoz`OCr zO4x!wMpeNv%onEcLZ1|Q0d=2%Q-E(ulz>3JFb;J;_+m{c-}G2{u6K5>^W6gz2*8+{ z0Q?sm9V-()!|ov>3D+Jd@cFhnZf~$DfhEyZ0Ua3y_o_-e1g^AOZg6M!EA|C}FMX8o zCDkqouD8JEHvvn2a%}qk@#-F*A*>I48$GxTgVjpFX7`e?w%}hty};lUZUXohQ}<=U z?)l+>7YR!A`nCy4SbeJjr|xgm*~ z0>LZw1qdj!X#?W(6zLP(pGLUAt-yv`&ua6rd%;WKTOX!&&jPP++HrpG-lDE=>5qS= iJ#V4J*JlhL?0*5J6wAQ~73C2C0000 Date: Sun, 5 Feb 2017 13:58:24 -0500 Subject: [PATCH 027/101] Refactors Reagent Tanks--Adds High Capacity Water Tank --- code/datums/supplypacks.dm | 9 +- code/game/objects/items/toys.dm | 24 +- code/game/objects/items/weapons/tools.dm | 23 +- code/modules/food_and_drinks/drinks/drinks.dm | 4 +- .../reagent_containers/glass_containers.dm | 16 +- .../reagents/reagent_containers/spray.dm | 2 +- code/modules/reagents/reagent_dispenser.dm | 244 +++++++++--------- .../xenoarchaeology/machinery/coolant.dm | 40 +-- icons/obj/objects.dmi | Bin 145911 -> 141485 bytes 9 files changed, 161 insertions(+), 201 deletions(-) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 641dcfd1bb5..d6c14a4709d 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -1185,10 +1185,17 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /datum/supply_packs/misc/watertank name = "Water Tank Crate" contains = list(/obj/structure/reagent_dispensers/watertank) - cost = 8 + cost = 6 containertype = /obj/structure/largecrate containername = "water tank crate" +/datum/supply_packs/misc/hightank + name = "High-Capacity Water Tank Crate" + contains = list(/obj/structure/reagent_dispensers/watertank/high) + cost = 12 + containertype = /obj/structure/largecrate + containername = "high-capacity water tank crate" + /datum/supply_packs/misc/lasertag name = "Laser Tag Crate" contains = list(/obj/item/weapon/gun/energy/laser/redtag, diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 69f03730ce2..feb681e47c2 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -43,14 +43,20 @@ /obj/item/toy/balloon/attack(mob/living/carbon/human/M as mob, mob/user as mob) return -/obj/item/toy/balloon/afterattack(atom/A as mob|obj, mob/user as mob, proximity) - if(!proximity) return - if(istype(A, /obj/structure/reagent_dispensers) && get_dist(src,A) <= 1) - A.reagents.trans_to(src, 10) - to_chat(user, "You fill the balloon with the contents of [A].") - desc = "A translucent balloon with some form of liquid sloshing around in it." - update_icon() - return +/obj/item/toy/balloon/afterattack(atom/A, mob/user, proximity) + if(!proximity) + return + if(istype(A, /obj/structure/reagent_dispensers)) + var/obj/structure/reagent_dispensers/RD = A + if(RD.reagents.total_volume <= 0) + to_chat(user, "[RD] is empty.") + else if(reagents.total_volume >= 10) + to_chat(user, "[src] is full.") + else + A.reagents.trans_to(src, 10) + to_chat(user, "You fill the balloon with the contents of [A].") + desc = "A translucent balloon with some form of liquid sloshing around in it." + update_icon() /obj/item/toy/balloon/wash(mob/user, atom/source) if(reagents.total_volume < 10) @@ -877,7 +883,7 @@ obj/item/toy/cards/deck/syndicate/black /obj/item/toy/minimeteor name = "Mini-Meteor" - desc = "Relive the excitement of a meteor shower! SweetMeat-eor. Co is not responsible for any injuries, headaches or hearing loss caused by Mini-Meteor™" + desc = "Relive the excitement of a meteor shower! SweetMeat-eor. Co is not responsible for any injuries, headaches or hearing loss caused by Mini-Meteor." icon = 'icons/obj/toy.dmi' icon_state = "minimeteor" w_class = 2 diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 176108b8f08..b7f5e370b95 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -266,22 +266,9 @@ else return ..() -/obj/item/weapon/weldingtool/afterattack(obj/O as obj, mob/user as mob, proximity) - if(!proximity) return - if(istype(O, /obj/structure/reagent_dispensers/fueltank) && in_range(src, O)) - if(!welding) - O.reagents.trans_to(src, max_fuel) - to_chat(user, "[src] refueled.") - playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6) - update_icon() - return - else - message_admins("[key_name_admin(user)] triggered a fueltank explosion.") - log_game("[key_name(user)] triggered a fueltank explosion.") - to_chat(user, "That was stupid of you.") - O.ex_act() - return - +/obj/item/weapon/weldingtool/afterattack(atom/O, mob/user, proximity) + if(!proximity) + return if(welding) remove_fuel(1) var/turf/location = get_turf(user) @@ -289,7 +276,9 @@ if(isliving(O)) var/mob/living/L = O - L.IgniteMob() + if(L.IgniteMob()) + message_admins("[key_name_admin(user)] set [key_name_admin(L)] on fire") + log_game("[key_name(user)] set [key_name(L)] on fire") /obj/item/weapon/weldingtool/attack_self(mob/user) toggle(user) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index eedae606007..ee1d2821fa1 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -61,7 +61,7 @@ to_chat(user, " [src] is full.") return - var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this) + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) to_chat(user, " You fill [src] with [trans] units of the contents of [target].") else if(target.is_open_container()) //Something like a glass. Player probably wants to transfer TO it. @@ -332,7 +332,7 @@ desc = "A cup with the british flag emblazoned on it." icon_state = "britcup" volume = 30 - + /obj/item/weapon/reagent_containers/food/drinks/mushroom_bowl name = "mushroom bowl" desc = "A bowl made out of mushrooms. Not food, though it might have contained some at some point." diff --git a/code/modules/reagents/reagent_containers/glass_containers.dm b/code/modules/reagents/reagent_containers/glass_containers.dm index 6079bd3392b..b170f6b0867 100644 --- a/code/modules/reagents/reagent_containers/glass_containers.dm +++ b/code/modules/reagents/reagent_containers/glass_containers.dm @@ -39,7 +39,8 @@ /obj/machinery/smartfridge/, /obj/machinery/biogenerator, /obj/machinery/hydroponics, - /obj/machinery/constructable_frame) + /obj/machinery/constructable_frame, + /obj/machinery/icemachine) /obj/item/weapon/reagent_containers/glass/New() ..() @@ -62,7 +63,8 @@ update_icon() /obj/item/weapon/reagent_containers/glass/afterattack(obj/target, mob/user, proximity) - if(!proximity) return + if(!proximity) + return if(!is_open_container()) return @@ -94,16 +96,16 @@ return else if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us. - if(!target.reagents.total_volume && target.reagents) - to_chat(user, "[target] is empty.") + if(target.reagents && !target.reagents.total_volume) + to_chat(user, "[target] is empty and can't be refilled!") return if(reagents.total_volume >= reagents.maximum_volume) - to_chat(user, "[src] is full.") + to_chat(user, "[src] is full.") return - var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this) - to_chat(user, "You fill [src] with [trans] units of the contents of [target].") + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) + to_chat(user, "You fill [src] with [trans] unit\s of the contents of [target].") else if(target.is_open_container() && target.reagents) //Something like a glass. Player probably wants to transfer TO it. if(!reagents.total_volume) diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 274c3efd623..cc4bf75ea45 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -34,7 +34,7 @@ to_chat(user, "[src] is full.") return - var/trans = A.reagents.trans_to(src, A:amount_per_transfer_from_this) + var/trans = A.reagents.trans_to(src, 50) //This is a static amount, otherwise, it'll take forever to fill. to_chat(user, "You fill [src] with [trans] units of the contents of [A].") return diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 4c2d2caa6b8..f050f6708e7 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -1,5 +1,3 @@ -#define AUTOIGNITION_WELDERFUEL 561.15 - /obj/structure/reagent_dispensers name = "Dispenser" desc = "..." @@ -9,109 +7,97 @@ anchored = 0 pressure_resistance = 2*ONE_ATMOSPHERE - var/amount_per_transfer_from_this = 10 - var/possible_transfer_amounts = list(10,25,50,100) + var/tank_volume = 1000 //In units, how much the dispenser can hold + var/reagent_id = "water" //The ID of the reagent that the dispenser uses /obj/structure/reagent_dispensers/attackby(obj/item/weapon/W, mob/user, params) return /obj/structure/reagent_dispensers/New() - create_reagents(1000) - if(!possible_transfer_amounts) - verbs -= /obj/structure/reagent_dispensers/verb/set_APTFT + create_reagents(tank_volume) + reagents.add_reagent(reagent_id, tank_volume) ..() /obj/structure/reagent_dispensers/examine(mob/user) if(!..(user, 2)) return - to_chat(user, "It contains:") - if(reagents && reagents.reagent_list.len) - for(var/datum/reagent/R in reagents.reagent_list) - to_chat(user, "[R.volume] units of [R.name]") + if(reagents.total_volume) + to_chat(user, "It has [reagents.total_volume] units left.") else - to_chat(user, "Nothing.") + to_chat(user, "It's empty.") -/obj/structure/reagent_dispensers/verb/set_APTFT() //set amount_per_transfer_from_this - set name = "Set transfer amount" - set category = "Object" - set src in view(1) - if(usr.stat || !usr.canmove || usr.restrained()) - return - var/N = input("Amount per transfer from this:","[src]") as null|anything in possible_transfer_amounts - if(N) - amount_per_transfer_from_this = N + +/obj/structure/reagent_dispensers/proc/boom() + visible_message("[src] ruptures!") + qdel(src) /obj/structure/reagent_dispensers/ex_act(severity) switch(severity) - if(1.0) - qdel(src) - return - if(2.0) + if(1) + boom() + if(2) if(prob(50)) - new /obj/effect/effect/water(loc) - qdel(src) - return - if(3.0) + boom() + if(3) if(prob(5)) - new /obj/effect/effect/water(loc) - qdel(src) - return - else - return + boom() /obj/structure/reagent_dispensers/blob_act() if(prob(50)) - new /obj/effect/effect/water(loc) - qdel(src) - - - - - + boom() //Dispensers /obj/structure/reagent_dispensers/watertank - name = "watertank" - desc = "A watertank" - icon = 'icons/obj/objects.dmi' - icon_state = "watertank" - amount_per_transfer_from_this = 10 + name = "water tank" + desc = "A water tank." + icon_state = "water" -/obj/structure/reagent_dispensers/watertank/New() +/obj/structure/reagent_dispensers/watertank/boom() + playsound(loc, 'sound/effects/spray2.ogg', 50, 1, -6) + new /obj/effect/effect/water(loc) + for(var/turf/simulated/T in view(5, loc)) + T.MakeSlippery() + for(var/mob/living/L in T) + L.adjust_fire_stacks(-20) ..() - reagents.add_reagent("water",1000) + +/obj/structure/reagent_dispensers/watertank/high + name = "high-capacity water tank" + desc = "A highly-pressurized water tank made to hold gargantuan amounts of water.." + icon_state = "water_high" //I was gonna clean my room... + tank_volume = 100000 /obj/structure/reagent_dispensers/fueltank - name = "fueltank" - desc = "A fueltank" - icon = 'icons/obj/objects.dmi' - icon_state = "weldtank" - amount_per_transfer_from_this = 10 + name = "fuel tank" + desc = "A tank full of industrial welding fuel. Do not consume." + icon_state = "fuel" + reagent_id = "fuel" var/obj/item/device/assembly_holder/rig = null var/accepts_rig = 1 -/obj/structure/reagent_dispensers/fueltank/New() +/obj/structure/reagent_dispensers/fueltank/Destroy() + if(rig) + qdel(rig) + rig = null + return ..() + +/obj/structure/reagent_dispensers/fueltank/bullet_act(obj/item/projectile/P) ..() - reagents.add_reagent("fuel",1000) + if(!qdeleted(src)) //wasn't deleted by the projectile's effects. + if(!P.nodamage && ((P.damage_type == BURN) || (P.damage_type == BRUTE))) + message_admins("[key_name_admin(P.firer)] triggered a fueltank explosion.") + log_game("[key_name(P.firer)] triggered a fueltank explosion.") + boom() -/obj/structure/reagent_dispensers/fueltank/bullet_act(obj/item/projectile/Proj) - ..() - if(istype(Proj) && !Proj.nodamage && ((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE))) - message_admins("[key_name_admin(Proj.firer)] triggered a fueltank explosion.") - log_game("[key_name(Proj.firer)] triggered a fueltank explosion.") - boom() +/obj/structure/reagent_dispensers/fueltank/boom() + explosion(loc, 0, 1, 5, 7, 10, flame_range = 5) + qdel(src) -/obj/structure/reagent_dispensers/fueltank/proc/boom() - explosion(loc,0,1,5,7,10, flame_range = 5) - if(src) - qdel(src) - -/obj/structure/reagent_dispensers/fueltank/blob_act(obj/effect/blob/B) +/obj/structure/reagent_dispensers/fueltank/blob_act() boom() - /obj/structure/reagent_dispensers/fueltank/ex_act() boom() @@ -133,34 +119,53 @@ usr.visible_message("[usr] begins to detach [rig] from [src].", "You begin to detach [rig] from [src].") if(do_after(usr, 20, target = src)) usr.visible_message("[usr] detaches [rig] from [src].", "You detach [rig] from [src].") - rig.loc = get_turf(usr) + rig.forceMove(get_turf(usr)) rig = null - overlays = new/list() + overlays.Cut() -/obj/structure/reagent_dispensers/fueltank/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W,/obj/item/device/assembly_holder) && accepts_rig) +/obj/structure/reagent_dispensers/fueltank/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/assembly_holder) && accepts_rig) if(rig) to_chat(user, "There is another device in the way.") return ..() - user.visible_message("[user] begins rigging [W] to [src].", "You begin rigging [W] to [src]") + user.visible_message("[user] begins rigging [I] to [src].", "You begin rigging [I] to [src]") if(do_after(user, 20, target = src)) - user.visible_message("[user] rigs [W] to [src].", "You rig [W] to [src].") + user.visible_message("[user] rigs [I] to [src].", "You rig [I] to [src].") - var/obj/item/device/assembly_holder/H = W - if(istype(H.a_left,/obj/item/device/assembly/igniter) || istype(H.a_right,/obj/item/device/assembly/igniter)) + var/obj/item/device/assembly_holder/H = I + if(istype(H.a_left, /obj/item/device/assembly/igniter) || istype(H.a_right, /obj/item/device/assembly/igniter)) msg_admin_attack("[key_name_admin(user)] rigged a fueltank for explosion (JMP)") log_game("[key_name(user)] rigged fueltank a fueltank for explosion at [loc.x], [loc.y], [loc.z]") - rig = W + rig = H user.drop_item() - W.loc = src + H.forceMove(src) - var/icon/test = getFlatIcon(W) - test.Shift(NORTH,1) - test.Shift(EAST,6) + var/icon/test = getFlatIcon(H) + test.Shift(NORTH, 1) + test.Shift(EAST, 6) overlays += test - return ..() + if(istype(I, /obj/item/weapon/weldingtool)) + if(!reagents.has_reagent("fuel")) + to_chat(user, "[src] is out of fuel!") + return + var/obj/item/weapon/weldingtool/W = I + if(!W.welding) + if(W.reagents.has_reagent("fuel", W.max_fuel)) + to_chat(user, "Your [W] is already full!") + return + reagents.trans_to(W, W.max_fuel) + user.visible_message("[user] refills \his [W].", "You refill [W].") + playsound(src, 'sound/effects/refill.ogg', 50, 1) + W.update_icon() + else + user.visible_message("[user] catastrophically fails at refilling \his [W]!", "That was stupid of you.") + message_admins("[key_name_admin(user)] triggered a fueltank explosion.") + log_game("[key_name(user)] triggered a fueltank explosion.") + boom() + else + ..() /obj/structure/reagent_dispensers/fueltank/Move() ..() @@ -190,76 +195,65 @@ /obj/structure/reagent_dispensers/peppertank - name = "Pepper Spray Refiller" - desc = "Refill pepper spray canisters." - icon = 'icons/obj/objects.dmi' - icon_state = "peppertank" + name = "pepper spray refiller" + desc = "Contains condensed capsaicin for use in law \"enforcement.\"" + icon_state = "pepper" anchored = 1 density = 0 - amount_per_transfer_from_this = 45 - -/obj/structure/reagent_dispensers/peppertank/New() - ..() - reagents.add_reagent("condensedcapsaicin",1000) - + reagent_id = "condensedcapsaicin" /obj/structure/reagent_dispensers/water_cooler - name = "Water-Cooler" - desc = "A machine that dispenses water to drink" - amount_per_transfer_from_this = 5 + name = "liquid cooler" + desc = "A machine that dispenses liquid to drink." icon = 'icons/obj/vending.dmi' icon_state = "water_cooler" - possible_transfer_amounts = null anchored = 1 + tank_volume = 500 + var/paper_cups = 25 //Paper cups left from the cooler -/obj/structure/reagent_dispensers/water_cooler/New() - ..() - reagents.add_reagent("water",500) +/obj/structure/reagent_dispensers/water_cooler/examine(mob/user) + if(!..(user, 2)) + return + to_chat(user, "There are [paper_cups ? paper_cups : "no"] paper cups left.") +/obj/structure/reagent_dispensers/water_cooler/attack_hand(mob/living/user) + if(!paper_cups) + to_chat(user, "There aren't any cups left!") + return + user.visible_message("[user] takes a cup from [src].", "You take a paper cup from [src].") + var/obj/item/weapon/reagent_containers/food/drinks/sillycup/S = new(get_turf(src)) + user.put_in_hands(S) + paper_cups-- /obj/structure/reagent_dispensers/beerkeg name = "beer keg" - desc = "A beer keg" - icon = 'icons/obj/objects.dmi' - icon_state = "beertankTEMP" - amount_per_transfer_from_this = 10 - -/obj/structure/reagent_dispensers/beerkeg/New() - ..() - reagents.add_reagent("beer",1000) + desc = "Beer is liquid bread, it's good for you..." + icon_state = "beer" + reagent_id = "beer" /obj/structure/reagent_dispensers/beerkeg/blob_act() - explosion(loc,0,3,5,7,10) + explosion(loc, 0, 3, 5, 7, 10) qdel(src) /obj/structure/reagent_dispensers/virusfood - name = "Virus Food Dispenser" - desc = "A dispenser of virus food." - icon = 'icons/obj/objects.dmi' - icon_state = "virusfoodtank" - amount_per_transfer_from_this = 10 + name = "virus food dispenser" + desc = "A dispenser of low-potency virus mutagenic." + icon_state = "virus_food" anchored = 1 density = 0 - -/obj/structure/reagent_dispensers/virusfood/New() - ..() - reagents.add_reagent("virusfood", 1000) + reagent_id = "virusfood" /obj/structure/reagent_dispensers/spacecleanertank name = "space cleaner refiller" desc = "Refills space cleaner bottles." - icon = 'icons/obj/objects.dmi' - icon_state = "spacecleanertank" + icon_state = "cleaner" anchored = 1 density = 0 - amount_per_transfer_from_this = 250 - -/obj/structure/reagent_dispensers/spacecleanertank/New() - ..() - reagents.add_reagent("cleaner",5000) + tank_volume = 5000 + reagent_id = "cleaner" /obj/structure/reagent_dispensers/fueltank/chem - icon_state = "weldingtank_chem" + icon_state = "fuel_chem" anchored = 1 density = 0 accepts_rig = 0 \ No newline at end of file diff --git a/code/modules/research/xenoarchaeology/machinery/coolant.dm b/code/modules/research/xenoarchaeology/machinery/coolant.dm index f0750f6388e..ffbf02c23bc 100644 --- a/code/modules/research/xenoarchaeology/machinery/coolant.dm +++ b/code/modules/research/xenoarchaeology/machinery/coolant.dm @@ -9,43 +9,5 @@ /obj/structure/reagent_dispensers/coolanttank name = "coolant tank" desc = "A tank of industrial coolant" - icon = 'icons/obj/objects.dmi' icon_state = "coolanttank" - amount_per_transfer_from_this = 10 - -/obj/structure/reagent_dispensers/coolanttank/New() - ..() - reagents.add_reagent("coolant",1000) - -/obj/structure/reagent_dispensers/coolanttank/bullet_act(var/obj/item/projectile/Proj) - if(istype(Proj ,/obj/item/projectile/beam)||istype(Proj,/obj/item/projectile/bullet)) - if(!Proj.damage) - explode() - -/obj/structure/reagent_dispensers/coolanttank/blob_act() - explode() - -/obj/structure/reagent_dispensers/coolanttank/ex_act() - explode() - -/obj/structure/reagent_dispensers/coolanttank/proc/explode() - var/datum/effect/system/harmless_smoke_spread/S = new /datum/effect/system/harmless_smoke_spread - //S.attach(src) - S.set_up(5, 0, src.loc) - - playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3) - spawn(0) - S.start() - - var/datum/gas_mixture/env = src.loc.return_air() - if(env) - if(reagents.total_volume > 750) - env.temperature = 0 - else if(reagents.total_volume > 500) - env.temperature -= 100 - else - env.temperature -= 50 - - sleep(10) - if(src) - qdel(src) + reagent_id = "coolant" \ No newline at end of file diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index ea68e3dbdbda47726dbcc402bdc6655de6581d1e..53d3954ec06a4b3a4882840c0da4b1961ad59388 100644 GIT binary patch delta 128808 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

xLKGa->4p%M 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